ARM: dts: ixp4xx: Create a proper expansion bus
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 11 May 2021 07:44:58 +0000 (09:44 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 11 May 2021 23:04:23 +0000 (01:04 +0200)
The IXP4xx expansion bus is 24 bits (256 MB) that is memory
mapped between 0x50000000-0x5fffffff usin a set of chip
selects. The size of the windows is 16 or 32MB defined by
the boot loader system configuration at runtime.

Create a rudimentary simple-bus and move the flash memories
to the expansion bus, inside the SoC.

Cc: Zoltan HERPAI <wigyori@uid0.hu>
Cc: Raylynn Knight <rayknight@me.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
arch/arm/boot/dts/intel-ixp42x-linksys-nslu2.dts
arch/arm/boot/dts/intel-ixp43x-gateworks-gw2358.dts
arch/arm/boot/dts/intel-ixp4xx.dtsi

index af9a2b0fe53990d9473a8be61929838aff2fde1b..46dda0a895e7473ece01b578f186bc2dbe98a797 100644 (file)
                timeout-ms = <5000>;
        };
 
-       /* The first 16MB region on the expansion bus */
-       flash@50000000 {
-               compatible = "intel,ixp4xx-flash", "cfi-flash";
-               bank-width = <2>;
-               /*
-                * 8 MB of Flash in 0x20000 byte blocks
-                * mapped in at 0x50000000
-                */
-               reg = <0x50000000 0x800000>;
-
-               partitions {
-                       compatible = "redboot-fis";
-                       /* Eraseblock at 0x7e0000 */
-                       fis-index-block = <0x3f>;
+       soc {
+               bus@50000000 {
+                       /* The first 16MB region at CS0 on the expansion bus */
+                       flash@0 {
+                               compatible = "intel,ixp4xx-flash", "cfi-flash";
+                               bank-width = <2>;
+                               /*
+                                * 8 MB of Flash in 0x20000 byte blocks
+                                * mapped in at CS0.
+                                */
+                               reg = <0x00000000 0x800000>;
+
+                               partitions {
+                                       compatible = "redboot-fis";
+                                       /* Eraseblock at 0x7e0000 */
+                                       fis-index-block = <0x3f>;
+                               };
+                       };
                };
-       };
 
-       soc {
                pci@c0000000 {
                        status = "ok";
 
index 130a245a77e68922fc84b0a9104a03d536dfe364..581ff18a2310be3e9f859da11f220feafda06bfc 100644 (file)
                };
        };
 
-       flash@50000000 {
-               compatible = "intel,ixp4xx-flash", "cfi-flash";
-               bank-width = <2>;
-               /*
-                * 32 MB of Flash in 0x20000 byte blocks
-                * mapped in at 0x50000000
-                */
-               reg = <0x50000000 0x2000000>;
-
-               partitions {
-                       compatible = "redboot-fis";
-                       /* Eraseblock at 0x1fe0000 */
-                       fis-index-block = <0xff>;
+       soc {
+               bus@50000000 {
+                       flash@0 {
+                               compatible = "intel,ixp4xx-flash", "cfi-flash";
+                               bank-width = <2>;
+                               /*
+                                * 32 MB of Flash in 0x20000 byte blocks
+                                * mapped in at CS0.
+                                */
+                               reg = <0x00000000 0x2000000>;
+
+                               partitions {
+                                       compatible = "redboot-fis";
+                                       /* Eraseblock at 0x1fe0000 */
+                                       fis-index-block = <0xff>;
+                               };
+                       };
                };
-       };
 
-       soc {
                pci@c0000000 {
                        status = "ok";
 
index edfd81d9f3dab0116df947e1bff3b75b4bca7045..31371c65ad6d8bb3c7e64daa4e5bd94f5fe8afc6 100644 (file)
                compatible = "simple-bus";
                interrupt-parent = <&intcon>;
 
+               /*
+                * The IXP4xx expansion bus is a set of 16 or 32MB
+                * windows in the 256MB space from 0x50000000 to
+                * 0x5fffffff.
+                */
+               bus@50000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x00000000 0x50000000 0x10000000>;
+                       dma-ranges = <0x00000000 0x50000000 0x10000000>;
+               };
+
                qmgr: queue-manager@60000000 {
                        compatible = "intel,ixp4xx-ahb-queue-manager";
                        reg = <0x60000000 0x4000>;