linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 11/20] [POWERPC] Wire up PCI on Bamboo board
@ 2007-12-13  7:38 Benjamin Herrenschmidt
  2007-12-19 13:34 ` Valentine Barshak
  0 siblings, 1 reply; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2007-12-13  7:38 UTC (permalink / raw)
  To: Josh Boyer; +Cc: linuxppc-dev

This adds the device-tree bits & call to ppc4xx_pci_find_bridges()
to make PCI work on the Bamboo board

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

 arch/powerpc/boot/dts/bamboo.dts |   40 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

--- linux-work.orig/arch/powerpc/boot/dts/bamboo.dts	2007-12-10 15:56:59.000000000 +1100
+++ linux-work/arch/powerpc/boot/dts/bamboo.dts	2007-12-10 16:39:51.000000000 +1100
@@ -239,10 +239,48 @@
 				zmii-channel = <1>;
 			};
 		};
+
+		PCI0: pci@ec000000 {
+			device_type = "pci";
+			#interrupt-cells = <1>;
+			#size-cells = <2>;
+			#address-cells = <3>;
+			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
+			primary;
+			reg = <0 eec00000 8	/* Config space access */
+			       0 eed80000 4	/* IACK */
+			       0 eed80000 4	/* Special cycle */
+			       0 ef480000 40>;	/* Internal registers */
+
+			/* Outbound ranges, one memory and one IO,
+			 * later cannot be changed. Chip supports a second
+			 * IO range but we don't use it for now
+			 */
+			ranges = <02000000 0 a0000000 0 a0000000 0 20000000
+				  01000000 0 00000000 0 e8000000 0 00010000>;
+
+			/* Inbound 2GB range starting at 0 */
+			dma-ranges = <42000000 0 0 0 0 0 80000000>;
+
+			/* Bamboo has all 4 IRQ pins tied together per slot */
+			interrupt-map-mask = <f800 0 0 0>;
+			interrupt-map = <
+				/* IDSEL 1 */
+				0800 0 0 0 &UIC0 1c 8
+
+				/* IDSEL 2 */
+				1000 0 0 0 &UIC0 1b 8
+
+				/* IDSEL 3 */
+				1800 0 0 0 &UIC0 1a 8
+
+				/* IDSEL 4 */
+				2000 0 0 0 &UIC0 19 8
+			>;
+		};
 	};
 
 	chosen {
 		linux,stdout-path = "/plb/opb/serial@ef600300";
-		bootargs = "console=ttyS0,115200";
 	};
 };

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

* Re: [PATCH 11/20] [POWERPC] Wire up PCI on Bamboo board
  2007-12-13  7:38 [PATCH 11/20] [POWERPC] Wire up PCI on Bamboo board Benjamin Herrenschmidt
@ 2007-12-19 13:34 ` Valentine Barshak
  2007-12-19 20:26   ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 5+ messages in thread
From: Valentine Barshak @ 2007-12-19 13:34 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc-dev

