[SeaBIOS] USB keyboard and mouse not detected

Nils njacobs8 at adsltotaal.nl
Tue Feb 14 22:00:48 CET 2012


Hi Kevin,

You wrote:
>> >Out of curiousity, if you disable ohci_free_pipe() (by adding a
>> >"return" as the first statement of the function) does the keyboard
>> >work long enough to get to the boot menu?
>> 
>> I tested this and i couldn't get to the boot menu.
>
>Okay - that's weird.  I wonder if this isn't just a matter of the
>"free" code being incorrect.  Can you send the log of the session with
>ohci_free_pipe disabled?

As i do not have a normal USB keyboard at the moment (last december i
borrowed one) i have tested latest git again with my wireless Logitech
keyboard/mouse combo.
See attached log.

If you prefer a log with a normal USB keyboard i will try to borrow it
again.

I have tried to debug this a little but had no succes yet.

I tried to understand the OHCI spec.
Am i right that you use the "LEGACY SUPPORT INTERFACE SPECIFICATION" via
emulation interrupts and Legacy Support Registers 100h, 104h,(i/o
address 60h) 108h(i/o address 60h) and 10Ch(i/o address 64h) ?

I have "# CONFIG_PS2PORT is not set" because my target doesn't have a
ps2 keyboard controller.

I could not find the Legacy Support Register: HceControl (100h) being
setup in SeaBIOS .(for emulating 60h + 64h)

I think i found some code for that in Geode VSA that i suspect to be
wrong, but i'm not sure yet.

I also attached a lspci with coreboot/SeaBIOS + linux for reference.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: coreboot_522.log
Type: text/x-log
Size: 47153 bytes
Desc: not available
URL: <http://www.seabios.org/pipermail/seabios/attachments/20120214/3d033436/attachment-0001.log>
-------------- next part --------------
00:01.0 0600: 100b:0028 (rev 21)
	Subsystem: 100b:0028
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	Region 0: I/O ports at ac1c [size=4]

00:01.1 0300: 100b:0030 (prog-if 00 [VGA controller])
	Subsystem: 100b:0030
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Region 0: Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
	Region 1: Memory at fe000000 (32-bit, non-prefetchable) [size=16K]
	Region 2: Memory at fe004000 (32-bit, non-prefetchable) [size=16K]
	Region 3: Memory at fe008000 (32-bit, non-prefetchable) [size=16K]
	Expansion ROM at <unassigned> [disabled]
	Kernel driver in use: gxfb

00:0e.0 0200: 10ec:8139 (rev 10)
	Subsystem: 10ec:8139
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64 (8000ns min, 16000ns max)
	Interrupt: pin A routed to IRQ 11
	Region 0: I/O ports at 1000 [size=256]
	Region 1: Memory at fe011000 (32-bit, non-prefetchable) [size=256]
	Capabilities: <access denied>
	Kernel driver in use: 8139too

00:0f.0 0601: 1022:2090 (rev 03)
	Subsystem: 1022:2090
	Control: I/O+ Mem- BusMaster- SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Region 0: I/O ports at 1cb0 [size=8]
	Region 1: I/O ports at 1400 [size=256]
	Region 2: I/O ports at 1c00 [size=64]
	Region 3: I/O ports at 1c80 [size=32]
	Region 4: I/O ports at 1800 [size=128]
	Region 5: I/O ports at 1c40 [size=64]

00:0f.2 0101: 1022:209a (rev 01) (prog-if 80 [Master])
	Subsystem: 1022:209a
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 248
	Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8]
	Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1]
	Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8]
	Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1]
	Region 4: I/O ports at 1ca0 [size=16]
	Kernel driver in use: pata_cs5536

00:0f.3 0401: 1022:2093 (rev 01)
	Subsystem: 1022:2093
	Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 5
	Region 0: I/O ports at 1880 [size=128]
	Kernel driver in use: cs5535audio

00:0f.4 0c03: 1022:2094 (rev 02) (prog-if 10 [OHCI])
	Subsystem: 1022:2094
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin D routed to IRQ 10
	Region 0: Memory at fe00e000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: <access denied>
	Kernel driver in use: ohci_hcd

00:0f.5 0c03: 1022:2095 (rev 02) (prog-if 20 [EHCI])
	Subsystem: 1022:2095
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 32 bytes
	Interrupt: pin D routed to IRQ 10
	Region 0: Memory at fe00f000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: <access denied>
	Kernel driver in use: ehci_hcd



More information about the SeaBIOS mailing list