linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* P1020RDB PCI-E Interrupt problem
@ 2010-10-07 13:45 Fabian Bertholm
  2010-10-08  9:10 ` tiejun.chen
  0 siblings, 1 reply; 2+ messages in thread
From: Fabian Bertholm @ 2010-10-07 13:45 UTC (permalink / raw)
  To: linuxppc-dev

Hi,

I try to run ath9k on a P1020RDB Freescale board.
I run into the problem similar to the Bug/Patch here:
http://patchwork.ozlabs.org/patch/52137/

I get irq 16: nobody cared....

I tried to fix the dts file in the same manner but this does not help.
Currently I am using 2.6.33.7

Any hints? Anybody?

The modified pci section from my dts:

	pci0: pcie@ffe09000 {
		cell-index = <1>;
		compatible = "fsl,mpc8548-pcie";
		device_type = "pci";
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
		reg = <0 0xffe09000 0 0x1000>;
		bus-range = <0 255>;
		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
			  0x1000000 0x0 0x00000000 0 0xffc30000 0x0 0x10000>;
		clock-frequency = <33333333>;
		interrupt-parent = <&mpic>;
		interrupts = <16 2>;
		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
		interrupt-map = <
			/* IDSEL 0x0 */
			0000 0x0 0x0 0x1 &mpic 0x4 0x2
			0000 0x0 0x0 0x2 &mpic 0x5 0x2
			0000 0x0 0x0 0x3 &mpic 0x6 0x2
			0000 0x0 0x0 0x4 &mpic 0x7 0x2
			>;
		pcie@0 {
			reg = <0x0 0x0 0x0 0x0 0x0>;
			#size-cells = <2>;
			#address-cells = <3>;
			device_type = "pci";
			ranges = <0x2000000 0x0 0xa0000000
				  0x2000000 0x0 0xa0000000
				  0x0 0x20000000

				  0x1000000 0x0 0x0
				  0x1000000 0x0 0x0
				  0x0 0x100000>;
		};
	};

	pci1: pcie@ffe0a000 {
		cell-index = <2>;
		compatible = "fsl,mpc8548-pcie";
		device_type = "pci";
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
		reg = <0 0xffe0a000 0 0x1000>;
		bus-range = <0 255>;
		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
		clock-frequency = <33333333>;
		interrupt-parent = <&mpic>;
		interrupts = <16 2>;
		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
		interrupt-map = <
			/* IDSEL 0x0 */
			0000 0x0 0x0 0x1 &mpic 0x0 0x1
			0000 0x0 0x0 0x2 &mpic 0x1 0x1
			0000 0x0 0x0 0x3 &mpic 0x2 0x1
			0000 0x0 0x0 0x4 &mpic 0x3 0x1
			>;

		pcie@0 {
			reg = <0x0 0x0 0x0 0x0 0x0>;
			#size-cells = <2>;
			#address-cells = <3>;
			device_type = "pci";
			ranges = <0x2000000 0x0 0xc0000000
				  0x2000000 0x0 0xc0000000
				  0x0 0x20000000

				  0x1000000 0x0 0x0
				  0x1000000 0x0 0x0
				  0x0 0x100000>;
		};
	};


Best Regards,
Fabian

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: P1020RDB PCI-E Interrupt problem
  2010-10-07 13:45 P1020RDB PCI-E Interrupt problem Fabian Bertholm
@ 2010-10-08  9:10 ` tiejun.chen
  0 siblings, 0 replies; 2+ messages in thread
From: tiejun.chen @ 2010-10-08  9:10 UTC (permalink / raw)
  To: Fabian Bertholm; +Cc: linuxppc-dev

Fabian Bertholm wrote:
> Hi,
> 
> I try to run ath9k on a P1020RDB Freescale board.
> I run into the problem similar to the Bug/Patch here:
> http://patchwork.ozlabs.org/patch/52137/
> 
> I get irq 16: nobody cared....

Firstly you should check if 'irq 16' is issue from your PCIe device.

> 
> I tried to fix the dts file in the same manner but this does not help.
> Currently I am using 2.6.33.7
> 
> Any hints? Anybody?
> 

