[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