Slow keyboard response, IRQ routing problems ?
Hermans, Hein
HeinH at nmc.kpn.net
Thu Dec 18 06:56:49 PST 2003
Some while ago, I posted the below message...
>Hi there,
>
>Last week I installed FreeBSD 4.5 (though I noticed the same problem on 4.3
and 5.1) on a Presario 1230 laptop.
>
>During installation and afterwards I noticed a slow keyboard response on
the console. Scrolling of
>long output (cat big_file.txt) works perfect or comparable to a Linux
installation. Only when
>typing (no system load) I notice a minimal time lap >between pressing the
key and the showing up
>of the character on the screen. The effect is the same as when remotely
logged into a slow machine
>or via a slow / busy connection.
>
>Unfortunately the problem isn't related to the key repeat rate (thanks
anyway Nathan) so a
>
>$ kbdcontrol -r normal/fast/slow
>
>doesn't fix the problem
Since then I have made some progress;
- Installed version 5.1 again
- I noticed in the kernel logging, that the PCCARD was using IRQ1 (???)
---dmesg-snip---
Using $PIR table, 5 entries at 0xc00fdf70
pcib0: <Host to PCI bridge> at pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
cbb0: <TI1221 PCI-CardBus Bridge> at device 17.0 on pci0
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
pci_cfgintr: 0:17 INTA routed to irq 1
cbb1: <TI1221 PCI-CardBus Bridge> at device 17.1 on pci0
cardbus1: <CardBus bus> on cbb1
pccard1: <16-bit PCCard bus> on cbb1
pci_cfgintr: 0:17 INTA routed to irq 1
---snip---
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
---snip---
- Recompiled the kernel without any pccard support
This solved most of my problems; the keyboard was functioning as normal now,
but I don't have any
functioning pccard anymore. As soon as I insert the driver (as a module now)
the driver gets IRQ1 assigned :(
---
cbb0: <TI1221 PCI-CardBus Bridge> at device 17.0 on pci0
pci_cfgintr: 0:17 INTA routed to irq 1
cbb1: <TI1221 PCI-CardBus Bridge> at device 17.1 on pci0
pci_cfgintr: 0:17 INTA routed to irq
---
My question now is, how is it possible that the driver (cbb) gets (via the
pci-bus) a reserved IRQ1 assigned, which is allready (rightfully) in use by
the keyboard driver. I have taken a look in /dev/pccbb.c and accompanying
files... but allas I'm not a programer...
Kind regards (and sory for such a long post),
Hein Hermans
p.s. below, some more loging
=====================
pciconf -lv
hostb0 at pci0:0:0: class=0x060000 card=0x00000000 chip=0x00011078
rev=0x00 hdr=0x00
vendor = 'Cyrix Corp (Now owned by VIA)'
device = 'MediaGXm MMX Cyrix Integrated CPU'
class = bridge
subclass = HOST-PCI
none0 at pci0:17:0: class=0x060700 card=0xac190e11 chip=0xac19104c
rev=0x00 hdr=0x02
vendor = 'Texas Instruments (TI)'
device = 'PCI1221 PC card CardBus Controller'
class = bridge
subclass = PCI-CardBus
none1 at pci0:17:1: class=0x060700 card=0xac190e11 chip=0xac19104c
rev=0x00 hdr=0x02
vendor = 'Texas Instruments (TI)'
device = 'PCI1221 PC card CardBus Controller'
class = bridge
subclass = PCI-CardBus
isab0 at pci0:18:0: class=0x060100 card=0x00000000 chip=0x00021078
rev=0x00 hdr=0x00
vendor = 'Cyrix Corp (Now owned by VIA)'
device = 'Cx5520 ISA Bridge Rev.1'
class = bridge
subclass = PCI-ISA
ohci0 at pci0:19:0: class=0x0c0310 card=0xa0f80e11 chip=0xa0f80e11
rev=0x04 hdr=0x00
vendor = 'Compaq Computer Corp (Now owned by Hewlett-Packard)'
device = 'ZFMicro USB Open Host Controller'
class = serial bus
subclass = USB
none2 at pci0:20:0: class=0x030000 card=0xb0be0e11 chip=0x008310c8
rev=0x01 hdr=0x00
vendor = 'Neomagic Corporation'
device = 'NM2097 Graphic Controller NeoMagic MagicGraph128ZV+'
class = display
subclass = VGA
########################################
Copyright (c) 1992-2003 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.1-RELEASE #1: Sun Dec 14 05:24:21 CET 2003
root@:/usr/src/sys/i386/compile/DEMON
Preloaded elf kernel "/boot/kernel/kernel" at 0xc03e7000.
Timecounter "i8254" frequency 1193182 Hz
Timecounter "TSC" frequency 28419972 Hz
CPU: Cyrix GXm (28.42-MHz 586-class CPU)
Origin = "CyrixInstead" Id = 0x540 DIR=0x3346 Stepping=3 Revision=3
real memory = 33554432 (32 MB)
avail memory = 28483584 (27 MB)
VESA: v2.0, 1024k memory, flags:0x0, mode table:0xc037e182 (1000022)
VESA: MagicGraph 128 V/ZV+ 32K VGA BIOS
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcibios: BIOS version 2.10
Using $PIR table, 5 entries at 0xc00fdf70
pcib0: <Host to PCI bridge> at pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pci0: <bridge, PCI-CardBus> at device 17.0 (no driver attached)
pci0: <bridge, PCI-CardBus> at device 17.1 (no driver attached)
isab0: <PCI-ISA bridge> port 0x5000-0x500f,0x4000-0x401f,0x3000-0x307f mem
0x40010000-0x40010fff at device 18.0 on pci0
isa0: <ISA bus> on isab0
ohci0: <OHCI (generic) USB controller> mem 0xfedfe000-0xfedfefff irq 9 at
device 19.0 on pci0
usb0: OHCI version 1.0, legacy support
usb0: <OHCI (generic) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: (0x0e11) OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub0: device problem, disabling port 1
pci0: <display, VGA> at device 20.0 (no driver attached)
orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0
pmtimer0 on isa0
ata0 at port 0x3f6,0x1f0-0x1f7 irq 14 on isa0
ata1 at port 0x376,0x170-0x177 irq 15 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: current command byte:0047
psm0: found IntelliMouse
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model IntelliMouse, device ID 3-00, 3 buttons
psm0: config:00000000, flags:00000000, packet size:4
psm0: syncmask:08, syncbits:08
fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> at port
0x3f7,0x3f0-0x3f5 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
ppi0: <Parallel I/O> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0303> can't assign resources (port)
unknown: <PNP0f13> can't assign resources (irq)
unknown: <PNP0600> can't assign resources (port)
unknown: <PNP0600> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0400> can't assign resources (port)
unknown: <PNP0700> can't assign resources (port)
Timecounters tick every 10.000 msec
ad0: 2061MB <HITACHI_DK226A-21U> [4188/16/63] at ata0-master PIO4
acd0: CDROM <TOSHIBA CD-ROM XM-1702BC> at ata1-master PIO4
Mounting root from ufs:/dev/ad0s1a
########################################
# vmstat -i
interrupt total rate
stray irq0 1 0
stray irq6 1 0
ohci0 irq9 1 0
ata0 irq14 21058 1
ata1 irq15 3 0
atkbd0 irq1 10436 0
psm0 irq12 45086 3
clk irq0 1445847 99
rtc irq8 1850685 127
Total 3373118 23
########################################
After loading of the cbb driver:
# kldstat
Id Refs Address Size Name
1 7 0xc0100000 2e5228 kernel
2 1 0xc0e70000 18000 linux.ko
3 1 0xc1190000 9000 cbb.ko
4 1 0xc11b4000 3000 exca.ko
aditional lines of dmesg:
cbb0: <TI1221 PCI-CardBus Bridge> at device 17.0 on pci0
pci_cfgintr: 0:17 INTA routed to irq 1
cbb1: <TI1221 PCI-CardBus Bridge> at device 17.1 on pci0
pci_cfgintr: 0:17 INTA routed to irq
=====================
More information about the freebsd-mobile
mailing list