[coreboot] ICH Series i82801xx EHCI (USB 2.0) problems

Uwe Hermann uwe at hermann-uwe.de
Wed Mar 26 18:55:09 CET 2008


On Wed, Mar 26, 2008 at 08:57:42AM -0400, joe at smittys.pointclark.net wrote:
>> Please send lspci from when you've booted with coreboot. Is the EHCI
>> USB controller there at all? If so, there should be errors during
>> boot when the ehci driver tries to load.
>>
>> (Or worst-case coreboot has done such a bad job at init that the
>> driver thinks life is good but in fact nothing EHCI works. :()

FWIW, here's the diff. I don't think the missing sybsystem IDs are a
problem (and that could be fixed very easily anyway), and the different
IRQ and mem regions shouldn't be a problem per se either, correct?


> --- bios.txt		2008-03-26 16:59:12.000000000 +0100
> +++ coreboot.txt	2008-03-26 16:59:22.000000000 +0100
> @@ -1,58 +1,54 @@
>  00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM =20
>  (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 02) (prog-if 00 [UHCI])
> -=09Subsystem: Intel Corporation Unknown device 24c0
>  =09Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- =20
>  Stepping- SERR- FastB2B-
>  =09Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=3Dmedium >TAbort- =20
>  <TAbort- <MAbort- >SERR- <PERR-
>  =09Latency: 0
> -=09Interrupt: pin A routed to IRQ 7
> -=09Region 4: I/O ports at d800 [size=3D32]
> +=09Interrupt: pin A routed to IRQ 3
> +=09Region 4: I/O ports at 18c0 [size=3D32]
>  
>  00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM =20
>  (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 02) (prog-if 00 [UHCI])
> -=09Subsystem: Intel Corporation Unknown device 24c0
>  =09Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- =20
>  Stepping- SERR- FastB2B-
>  =09Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=3Dmedium >TAbort- =20
>  <TAbort- <MAbort- >SERR- <PERR-
>  =09Latency: 0
>  =09Interrupt: pin B routed to IRQ 5
> -=09Region 4: I/O ports at d880 [size=3D32]
> +=09Region 4: I/O ports at 18e0 [size=3D32]
>  
>  00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM =20
>  (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 02) (prog-if 00 [UHCI])
> -=09Subsystem: Intel Corporation Unknown device 24c0
>  =09Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- =20
>  Stepping- SERR- FastB2B-
>  =09Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=3Dmedium >TAbort- =20
>  <TAbort- <MAbort- >SERR- <PERR-
>  =09Latency: 0
> -=09Interrupt: pin C routed to IRQ 9
> -=09Region 4: I/O ports at dc00 [size=3D32]
> +=09Interrupt: pin C routed to IRQ 6
> +=09Region 4: I/O ports at 1c00 [size=3D32]
>  
>  00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) =20
>  USB2 EHCI Controller (rev 02) (prog-if 20 [EHCI])
> -=09Subsystem: Intel Corporation Unknown device 24c0
>  =09Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- =20
> -Stepping- SERR+ FastB2B-
> +Stepping- SERR- FastB2B-

Might the SERR difference here cause problems?


>  =09Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=3Dmedium >TAbort- =20
>  <TAbort- <MAbort- >SERR- <PERR-
>  =09Latency: 0
> -=09Interrupt: pin D routed to IRQ 10
> -=09Region 0: Memory at ffa7f400 (32-bit, non-prefetchable) [size=3D1K]
> +=09Interrupt: pin D routed to IRQ 7
> +=09Region 0: Memory at f8080000 (32-bit, non-prefetchable) [size=3D1K]
>  =09Capabilities: [50] Power Management version 2
>  =09=09Flags: PMEClk- DSI- D1- D2- AuxCurrent=3D375mA PME(D0+,D1-,D2-,D3hot+,=
>  D3cold+)
>  =09=09Status: D0 PME-Enable- DSel=3D0 DScale=3D0 PME-
>  =09Capabilities: [58] Debug port
>  
> -00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM =20
> +00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM =20
>  (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 02)
>  00: 86 80 c2 24 05 00 80 02 02 00 03 0c 00 00 80 00
>  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -20: 01 e0 00 00 00 00 00 00 00 00 00 00 86 80 c0 24
> -30: 00 00 00 00 00 00 00 00 00 00 00 00 07 01 00 00
> +20: c1 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00
>  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -61,17 +57,17 @@
>  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -c0: 00 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +c0: 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
>  
> -00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM =20
> +00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM =20
>  (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 02)
>  00: 86 80 c4 24 05 00 80 02 02 00 03 0c 00 00 00 00
>  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -20: 81 e0 00 00 00 00 00 00 00 00 00 00 86 80 c0 24
> -30: 00 00 00 00 00 00 00 00 00 00 00 00 05 02 00 00
> +20: e1 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30: 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00
>  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -80,17 +76,17 @@
>  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -c0: 00 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +c0: 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
>  
> -00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM =20
> +00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM =20
>  (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 02)
>  00: 86 80 c7 24 05 00 80 02 02 00 03 0c 00 00 00 00
>  10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -20: 01 e4 00 00 00 00 00 00 00 00 00 00 86 80 c0 24
> -30: 00 00 00 00 00 00 00 00 00 00 00 00 09 03 00 00
> +20: 01 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30: 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00
>  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  60: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> @@ -99,26 +95,26 @@
>  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -c0: 00 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +c0: 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  f0: 00 00 00 00 00 00 00 00 60 0f 00 00 00 00 00 00
>  
> -00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB2 =20
> -EHCI Controller (rev 02)
> -00: 86 80 cd 24 06 01 90 02 02 20 03 0c 00 00 00 00
> -10: 00 f4 a7 ff 00 00 00 00 00 00 00 00 00 00 00 00
> -20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 c0 24
> -30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 04 00 00
> +00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) =20
> +USB2 EHCI Controller (rev 02)
> +00: 86 80 cd 24 06 00 90 02 02 20 03 0c 00 00 00 00
> +10: 00 00 08 f8 00 00 00 00 00 00 00 00 00 00 00 00
> +20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30: 00 00 00 00 50 00 00 00 00 00 00 00 00 04 00 00
>  40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  50: 01 58 c2 c9 00 00 00 00 0a 00 80 20 00 00 00 00
> -60: 20 20 7f 00 00 00 00 00 01 00 00 01 00 20 08 00
> -70: 00 00 cf 0f 00 00 00 00 00 00 00 00 00 00 00 00
> +60: 20 20 7f 00 00 00 00 00 01 00 00 00 00 00 0c c0
> +70: 00 00 c5 0f 00 00 00 00 00 00 00 00 00 00 00 00
>  80: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
>  90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> -d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 00
> +d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>  f0: 78 bf 1f 00 88 83 00 00 60 0f 00 00 06 00 00 00

The register differences in the EHCI device should probably be analyzed
in detail (using datasheet), haven't done that so far.


Uwe.
-- 
http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org




More information about the coreboot mailing list