Benjamin Herrenschmidt wrote:
> This adds the device-tree bits & call to ppc4xx_pci_find_bridges()
> to make PCI work on the Bamboo board
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> 
>  arch/powerpc/boot/dts/bamboo.dts |   40 ++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 39 insertions(+), 1 deletion(-)
> 
> --- linux-work.orig/arch/powerpc/boot/dts/bamboo.dts	2007-12-10 15:56:59.000000000 +1100
> +++ linux-work/arch/powerpc/boot/dts/bamboo.dts	2007-12-10 16:39:51.000000000 +1100
> @@ -239,10 +239,48 @@
>  				zmii-channel = <1>;
>  			};
>  		};
> +
> +		PCI0: pci@ec000000 {
> +			device_type = "pci";
> +			#interrupt-cells = <1>;
> +			#size-cells = <2>;
> +			#address-cells = <3>;
> +			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
> +			primary;
> +			reg = <0 eec00000 8	/* Config space access */
> +			       0 eed80000 4	/* IACK */
> +			       0 eed80000 4	/* Special cycle */
> +			       0 ef480000 40>;	/* Internal registers */

Why ef480000 here? IIRC, the docs say it should be ef400000, while 
ef400040 - ef4fffff are reserved and can mirror local registers.
Thanks,
Valentine.

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

* Re: [PATCH 11/20] [POWERPC] Wire up PCI on Bamboo board
  2007-12-19 13:34 ` Valentine Barshak
@ 2007-12-19 20:26   ` Benjamin Herrenschmidt
  2007-12-20 20:26     ` Valentine Barshak
  0 siblings, 1 reply; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2007-12-19 20:26 UTC (permalink / raw)
  To: Valentine Barshak; +Cc: linuxppc-dev


On Wed, 2007-12-19 at 16:34 +0300, Valentine Barshak wrote:

> > --- linux-work.orig/arch/powerpc/boot/dts/bamboo.dts	2007-12-10 15:56:59.000000000 +1100
> > +++ linux-work/arch/powerpc/boot/dts/bamboo.dts	2007-12-10 16:39:51.000000000 +1100
> > @@ -239,10 +239,48 @@
> >  				zmii-channel = <1>;
> >  			};
> >  		};
> > +
> > +		PCI0: pci@ec000000 {
> > +			device_type = "pci";
> > +			#interrupt-cells = <1>;
> > +			#size-cells = <2>;
> > +			#address-cells = <3>;
> > +			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
> > +			primary;
> > +			reg = <0 eec00000 8	/* Config space access */
> > +			       0 eed80000 4	/* IACK */
> > +			       0 eed80000 4	/* Special cycle */
> > +			       0 ef480000 40>;	/* Internal registers */
> 
> Why ef480000 here? IIRC, the docs say it should be ef400000, while 
> ef400040 - ef4fffff are reserved and can mirror local registers.

Dunno... probably a typo, though it worked :-) I'll fix it up.

Ben.

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

* Re: [PATCH 11/20] [POWERPC] Wire up PCI on Bamboo board
  2007-12-19 20:26   ` Benjamin Herrenschmidt
@ 2007-12-20 20:26     ` Valentine Barshak
  2007-12-20 20:43       ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 5+ messages in thread
From: Valentine Barshak @ 2007-12-20 20:26 UTC (permalink / raw)
  To: benh; +Cc: linuxppc-dev

Benjamin Herrenschmidt wrote:
> On Wed, 2007-12-19 at 16:34 +0300, Valentine Barshak wrote:
> 
>>> --- linux-work.orig/arch/powerpc/boot/dts/bamboo.dts	2007-12-10 15:56:59.000000000 +1100
>>> +++ linux-work/arch/powerpc/boot/dts/bamboo.dts	2007-12-10 16:39:51.000000000 +1100
>>> @@ -239,10 +239,48 @@
>>>  				zmii-channel = <1>;
>>>  			};
>>>  		};
>>> +
>>> +		PCI0: pci@ec000000 {
>>> +			device_type = "pci";
>>> +			#interrupt-cells = <1>;
>>> +			#size-cells = <2>;
>>> +			#address-cells = <3>;
>>> +			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
>>> +			primary;
>>> +			reg = <0 eec00000 8	/* Config space access */
>>> +			       0 eed80000 4	/* IACK */
>>> +			       0 eed80000 4	/* Special cycle */
>>> +			       0 ef480000 40>;	/* Internal registers */
>> Why ef480000 here? IIRC, the docs say it should be ef400000, while 
>> ef400040 - ef4fffff are reserved and can mirror local registers.
> 
> Dunno... probably a typo, though it worked :-) I'll fix it up.

Just checked the ppc440ep user manual again.
Special cycle/IACK registers are at 0xeed00000 instead of 0xeed80000.
Looks like the same typo as in the internal registers.
It works because all these registers are mirrored at 0x80000 offset 
(though it's claimed to be a reserved region).

Thanks,
Valentine.

> 
> Ben.
> 
> 

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

* Re: [PATCH 11/20] [POWERPC] Wire up PCI on Bamboo board
  2007-12-20 20:26     ` Valentine Barshak
@ 2007-12-20 20:43       ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2007-12-20 20:43 UTC (permalink / raw)
  To: Valentine Barshak; +Cc: linuxppc-dev


On Thu, 2007-12-20 at 23:26 +0300, Valentine Barshak wrote:

> Just checked the ppc440ep user manual again.
> Special cycle/IACK registers are at 0xeed00000 instead of 0xeed80000.
> Looks like the same typo as in the internal registers.
> It works because all these registers are mirrored at 0x80000 offset 
> (though it's claimed to be a reserved region).

Well, as for IACK, it also probably works because nobody uses it :-) I
put it in the device-tree for completeness (and in case somebody ever
uses it) but so far, nobody does and there is no proper interface to
expose it in linux.

Ben.

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

end of thread, other threads:[~2007-12-20 20:44 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-13  7:38 [PATCH 11/20] [POWERPC] Wire up PCI on Bamboo board Benjamin Herrenschmidt
2007-12-19 13:34 ` Valentine Barshak
2007-12-19 20:26   ` Benjamin Herrenschmidt
2007-12-20 20:26     ` Valentine Barshak
2007-12-20 20:43       ` Benjamin Herrenschmidt

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).