Then if so I think it's unnecessary to add any #interrupt-map on dts since MSI
is used as interrupt mode on P1020RDB, not legacy interrupt. So please remove
all #interrupt-map on both pci nodes, then enable CONFIG_PCI_MSI to build/boot
again.

> The modified pci section from my dts:
> 
> 	pci0: pcie@ffe09000 {
> 		cell-index = <1>;
> 		compatible = "fsl,mpc8548-pcie";
> 		device_type = "pci";
> 		#interrupt-cells = <1>;
> 		#size-cells = <2>;
> 		#address-cells = <3>;
> 		reg = <0 0xffe09000 0 0x1000>;
> 		bus-range = <0 255>;
> 		ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
> 			  0x1000000 0x0 0x00000000 0 0xffc30000 0x0 0x10000>;
> 		clock-frequency = <33333333>;
> 		interrupt-parent = <&mpic>;
> 		interrupts = <16 2>;
> 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
> 		interrupt-map = <
> 			/* IDSEL 0x0 */
> 			0000 0x0 0x0 0x1 &mpic 0x4 0x2
> 			0000 0x0 0x0 0x2 &mpic 0x5 0x2
> 			0000 0x0 0x0 0x3 &mpic 0x6 0x2
> 			0000 0x0 0x0 0x4 &mpic 0x7 0x2

I don't know how you generate these interrupt-map. So even you really want to
use legacy interrupt you should make sure your PCIe bus number/device
number/function number, and actual interrupt number. Especially please check
interrupt trigger sense. Sometimes incorrect sense will issue your PCIe to
receive interrupt storm. As a result no interrupt handler deal with this
spurious interrupt like you saw 'irq 16: nobody cared'.

> 			>;
> 		pcie@0 {
> 			reg = <0x0 0x0 0x0 0x0 0x0>;
> 			#size-cells = <2>;
> 			#address-cells = <3>;
> 			device_type = "pci";
> 			ranges = <0x2000000 0x0 0xa0000000
> 				  0x2000000 0x0 0xa0000000
> 				  0x0 0x20000000
> 
> 				  0x1000000 0x0 0x0
> 				  0x1000000 0x0 0x0
> 				  0x0 0x100000>;
> 		};
> 	};
> 
> 	pci1: pcie@ffe0a000 {
> 		cell-index = <2>;
> 		compatible = "fsl,mpc8548-pcie";
> 		device_type = "pci";
> 		#interrupt-cells = <1>;
> 		#size-cells = <2>;
> 		#address-cells = <3>;
> 		reg = <0 0xffe0a000 0 0x1000>;
> 		bus-range = <0 255>;
> 		ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
> 			  0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
> 		clock-frequency = <33333333>;
> 		interrupt-parent = <&mpic>;
> 		interrupts = <16 2>;
> 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
> 		interrupt-map = <
> 			/* IDSEL 0x0 */
> 			0000 0x0 0x0 0x1 &mpic 0x0 0x1
> 			0000 0x0 0x0 0x2 &mpic 0x1 0x1
> 			0000 0x0 0x0 0x3 &mpic 0x2 0x1
> 			0000 0x0 0x0 0x4 &mpic 0x3 0x1
> 			>;
> 

There are two PCIe controller so you also have to make sure which controller
your device exist.

-Tiejun

> 		pcie@0 {
> 			reg = <0x0 0x0 0x0 0x0 0x0>;
> 			#size-cells = <2>;
> 			#address-cells = <3>;
> 			device_type = "pci";
> 			ranges = <0x2000000 0x0 0xc0000000
> 				  0x2000000 0x0 0xc0000000
> 				  0x0 0x20000000
> 
> 				  0x1000000 0x0 0x0
> 				  0x1000000 0x0 0x0
> 				  0x0 0x100000>;
> 		};
> 	};
> 
> 
> Best Regards,
> Fabian
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-10-08  9:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-07 13:45 P1020RDB PCI-E Interrupt problem Fabian Bertholm
2010-10-08  9:10 ` tiejun.chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).