powerpc/83xx: Add PCI-E support for all MPC83xx boards with PCI-E
PATCH 4/4 powerpc/83xx: Add PCI-E support for all MPC83xx boards with PCI-E
This patch adds pcie nodes to the appropriate dts files, plus adds some probing code for the boards.
Note that the nodes are disabled by default (via status property), since old (community) U-Boots don't configure PCI-E controllers.
Also, remove of_device_is_avaliable() check from the mpc837x_mds.c board file, as mpc83xx_add_bridge() has the same check now.
--- arch/powerpc/boot/dts/mpc8315erdb.dts | 42 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/mpc8377_mds.dts | 42 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/mpc8377_rdb.dts | 42 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/mpc8378_mds.dts | 42 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/mpc8378_rdb.dts | 42 +++++++++++++++++++++++++++++ arch/powerpc/platforms/83xx/mpc831x_rdb.c | 2 + arch/powerpc/platforms/83xx/mpc837x_mds.c | 10 ++----- arch/powerpc/platforms/83xx/mpc837x_rdb.c | 2 + 8 files changed, 217 insertions(+), 7 deletions(-)
arch/powerpc/boot/dts/mpc8315erdb.dts +42 -0
@@ -22,6 +22,8 @@ serial0 = &serial0; serial1 = &serial1; pci0 = &pci0; + pci1 = &pci1; + pci2 = &pci2; }; cpus {
@@ -330,4 +332,44 @@ compatible = "fsl,mpc8349-pci"; device_type = "pci"; }; + + pci1: pcie@e0009000 { + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + device_type = "pcie"; + compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe0009000 0x00001000 0xb0000000 0x01000000>; + ranges = <0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 + 0x01000000 0 0x00000000 0xb1000000 0 0x00800000>; + bus-range = <0 0>; + interrupt-map-mask = <0xf800 0 0 7>; + interrupt-map = <0 0 0 1 &ipic 1 8 + 0 0 0 2 &ipic 1 8 + 0 0 0 3 &ipic 1 8 + 0 0 0 4 &ipic 1 8>; + clock-frequency = <0>; + /* cleared by u-boot */ + status = "not configured"; + }; + + pci2: pcie@e000a000 { + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + device_type = "pcie"; + compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe000a000 0x00001000 0xd0000000 0x01000000>; + ranges = <0x02000000 0 0xc0000000 0xc0000000 0 0x10000000 + 0x01000000 0 0x00000000 0xd1000000 0 0x00800000>; + bus-range = <0 0>; + interrupt-map-mask = <0xf800 0 0 7>; + interrupt-map = <0 0 0 1 &ipic 2 8 + 0 0 0 2 &ipic 2 8 + 0 0 0 3 &ipic 2 8 + 0 0 0 4 &ipic 2 8>; + clock-frequency = <0>; + /* cleared by u-boot */ + status = "not configured"; + }; };
arch/powerpc/boot/dts/mpc8377_mds.dts +42 -0
52 lines not on this page · raw message
arch/powerpc/boot/dts/mpc8377_rdb.dts +42 -0
52 lines not on this page · raw message
arch/powerpc/boot/dts/mpc8378_mds.dts +42 -0
52 lines not on this page · raw message
arch/powerpc/boot/dts/mpc8378_rdb.dts +42 -0
52 lines not on this page · raw message
arch/powerpc/platforms/83xx/mpc831x_rdb.c +2 -0
@@ -38,6 +38,8 @@ static void __init mpc831x_rdb_setup_arch(void)#ifdef CONFIG_PCI for_each_compatible_node (np,"pci" ,"fsl,mpc8349-pci" )mpc83xx_add_bridge (np); +for_each_compatible_node (np,"pcie" ,"fsl,mpc8314-pcie" ) +mpc83xx_add_bridge (np);#endif mpc831x_usb_cfg (); }
arch/powerpc/platforms/83xx/mpc837x_mds.c +3 -7
@@ -84,14 +84,10 @@ static void __init mpc837x_mds_setup_arch(void) ppc_md.progress ("mpc837x_mds_setup_arch()" ,0 );#ifdef CONFIG_PCI -for_each_compatible_node (np,"pci" ,"fsl,mpc8349-pci" ) { -if (!of_device_is_available (np)) { -pr_warning ("%s: disabled by the firmware.\n" , - np->full_name); -continue ; - } +for_each_compatible_node (np,"pci" ,"fsl,mpc8349-pci" ) +mpc83xx_add_bridge (np); +for_each_compatible_node (np,"pcie" ,"fsl,mpc8314-pcie" )mpc83xx_add_bridge (np); - }#endif mpc837xmds_usb_cfg (); }
arch/powerpc/platforms/83xx/mpc837x_rdb.c +2 -0
@@ -38,6 +38,8 @@ static void __init mpc837x_rdb_setup_arch(void)#ifdef CONFIG_PCI for_each_compatible_node (np,"pci" ,"fsl,mpc8349-pci" )mpc83xx_add_bridge (np); +for_each_compatible_node (np,"pcie" ,"fsl,mpc8314-pcie" ) +mpc83xx_add_bridge (np);#endif mpc837x_usb_cfg (); }
Signature · 1 line
1.5.6.5
Quoted 14 lines · Anton Vorontsov
arch/powerpc/boot/dts/mpc8315erdb.dts +2
-0@@ -22,6 +22,8 @@ serial0 = &serial0; serial1 = &serial1; pci0 = &pci0; + pci1 = &pci1; + pci2 = &pci2; }; cpus {
arch/powerpc/boot/dts/mpc8315erdb.dts line 340
Quoted 9 lines
arch/powerpc/boot/dts/mpc8315erdb.dts +6
-0@@ -330,4 +332,44 @@ compatible = "fsl,mpc8349-pci"; device_type = "pci"; }; + + pci1: pcie@e0009000 { + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + device_type = "pcie";
should just be pci, not pcie
arch/powerpc/boot/dts/mpc8315erdb.dts line 342
Quoted 3 lines
arch/powerpc/boot/dts/mpc8315erdb.dts +2
-0+ compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe0009000 0x00001000 0xb0000000 0x01000000>;
the size on the 0xb0000000 seems wrong
arch/powerpc/boot/dts/mpc8315erdb.dts line 345
Quoted 4 lines
arch/powerpc/boot/dts/mpc8315erdb.dts +3
-0+ ranges = <0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 + 0x01000000 0 0x00000000 0xb1000000 0 0x00800000>; + bus-range = <0 0>;
normally we have this as <0 255> and assume FW updates it.
arch/powerpc/boot/dts/mpc8315erdb.dts line 353
Quoted 9 lines
arch/powerpc/boot/dts/mpc8315erdb.dts +8
-0+ interrupt-map-mask = <0xf800 0 0 7>; + interrupt-map = <0 0 0 1 &ipic 1 8 + 0 0 0 2 &ipic 1 8 + 0 0 0 3 &ipic 1 8 + 0 0 0 4 &ipic 1 8>; + clock-frequency = <0>; + /* cleared by u-boot */ + status = "not configured";
for pcie nodes we also include the virtual p2p bridge look at the 85xx or 86xx .dts w/pcie in them.
(I'm only commenting on this one, assuming the comments replicate to all other nodes)
- k
PATCH v2 4/4 powerpc/83xx: Add PCI-E support for all MPC83xx boards with PCI-E
This patch adds pcie nodes to the appropriate dts files, plus adds some probing code for the boards.
Note that the nodes are disabled by default (via status property), since old (community) U-Boots don't configure PCI-E controllers.
Also, remove of_device_is_avaliable() check from the mpc837x_mds.c board file, as mpc83xx_add_bridge() has the same check now.
---
On Tue, Dec 30, 2008 at 11:46:50AM -0600, Kumar Gala wrote:
[...]
Quoted 7 lines
Review
Quoted 5 lines
(quoted diff) +5
-0+ pci1: pcie@e0009000 { + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + device_type = "pcie";should just be pci, not pcie
Fixed.
Quoted 5 lines
Review
Quoted 3 lines
(quoted diff) +2
-0+ compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe0009000 0x00001000 0xb0000000 0x01000000>;the size on the
0xb0000000seems wrong
This is how FSL U-Boots configure the cfg window, and I'm trying to retain the compatibility. Anyway, now Linux maps only the first 4kB of that area, so we don't actually care about this, but dts is still correct for older u-boots. Newer U-Boots might want to correct this value if they want to use other cfg window setup...
Quoted 5 lines
Review
Quoted 3 lines
(quoted diff) +3
-0+ ranges = <0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 + 0x01000000 0 0x00000000 0xb1000000 0 0x00800000>; + bus-range = <0 0>;normally we have this as <0 255> and assume FW updates it.
Fixed.
Quoted 12 lines
Review
Quoted 9 lines
(quoted diff) +8
-0+ interrupt-map-mask = <0xf800 0 0 7>; + interrupt-map = <0 0 0 1 &ipic 1 8 + 0 0 0 2 &ipic 1 8 + 0 0 0 3 &ipic 1 8 + 0 0 0 4 &ipic 1 8>; + clock-frequency = <0>; + /* cleared by u-boot */ + status = "not configured";for pcie nodes we also include the virtual p2p bridge look at the 85xx or 86xx .dts w/pcie in them.
Fixed.
Thanks for review,
arch/powerpc/boot/dts/mpc8315erdb.dts | 68 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/mpc8377_mds.dts | 68 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/mpc8377_rdb.dts | 68 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/mpc8378_mds.dts | 68 +++++++++++++++++++++++++++++ arch/powerpc/boot/dts/mpc8378_rdb.dts | 68 +++++++++++++++++++++++++++++ arch/powerpc/platforms/83xx/mpc831x_rdb.c | 2 + arch/powerpc/platforms/83xx/mpc837x_mds.c | 10 +--- arch/powerpc/platforms/83xx/mpc837x_rdb.c | 2 + 8 files changed, 347 insertions(+), 7 deletions(-)
arch/powerpc/boot/dts/mpc8315erdb.dts +68 -0
@@ -22,6 +22,8 @@ serial0 = &serial0; serial1 = &serial1; pci0 = &pci0; + pci1 = &pci1; + pci2 = &pci2; }; cpus {
@@ -330,4 +332,70 @@ compatible = "fsl,mpc8349-pci"; device_type = "pci"; }; + + pci1: pcie@e0009000 { + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + device_type = "pci"; + compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe0009000 0x00001000 0xb0000000 0x01000000>; + ranges = <0x02000000 0 0xa0000000 0xa0000000 0 0x10000000 + 0x01000000 0 0x00000000 0xb1000000 0 0x00800000>; + bus-range = <0 255>; + interrupt-map-mask = <0xf800 0 0 7>; + interrupt-map = <0 0 0 1 &ipic 1 8 + 0 0 0 2 &ipic 1 8 + 0 0 0 3 &ipic 1 8 + 0 0 0 4 &ipic 1 8>; + clock-frequency = <0>; + /* cleared by u-boot */ + status = "not configured"; + + pcie@0 { + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + reg = <0 0 0 0 0>; + ranges = <0x02000000 0 0xa0000000 + 0x02000000 0 0xa0000000 + 0 0x10000000 + 0x01000000 0 0x00000000 + 0x01000000 0 0x00000000 + 0 0x00800000>; + }; + }; + + pci2: pcie@e000a000 { + #address-cells = <3>; + #size-cells = <2>; + #interrupt-cells = <1>; + device_type = "pci"; + compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe000a000 0x00001000 0xd0000000 0x01000000>; + ranges = <0x02000000 0 0xc0000000 0xc0000000 0 0x10000000 + 0x01000000 0 0x00000000 0xd1000000 0 0x00800000>; + bus-range = <0 255>; + interrupt-map-mask = <0xf800 0 0 7>; + interrupt-map = <0 0 0 1 &ipic 2 8 + 0 0 0 2 &ipic 2 8 + 0 0 0 3 &ipic 2 8 + 0 0 0 4 &ipic 2 8>; + clock-frequency = <0>; + /* cleared by u-boot */ + status = "not configured"; + + pcie@0 { + #address-cells = <3>; + #size-cells = <2>; + device_type = "pci"; + reg = <0 0 0 0 0>; + ranges = <0x02000000 0 0xc0000000 + 0x02000000 0 0xc0000000 + 0 0x10000000 + 0x01000000 0 0x00000000 + 0x01000000 0 0x00000000 + 0 0x00800000>; + }; + }; };
arch/powerpc/boot/dts/mpc8377_mds.dts +68 -0
78 lines not on this page · raw message
arch/powerpc/boot/dts/mpc8377_rdb.dts +68 -0
78 lines not on this page · raw message
arch/powerpc/boot/dts/mpc8378_mds.dts +68 -0
78 lines not on this page · raw message
arch/powerpc/boot/dts/mpc8378_rdb.dts +68 -0
78 lines not on this page · raw message
arch/powerpc/platforms/83xx/mpc831x_rdb.c +2 -0
@@ -38,6 +38,8 @@ static void __init mpc831x_rdb_setup_arch(void)#ifdef CONFIG_PCI for_each_compatible_node (np,"pci" ,"fsl,mpc8349-pci" )mpc83xx_add_bridge (np); +for_each_compatible_node (np,"pci" ,"fsl,mpc8314-pcie" ) +mpc83xx_add_bridge (np);#endif mpc831x_usb_cfg (); }
arch/powerpc/platforms/83xx/mpc837x_mds.c +3 -7
@@ -84,14 +84,10 @@ static void __init mpc837x_mds_setup_arch(void) ppc_md.progress ("mpc837x_mds_setup_arch()" ,0 );#ifdef CONFIG_PCI -for_each_compatible_node (np,"pci" ,"fsl,mpc8349-pci" ) { -if (!of_device_is_available (np)) { -pr_warning ("%s: disabled by the firmware.\n" , - np->full_name); -continue ; - } +for_each_compatible_node (np,"pci" ,"fsl,mpc8349-pci" ) +mpc83xx_add_bridge (np); +for_each_compatible_node (np,"pci" ,"fsl,mpc8314-pcie" )mpc83xx_add_bridge (np); - }#endif mpc837xmds_usb_cfg (); }
arch/powerpc/platforms/83xx/mpc837x_rdb.c +2 -0
@@ -38,6 +38,8 @@ static void __init mpc837x_rdb_setup_arch(void)#ifdef CONFIG_PCI for_each_compatible_node (np,"pci" ,"fsl,mpc8349-pci" )mpc83xx_add_bridge (np); +for_each_compatible_node (np,"pci" ,"fsl,mpc8314-pcie" ) +mpc83xx_add_bridge (np);#endif mpc837x_usb_cfg (); }
Signature · 1 line
1.5.6.5
Quoted 7 lines · Anton Vorontsov
Quoted 6 lines
arch/powerpc/boot/dts/mpc8315erdb.dts line 342
Quoted 4 lines
arch/powerpc/boot/dts/mpc8315erdb.dts +2
-0+ compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe0009000 0x00001000 0xb0000000 0x01000000>;the size on the
0xb0000000seems wrong
Quoted 5 lines
This is how FSL U-Boots configure the cfg window, and I'm trying to retain the compatibility. Anyway, now Linux maps only the first 4kB of that area, so we don't actually care about this, but dts is still correct for older u-boots. Newer U-Boots might want to correct this value if they want to use other cfg window setup...
I'd rather not pollute the .dts with this since I don't believe the open source u-boot supports PCIe on 83xx.
- k
Dear Kumar,
Quoted 9 lines · In message <[email protected]> you wrote:
Quoted 6 lines
This is how FSL U-Boots configure the cfg window, and I'm trying to retain the compatibility. Anyway, now Linux maps only the first 4kB of that area, so we don't actually care about this, but dts is still correct for older u-boots. Newer U-Boots might want to correct this value if they want to use other cfg window setup...
I'd rather not pollute the .dts with this since I don't believe the open source u-boot supports PCIe on 83xx.
What exactly do you mean by "open source u-boot"? You don't really mean that there are propriatary (closed source) versions of U-Boot in Freescale, or are you? I iknow that you know that it's GPL, so I guess that was just an unlucky phrase?
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [email protected] The C-shell doesn't parse. It adhoculates. - [email protected] in <[email protected]>
Quoted 10 lines · Kumar Gala
Quoted 7 lines · Anton Vorontsov
Quoted 6 lines
arch/powerpc/boot/dts/mpc8315erdb.dts line 342
Quoted 4 lines
arch/powerpc/boot/dts/mpc8315erdb.dts +2
-0+ compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe0009000 0x00001000 0xb0000000 0x01000000>;the size on the
0xb0000000seems wrong
Quoted 7 lines
Quoted 5 lines
This is how FSL U-Boots configure the cfg window, and I'm trying to retain the compatibility. Anyway, now Linux maps only the first 4kB of that area, so we don't actually care about this, but dts is still correct for older u-boots. Newer U-Boots might want to correct this value if they want to use other cfg window setup...
I'd rather not pollute the .dts with this
So you prefer to change the cfg window size to 0x1000?
Quoted 2 lines
since I don't believe the open
source u-boot supports PCIe on 83xx.
Yes, that's correct. PCI-E support for community U-Boot is ongoing.
Signature · 3 lines
Anton Vorontsov email: [email protected] irc://irc.freenode.net/bd2
Quoted 10 lines · Wolfgang Denk
Dear Kumar,
Quoted 7 lines · In message <[email protected]> you wrote:
Quoted 6 lines
This is how FSL U-Boots configure the cfg window, and I'm trying to retain the compatibility. Anyway, now Linux maps only the first 4kB of that area, so we don't actually care about this, but dts is still correct for older u-boots. Newer U-Boots might want to correct this value if they want to use other cfg window setup...
Quoted 7 lines
Quoted 2 lines
I'd rather not pollute the .dts with this since I don't believe the open source u-boot supports PCIe on 83xx.
What exactly do you mean by "open source u-boot"? You don't really mean that there are propriatary (closed source) versions of U-Boot in Freescale, or are you? I iknow that you know that it's GPL, so I guess that was just an unlucky phrase?
I meant the official u-boot from denx.de vs the one FSL ships w/its boards & BSPs. The BSP u-boot has modifications that don't exist in the denx.de u-boot (as the quality of the code is not up to open source standards).
That is all I meant.
My statement was to convey that the kernel.org kernel should only worry itself with the denx.de u-boot (w/regards to compatibility).
- k
Quoted 17 lines · Anton Vorontsov
Quoted 16 lines · Kumar Gala
Quoted 12 lines · Anton Vorontsov
Quoted 6 lines
arch/powerpc/boot/dts/mpc8315erdb.dts line 342
Quoted 4 lines
arch/powerpc/boot/dts/mpc8315erdb.dts +2
-0+ compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe0009000 0x00001000 0xb0000000 0x01000000>;the size on the
0xb0000000seems wrongThis is how FSL U-Boots configure the cfg window, and I'm trying to retain the compatibility. Anyway, now Linux maps only the first 4kB of that area, so we don't actually care about this, but dts is still correct for older u-boots. Newer U-Boots might want to correct this value if they want to use other cfg window setup...
Quoted 3 lines
Quoted 1 line
I'd rather not pollute the .dts with this
So you prefer to change the cfg window size to
0x1000?
I'd prefer to drop it (assuming that is reasonable).
Does the PCI-express OF draft spec cover describing cfg space
http://playground.sun.com/1275/proposals/New/516-it.txt
- k
On Thu, Jan 01, 2009 at 08:29:39AM -0600, Kumar Gala wrote:
[...]
Quoted 11 lines
Quoted 11 lines
Quoted 11 lines
Quoted 10 lines
Quoted 4 lines
arch/powerpc/boot/dts/mpc8315erdb.dts line 342
Quoted 2 lines
arch/powerpc/boot/dts/mpc8315erdb.dts +2
-0+ compatible = "fsl,mpc8315-pcie", "fsl,mpc8314-pcie"; + reg = <0xe0009000 0x00001000 0xb0000000 0x01000000>;the size on the
0xb0000000seems wrongThis is how FSL U-Boots configure the cfg window, and I'm trying to retain the compatibility. Anyway, now Linux maps only the first 4kB of that area, so we don't actually care about this, but dts is still correct for older u-boots. Newer U-Boots might want to correct this value if they want to use other cfg window setup...
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
I'd rather not pollute the .dts with this
So you prefer to change the cfg window size to
0x1000?I'd prefer to drop it (assuming that is reasonable).
I see. Yes, we can drop it and just read the outwin0 BAR register to find out the cfg space base address.
Quoted 3 lines
Does the PCI-express OF draft spec cover describing cfg space
If I understood correctly, the spec describes directly mapped cfg space, this won't work for 83xx PCI-E.
I'll post new patches soon.
Thanks,
Signature · 3 lines
Anton Vorontsov email: [email protected] irc://irc.freenode.net/bd2
Quoted 4 lines · Kumar Gala
I meant the official u-boot from denx.de vs the one FSL ships w/its boards & BSPs. The BSP u-boot has modifications that don't exist in the denx.de u-boot (as the quality of the code is not up to open source standards).
I believe "upstream" is the word you're looking for.
Quoted 2 lines
My statement was to convey that the kernel.org kernel should only worry itself with the denx.de u-boot (w/regards to compatibility).
Why? Unless the BSP u-boots do something insane, I think we should try to have the upstream kernel boot on the u-boot that comes on the board (it's not nice to require users to reflash unnecessarily).
That said, the device tree should come from u-boot, not from the kernel.
-Scott
On Mon, Jan 05, 2009 at 11:46:45AM -0600, Scott Wood wrote:
[...]
Quoted 6 lines
Quoted 2 lines
My statement was to convey that the kernel.org kernel should only worry itself with the denx.de u-boot (w/regards to compatibility).
Why? Unless the BSP u-boots do something insane, I think we should try to have the upstream kernel boot on the u-boot that comes on the board (it's not nice to require users to reflash unnecessarily).
Just in case, the latest version of this patch set is compatible with the FSL u-boots.
Thanks,
Signature · 3 lines
Anton Vorontsov email: [email protected] irc://irc.freenode.net/bd2
Hello,
Quoted 9 lines · Anton Vorontsov
On Mon, Jan 05, 2009 at 11:46:45AM -0600, Scott Wood wrote:
[...]Quoted 6 lines
Quoted 2 lines
My statement was to convey that the kernel.org kernel should only worry itself with the denx.de u-boot (w/regards to compatibility).
Why? Unless the BSP u-boots do something insane, I think we should try to have the upstream kernel boot on the u-boot that comes on the board (it's not nice to require users to reflash unnecessarily).
The u-boot that came with the boards (at least MPC8315E-RDB) is too old for 2.6.25+ kernels:
I have run into this earlier:
http://www.mail-archive.com/[email protected]/msg06551.html
Regards,
Signature · 1 line
Leon
Hello Anton,
Quoted 9 lines · Anton Vorontsov
Quoted 4 lines · Scott Wood
Why? Unless the BSP u-boots do something insane, I think we should try to have the upstream kernel boot on the u-boot that comes on the board (it's not nice to require users to reflash unnecessarily).
Just in case, the latest version of this patch set is compatible with the FSL u-boots.
Up to now, I was testing PCIe with this combo:
- U-Boot 1.3.0-rc2 (Nov 19 2007 - 16:37:36) MPC83XX, was on the board
- dtc 1.1.0
- Linux 2.6.24.3 w/ Freescale patches from http://www.bitshrine.org/gpp/
That u-boot (i.e. on the mpc8315e-rdb board) had PCIe initialization.
Is u-boot PCIe initialization required for this kernel patch to work?
Regards,
Signature · 1 line
Leon
Quoted 20 lines · Leon Woestenberg
Hello Anton,
Quoted 9 lines · Anton Vorontsov
Quoted 4 lines · Scott Wood
Why? Unless the BSP u-boots do something insane, I think we should try to have the upstream kernel boot on the u-boot that comes on the board (it's not nice to require users to reflash unnecessarily).
Just in case, the latest version of this patch set is compatible with the FSL u-boots.
Up to now, I was testing PCIe with this combo:
- U-Boot 1.3.0-rc2 (Nov 19 2007 - 16:37:36) MPC83XX, was on the board
- dtc 1.1.0
- Linux 2.6.24.3 w/ Freescale patches from http://www.bitshrine.org/gpp/
Quoted 3 lines
That u-boot (i.e. on the mpc8315e-rdb board) had PCIe initialization.
Is u-boot PCIe initialization required for this kernel patch to work?
Yup.
Signature · 3 lines
Anton Vorontsov email: [email protected] irc://irc.freenode.net/bd2
Quoted 21 lines · Anton Vorontsov
Quoted 20 lines · Leon Woestenberg
Hello Anton,
Quoted 9 lines · Anton Vorontsov
Quoted 4 lines · Scott Wood
Why? Unless the BSP u-boots do something insane, I think we should try to have the upstream kernel boot on the u-boot that comes on the board (it's not nice to require users to reflash unnecessarily).
Just in case, the latest version of this patch set is compatible with the FSL u-boots.
Up to now, I was testing PCIe with this combo:
- U-Boot 1.3.0-rc2 (Nov 19 2007 - 16:37:36) MPC83XX, was on the board
- dtc 1.1.0
- Linux 2.6.24.3 w/ Freescale patches from http://www.bitshrine.org/gpp/
Quoted 5 lines
Quoted 3 lines
That u-boot (i.e. on the mpc8315e-rdb board) had PCIe initialization.
Is u-boot PCIe initialization required for this kernel patch to work?
Yup.
Really? what for?
- k
On Tue, Jan 06, 2009 at 02:38:57PM -0600, Kumar Gala wrote:
[...]
Quoted 17 lines
Quoted 17 lines
Quoted 17 lines
Quoted 10 lines
Quoted 5 lines
Why? Unless the BSP u-boots do something insane, I think we should try
to have the upstream kernel boot on the u-boot that comes on the board
(it's not nice to require users to reflash unnecessarily).Just in case, the latest version of this patch set is compatible with
the FSL u-boots.Up to now, I was testing PCIe with this combo:
- U-Boot 1.3.0-rc2 (Nov 19 2007 - 16:37:36) MPC83XX, was on the board
- dtc 1.1.0
- Linux 2.6.24.3 w/ Freescale patches from http://www.bitshrine.org/gpp/
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
That u-boot (i.e. on the mpc8315e-rdb board) had PCIe initialization.
Is u-boot PCIe initialization required for this kernel patch to work?
Yup.
Really? what for?
Hm. U-Boot should initialize SerDes and PCI-E controller (pcie laws, inbound/outbound windows, clocks, etc.)
Though if PCI-E controller wasn't initialized (i.e. board reflashed with the community u-boot), Linux just won't probe the pcie controller:
cfg_bar = in_le32(hose->cfg_data + PEX_OUTWIN0_BAR);
if (!cfg_bar) {
/* PCI-E isn't configured. */
ret = -ENODEV;
goto err1;
}Or did I misunderstand the question?
Signature · 3 lines
Anton Vorontsov email: [email protected] irc://irc.freenode.net/bd2
Hello Anton,
Quoted 13 lines · Anton Vorontsov
Quoted 5 lines · Kumar Gala
Quoted 3 lines
Quoted 1 line
Is u-boot PCIe initialization required for this kernel patch to work?
Yup.
Really? what for?
Hm. U-Boot should initialize SerDes and PCI-E controller (pcie laws, inbound/outbound windows, clocks, etc.)
Though if PCI-E controller wasn't initialized (i.e. board reflashed with the community u-boot), Linux just won't probe the pcie controller:
Quoted 9 lines
cfg_bar=in_le32(hose->cfg_data + PEX_OUTWIN0_BAR);if (!cfg_bar) { /* PCI-E isn't configured. */ ret = -ENODEV; goto err1; }Or did I misunderstand the question?
You understood correctly, thanks for answering.
So to summarize, we need u-boot to initialize the PCIe controller, in order for Linux to further take it over.
What u-boot versions/releases do provide this initialization?
I know the u-boot with the board works, but it's incompatible with recent Linux kernels.
Regards,
Signature · 1 line
Leon
Quoted 24 lines · Leon Woestenberg
Hello Anton,
Quoted 20 lines · Anton Vorontsov
Quoted 5 lines · Kumar Gala
Quoted 3 lines
Quoted 1 line
Is u-boot PCIe initialization required for this kernel patch to work?
Yup.
Really? what for?
Hm. U-Boot should initialize SerDes and PCI-E controller (pcie laws, inbound/outbound windows, clocks, etc.)
Though if PCI-E controller wasn't initialized (i.e. board reflashed with the community u-boot), Linux just won't probe the pcie controller:
cfg_bar=in_le32(hose->cfg_data + PEX_OUTWIN0_BAR);if (!cfg_bar) { /* PCI-E isn't configured. */ ret = -ENODEV; goto err1; }
Quoted 8 lines
Quoted 2 lines
Or did I misunderstand the question?
You understood correctly, thanks for answering.
So to summarize, we need u-boot to initialize the PCIe controller, in order for Linux to further take it over.
What u-boot versions/releases do provide this initialization?
Only FSL U-Boots so far (i.e. community u-boot + fsl patches).
Quoted 2 lines
I know the u-boot with the board works, but it's incompatible with recent Linux kernels.
We should fix that (if possible).
Signature · 3 lines
Anton Vorontsov email: [email protected] irc://irc.freenode.net/bd2
Hello Anton,
Quoted 8 lines · Anton Vorontsov
Quoted 4 lines · Leon Woestenberg
So to summarize, we need u-boot to initialize the PCIe controller, in order for Linux to further take it over.
What u-boot versions/releases do provide this initialization?
Only FSL U-Boots so far (i.e. community u-boot + fsl patches).
Could you be more specific?
I would like to test your Linux kernel patch for 83xx/PCIe mainlining.
What version (and what patches) of u-boot do both initialize pcie *and* work with recent Linux kernels?
I am aware of the latest MPC8315E BSP (~2008-06), bitshrine.org/gpp/, the 83xx git tree at denx, and master git.
The first works with 2.6.24, but not with 2.6.25+ The patches at bitshrine are not newer than that. The tree's are not FSL, or is this the FSL U-Boot you mean?
Quoted 5 lines
Quoted 2 lines
I know the u-boot with the board works, but it's incompatible with recent Linux kernels.
We should fix that (if possible).
I was told "just to upgrade u-boot", not what the actual problem was, although I would like to learn that.
http://www.mail-archive.com/[email protected]/msg06551.html
Basically, this means I am unable to ship a bootloader now, supporting 2.6.24.7 now and 2.6.28 later.
Regards,
Signature · 1 line
Leon
Quoted 14 lines · Leon Woestenberg
Hello,
Quoted 9 lines · Anton Vorontsov
On Mon, Jan 05, 2009 at 11:46:45AM -0600, Scott Wood wrote:
[...]Quoted 6 lines
Quoted 2 lines
My statement was to convey that the kernel.org kernel should only worry itself with the denx.de u-boot (w/regards to compatibility).
Why? Unless the BSP u-boots do something insane, I think we should try to have the upstream kernel boot on the u-boot that comes on the board (it's not nice to require users to reflash unnecessarily).
Quoted 6 lines
The u-boot that came with the boards (at least MPC8315E-RDB) is too old for 2.6.25+ kernels:
I have run into this earlier:
"It doesn't work" doesn't imply "It's worthless to try to make it work".
-Scott