Interrupt routing ARCH=ppc

Suresh Chandra Mannava coreppcdevel at gmail.com
Tue Mar 11 23:54:30 EST 2008


Hi All,

I am working on porting Linux 2.6.16.60 on PowerPC based board with Tsi109
system controller.
Our platform support is defined in arch/ppc
Here is our hardware interrupt routing
Tsi109 PCI BUS
    (BUS 0)
        |
        |
       V
     VME controller (BUS 0 IDSEL 16) IRQ 36
      PMC Slot        (BUS 0 IDSEL 17) IRQ 37
     PCI-PCI Bridge (BUS 0 IDSEL 18) No IRQ required
                |
     (BUS 1)|
                 |------->    PMC Slot (BUS 1 IDSEL 19) IRQ 38
                              USB Contr(BUS 1 IDSEL 20) IRQ 39

I faced a problem at map_irq. Due to pci_swizzle, PCI probe is always
returning p2p bridge IDSEL for all device on BUS 1.
In our case, we routed independent interrupt lines for the devices on BUS 1.

I made a quick workaround by assigning IRQ's based on dev->devfn.

Is there any standard way of assigning independent interrupts for the
devices connected below P2P bridge?

I am facing problem with on-board USB controller. Even though
/proc/interrupts shows correct assignment. USB is always returning the
following message

usb 2-1: new low speed USB device using ohci_hcd and address 2
ohci_hcd 0000:01:04.0: Unlink after no-IRQ?  Controller is probably using
the wrong IRQ

If the interrupts are not assigned properly, how the above message pop-up
soon after inserting USB device?

Here is the proc entry
# cat /proc/interrupts
           CPU0
 12:        105  tsi108_pic Level     serial
 38:       4270  tsi108_PCI_int Level     eth0
 39:          1  tsi108_PCI_int Level     ehci_hcd:usb1, ohci_hcd:usb2,
ohci_hcd :usb3

Whereas USB PMC on BUS 0 works fine.

I request you to provide some pointers on the same.

Thanks a lot,
Suresh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20080311/ecb510c2/attachment.htm>


More information about the Linuxppc-embedded mailing list