Problem with mini-PCI-E slot on P2020RDB

Mahajan Vivek-B08308 B08308 at freescale.com
Wed Dec 16 17:49:42 EST 2009


> -----Original Message-----
> From: 
> linuxppc-dev-bounces+vivek.mahajan=freescale.com at lists.ozlabs.
> org 
> [mailto:linuxppc-dev-bounces+vivek.mahajan=freescale.com at lists
.ozlabs.org] On Behalf Of Felix Radensky
> Sent: Wednesday, December 16, 2009 2:56 AM
> To: linuxppc-dev at ozlabs.org; Aggrwal Poonam-B10812; Kumar Gala
> Subject: Problem with mini-PCI-E slot on P2020RDB
> 
> Hi,
> 
> I'm trying to use mini-PCI-E WLAN card on P2020RDB running 
> 2.6.32, but so far without success.
> ath9k driver identifies the device, I can run ifconfig, 
> iwconfig and hostapd on wlan0, but device is not getting any 
> interrupts,  so I suspect the interrupt configuration is 
> wrong. Atheros ath9k driver reports:
> 
> phy0: Atheros AR9280 MAC/BB Rev:2 AR5133 RF Rev:d0: 
> mem=0xf1060000, irq=16
> 
> The mapping for irq 16 is:
> 
> irq: irq 1 on host /soc at ffe00000/pic at 40000 mapped to virtual irq 16
> 
> According to /proc/interrupts:
> 
>           CPU0
>  16:          0   OpenPIC   Edge      ath9k
> 
> The same problem happens if Atheros card is plugged (with 
> adapter) into regular PCI-E slot.
> 
> It seems that p2020rdb device tree is missing 
> interrupt-map-mask and interrupt-map properties in PCI-E nodes.
> 
> I've tried running kernel from latest FSL BSP for this board 
> (based on 2.6.32-rc3). The device tree has the 
> interrupt-map-mask and interrupt-map properties, and 
> interrupt mapping is different:
> 
> irq: irq 0 on host /soc at ffe00000/pic at 40000 mapped to virtual irq 16
> 
> In /proc/interrups I see
>            CPU0
>  16:     100001   OpenPIC   Level     ath9k
> 
> However, when ath9k driver is loaded I get this:
> 
> irq 16: nobody cared (try booting with the "irqpoll" option) 
> Call Trace:
> [efbefa40] [c00074b0] show_stack+0x4c/0x16c (unreliable) 
> [efbefa70] [c0073970] __report_bad_irq+0x38/0xd0 [efbefa90] 
> [c0073bd4] note_interrupt+0x1cc/0x22c [efbefac0] [c00747d0] 
> handle_fasteoi_irq+0xf4/0x128 [efbefae0] [c0004eb8] 
> do_IRQ+0xc8/0xf4 [efbefb00] [c001081c] 
> ret_from_except+0x0/0x18 [efbefbc0] [00000000] (null) 
> [efbefc10] [c0004d24] do_softirq+0x60/0x64 [efbefc20] 
> [c0044670] irq_exit+0x88/0xa8 [efbefc30] [c0004ebc] 
> do_IRQ+0xcc/0xf4 [efbefc50] [c001081c] 
> ret_from_except+0x0/0x18 [efbefd10] [c00730b4] 
> __setup_irq+0x320/0x39c [efbefd30] [c0073214] 
> request_threaded_irq+0xe4/0x148 [efbefd60] [f2244218] 
> ath_pci_probe+0x1b0/0x3a4 [ath9k] [efbefda0] [c01c386c] 
> local_pci_probe+0x24/0x34 [efbefdb0] [c01c3bc0] 
> pci_device_probe+0x84/0xa8 [efbefde0] [c01e86b8] 
> driver_probe_device+0xa8/0x1a8 [efbefe00] [c01e8874] 
> __driver_attach+0xbc/0xc0 [efbefe20] [c01e7d88] 
> bus_for_each_dev+0x70/0xac [efbefe50] [c01e84d8] 
> driver_attach+0x24/0x34 [efbefe60] [c01e7504] 
> bus_add_driver+0xb8/0x278 [efbefe90] [c01e8bec] 
> driver_register+0x84/0x178 [efbefeb0] [c01c3e6c] 
> __pci_register_driver+0x54/0xe4 [efbefed0] [f2244434] 
> ath_pci_init+0x28/0x38 [ath9k] [efbefee0] [f215702c] 
> ath9k_init+0x2c/0x100 [ath9k] [efbefef0] [c0001d34] 
> do_one_initcall+0x3c/0x1e8 [efbeff20] [c006f9f0] 
> sys_init_module+0xf8/0x220 [efbeff40] [c00101c4] 
> ret_from_syscall+0x0/0x3c
> handlers:
> [<f223badc>] (ath_isr+0x0/0x1b4 [ath9k]) Disabling IRQ #16

Looks like INTA is not being routed to IRQ0 properly for this
PCIe ctlr. Try changing the interrupt-map prop for the ctlr 
at 0xffe0a000 to the following, temporarily:-

interrupt-map = <
/* IDSEL 0x0 */
0000 0x0 0x0 0x1 &mpic 0x1 0x1
0000 0x0 0x0 0x2 &mpic 0x2 0x1
0000 0x0 0x0 0x3 &mpic 0x3 0x1
0000 0x0 0x0 0x4 &mpic 0x0 0x1
>;

> 
> Atheros card plugged into regular PCI-E slot  works OK in  FSL BSP.
> 
> Any help in resolving this is much appreciated.
> 
> Thanks.
> 
> Felix.
> 

Thanks,
Vivek


More information about the Linuxppc-dev mailing list