Re: mpc8315e-rdb: pci_enable_msi() fails (using today's galak/powerpc.git tree)

From: Leon Woestenberg
Date: Sat May 23 2009 - 18:12:30 EST


Hello,

On Sat, May 23, 2009 at 10:58 PM, Leon Woestenberg
<leon.woestenberg@xxxxxxxxx> wrote:
> using this tree: git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git
>
> pci_enable_msi() fails on my MPC8315E-RDB board with PCIe device in

I found that the DTS for the MPC8315E-RDB is missing the msi bits. I
added these, converted from the BSP (in old non-hex format):

ipic-msi@7c0 {
compatible = "fsl,ipic-msi";
reg = <0x7c0 0x40>;
msi-available-ranges = <0 0x100>;
interrupts = < 0x43 8
0x4 8
0x51 8
0x52 8
0x56 8
0x57 8
0x58 8
0x59 8 >;
interrupt-parent = < &ipic >;
};



Now the MSI stuff gets set-up, pci_enable_msi() does not fault. My
interrupt handler is still not called though.

Partial log below:

[ 246.907366] Setting up Freescale MSI support
[ 247.858192] irq: irq 67 on host
/immr@e0000000/interrupt-controller@700 mapped to virtual irq 67
[ 249.323654] irq: irq 4 on host
/immr@e0000000/interrupt-controller@700 mapped to virtual irq 21
[ 250.779210] irq: irq 81 on host
/immr@e0000000/interrupt-controller@700 mapped to virtual irq 81
[ 252.244662] irq: irq 82 on host
/immr@e0000000/interrupt-controller@700 mapped to virtual irq 82
[ 253.710192] irq: irq 86 on host
/immr@e0000000/interrupt-controller@700 mapped to virtual irq 86
[ 255.175651] irq: irq 87 on host
/immr@e0000000/interrupt-controller@700 mapped to virtual irq 87
[ 256.641100] irq: irq 88 on host
/immr@e0000000/interrupt-controller@700 mapped to virtual irq 88
[ 258.106549] irq: irq 89 on host
/immr@e0000000/interrupt-controller@700 mapped to virtual irq 89

[ 309.396138] pci_enable_msi()
[ 309.399735] irq: irq 0 on host /immr@e0000000/ipic-msi@7c0 mapped
to virtual irq 24
[ 309.408030] fsl_compose_msi_msg: allocated srs: 0, ibs: 0
[ 309.414160] Enabled MSI interrupting.
[ 309.418449] pci_read_config_byte(..., PCI_REVISION_ID, ...)
[ 309.424754] Board revision: 0x01.
[ 309.428690] pci_request_regions()
[ 309.432654] pci_set_dma_mask()
[ 309.436337] Using a 64-bit DMA mask.
[ 309.455605] request_irq()
[ 309.458925] Succesfully requested IRQ #24 with dev_id 0xc71c5440

debugfs shows:

virq hwirq chip name host name
17 0x00009 IPIC /immr@e0000000/interrupt-controller@700
22 0x00010 IPIC /immr@e0000000/interrupt-controller@700
23 0x0000e IPIC /immr@e0000000/interrupt-controller@700
24 0x00000 FSL-MSI /immr@e0000000/ipic-msi@7c0
32 0x00020 IPIC /immr@e0000000/interrupt-controller@700
33 0x00021 IPIC /immr@e0000000/interrupt-controller@700
34 0x00022 IPIC /immr@e0000000/interrupt-controller@700
35 0x00023 IPIC /immr@e0000000/interrupt-controller@700
36 0x00024 IPIC /immr@e0000000/interrupt-controller@700
37 0x00025 IPIC /immr@e0000000/interrupt-controller@700
38 0x00026 IPIC /immr@e0000000/interrupt-controller@700

Regards, Leon.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/