[coreboot] patch: move audio, ehci, ohci IRQs from irq_table to cs5536 dts
ron minnich
rminnich at gmail.com
Sat May 3 07:51:59 CEST 2008
This is not signed off, as it does not work.
It sets up the interrupts correctly, or at least as defined in the dts:
00:0f.3 Multimedia audio controller: Advanced Micro Devices [AMD]
CS5536 [Geode companion] Audio (rev 0)
Subsystem: Advanced Micro Devices [AMD] CS5536 [Geode companion] Audio
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr+ Stepping- SERR- FastB2B-
Status: Cap- 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin B routed to IRQ 10
Region 0: I/O ports at 1880 [size=128]
00:0f.4 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode
companion] OHC (rev 02) (prog-if 10 )
Subsystem: Advanced Micro Devices [AMD] CS5536 [Geode companion] OHC
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin D routed to IRQ 5
Region 0: Memory at fe016000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00:0f.5 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode
companion] EHC (rev 02) (prog-if 20 )
Subsystem: Advanced Micro Devices [AMD] CS5536 [Geode companion] EHC
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin D routed to IRQ 5
Region 0: Memory at fe017000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
But they appear not to be wired internally:
pbx ~ # cat /proc/interrupts
CPU0
0: 48248 XT-PIC-XT timer
2: 0 XT-PIC-XT cascade
4: 2333 XT-PIC-XT serial
5: 0 XT-PIC-XT ohci_hcd:usb1
7: 4 XT-PIC-XT
8: 0 XT-PIC-XT rtc
10: 21 XT-PIC-XT eth0
14: 13886 XT-PIC-XT ide0
NMI: 0 Non-maskable interrupts
TRM: 0 Thermal event interrupts
SPU: 0 Spurious interrupts
ERR: 4
So if I push a USB part in, then I get no interrupts.
If I leave the USB interrupts in the irq_table, I get interrupts.
What piece am I missing here? I assume I'm not wiring something up in
the x,y,z unrestricted interrupt register.
Further, what interrupts are safe to use? We keep reusing 10, 11, 5,
etc. Any reason not to use (e.g.) 6 or 13 or 12?
Is there a Geode rule I need to know?
thanks
ron
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cs5536irq.diff
Type: text/x-diff
Size: 3456 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20080502/4143b425/attachment.bin>
More information about the coreboot
mailing list