Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux...
authorMichael Ellerman <mpe@ellerman.id.au>
Fri, 19 Jun 2015 07:23:48 +0000 (17:23 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 19 Jun 2015 07:23:48 +0000 (17:23 +1000)
Freescale updates from Scott:

"Highlights include more 8xx optimizations, an e6500 hugetlb optimization,
QMan device tree nodes, t1024/t1023 support, and various fixes and
cleanup."

50 files changed:
Documentation/devicetree/bindings/powerpc/fsl/fman.txt
Documentation/devicetree/bindings/powerpc/fsl/guts.txt
Documentation/devicetree/bindings/soc/fsl/qman-portals.txt
arch/powerpc/boot/dts/b4qds.dtsi
arch/powerpc/boot/dts/fsl/b4420si-post.dtsi
arch/powerpc/boot/dts/fsl/b4860si-post.dtsi
arch/powerpc/boot/dts/fsl/b4si-post.dtsi
arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
arch/powerpc/boot/dts/fsl/p5040si-post.dtsi
arch/powerpc/boot/dts/fsl/qoriq-qman1-portals.dtsi
arch/powerpc/boot/dts/fsl/t1023si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/t1024si-post.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi [new file with mode: 0644]
arch/powerpc/boot/dts/fsl/t1040si-post.dtsi
arch/powerpc/boot/dts/fsl/t2081si-post.dtsi
arch/powerpc/boot/dts/fsl/t4240si-post.dtsi
arch/powerpc/boot/dts/kmcoge4.dts
arch/powerpc/boot/dts/oca4080.dts
arch/powerpc/boot/dts/p1023rdb.dts
arch/powerpc/boot/dts/p2041rdb.dts
arch/powerpc/boot/dts/p3041ds.dts
arch/powerpc/boot/dts/p4080ds.dts
arch/powerpc/boot/dts/p5020ds.dts
arch/powerpc/boot/dts/p5040ds.dts
arch/powerpc/boot/dts/t1023rdb.dts [new file with mode: 0644]
arch/powerpc/boot/dts/t1024qds.dts [new file with mode: 0644]
arch/powerpc/boot/dts/t1024rdb.dts [new file with mode: 0644]
arch/powerpc/boot/dts/t104xqds.dtsi
arch/powerpc/boot/dts/t104xrdb.dtsi
arch/powerpc/boot/dts/t208xqds.dtsi
arch/powerpc/boot/dts/t208xrdb.dtsi
arch/powerpc/boot/dts/t4240qds.dts
arch/powerpc/boot/dts/t4240rdb.dts
arch/powerpc/configs/85xx/xes_mpc85xx_defconfig
arch/powerpc/include/asm/cputable.h
arch/powerpc/include/asm/mmu-8xx.h
arch/powerpc/include/asm/pgtable-ppc32.h
arch/powerpc/include/asm/pte-8xx.h
arch/powerpc/kernel/head_8xx.S
arch/powerpc/kernel/idle_e500.S
arch/powerpc/mm/mem.c
arch/powerpc/mm/tlb_low_64e.S
arch/powerpc/platforms/85xx/Kconfig
arch/powerpc/platforms/85xx/corenet_generic.c
arch/powerpc/platforms/85xx/smp.c
arch/powerpc/platforms/85xx/twr_p102x.c

index edda55f7400415a41d70efc9ecc9245d0cc60996..1fc5328c0651bb7d5219fa75887d8c2f630df3dc 100644 (file)
@@ -189,6 +189,19 @@ PROPERTIES
                Definition: There is one reg region describing the port
                configuration registers.
 
+- fsl,fman-10g-port
+               Usage: optional
+               Value type: boolean
+               Definition: The default port rate is 1G.
+               If this property exists, the port is s 10G port.
+
+- fsl,fman-best-effort-port
+               Usage: optional
+               Value type: boolean
+               Definition: Can be defined only if 10G-support is set.
+               This property marks a best-effort 10G port (10G port that
+               may not be capable of line rate).
+
 EXAMPLE
 
 port@a8000 {
index 7f150b5012cc33f8f261460935062359e4f1fb1c..b71b2039e112b165aff6be74c3dee3bf77fda1a1 100644 (file)
@@ -9,6 +9,11 @@ Required properties:
 
  - compatible : Should define the compatible device type for
    global-utilities.
+   Possible compatibles:
+       "fsl,qoriq-device-config-1.0"
+       "fsl,qoriq-device-config-2.0"
+       "fsl,<chip>-device-config"
+       "fsl,<chip>-guts"
  - reg : Offset and length of the register set for the device.
 
 Recommended properties:
index 48c4dae5d6f944a11c8170dcaa9400b25cfd2ec5..47e46ccbc170f27f7a53de4d49b1d583587dd7f0 100644 (file)
@@ -47,7 +47,7 @@ PROPERTIES
 
        For additional details about the PAMU/LIODN binding(s) see pamu.txt
 
-- fsl,qman-channel-id
+- cell-index
        Usage:          Required
        Value type:     <u32>
        Definition:     The hardware index of the channel. This can also be
@@ -136,7 +136,7 @@ The example below shows a (P4080) QMan portals container/bus node with two porta
                        reg = <0x4000 0x4000>, <0x101000 0x1000>;
                        interrupts = <106 2 0 0>;
                        fsl,liodn = <3 4>;
-                       fsl,qman-channel-id = <1>;
+                       cell-index = <1>;
 
                        fman0 {
                                fsl,liodn = <0x22>;
index 24ed80dc2120d5df44092d0b613100289f978fed..559d00657fb5e0422747f34a190cf341047538f3 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x2000000>;
        };
 
+       qportals: qman-portals@ff6000000 {
+               ranges = <0x0 0xf 0xf6000000 0x2000000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 86161ae6c966e091ef32c053e8662f44b804d927..1ea8602e4345f4a3bde9bdd57f959cdd0c8c51ef 100644 (file)
                compatible = "fsl,b4420-device-config", "fsl,qoriq-device-config-2.0";
        };
 
-/include/ "qoriq-clockgen2.dtsi"
        global-utilities@e1000 {
-               compatible = "fsl,b4420-clockgen", "fsl,qoriq-clockgen-2.0";
-
-               mux0: mux0@0 {
-                       #clock-cells = <0>;
-                       reg = <0x0 0x4>;
-                       compatible = "fsl,qoriq-core-mux-2.0";
-                       clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>,
-                               <&pll1 0>, <&pll1 1>, <&pll1 2>;
-                       clock-names = "pll0", "pll0-div2", "pll0-div4",
-                               "pll1", "pll1-div2", "pll1-div4";
-                       clock-output-names = "cmux0";
-               };
+               compatible = "fsl,b4420-clockgen", "fsl,b4-clockgen",
+                             "fsl,qoriq-clockgen-2.0";
        };
 
        rcpm: global-utilities@e2000 {
index f35e9e0a54455793d306a2ede44141f0636a2f16..9ba904be39ee185cdd5d70ff0d9431d1a5bfcdad 100644 (file)
        };
 };
 
+&qportals {
+       qportal14: qman-portal@38000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x38000 0x4000>, <0x100e000 0x1000>;
+               interrupts = <132 0x2 0 0>;
+               cell-index = <0xe>;
+       };
+       qportal15: qman-portal@3c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x3c000 0x4000>, <0x100f000 0x1000>;
+               interrupts = <134 0x2 0 0>;
+               cell-index = <0xf>;
+       };
+       qportal16: qman-portal@40000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x40000 0x4000>, <0x1010000 0x1000>;
+               interrupts = <136 0x2 0 0>;
+               cell-index = <0x10>;
+       };
+       qportal17: qman-portal@44000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x44000 0x4000>, <0x1011000 0x1000>;
+               interrupts = <138 0x2 0 0>;
+               cell-index = <0x11>;
+       };
+       qportal18: qman-portal@48000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x48000 0x4000>, <0x1012000 0x1000>;
+               interrupts = <140 0x2 0 0>;
+               cell-index = <0x12>;
+       };
+       qportal19: qman-portal@4c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x4c000 0x4000>, <0x1013000 0x1000>;
+               interrupts = <142 0x2 0 0>;
+               cell-index = <0x13>;
+       };
+       qportal20: qman-portal@50000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x50000 0x4000>, <0x1014000 0x1000>;
+               interrupts = <144 0x2 0 0>;
+               cell-index = <0x14>;
+       };
+       qportal21: qman-portal@54000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x54000 0x4000>, <0x1015000 0x1000>;
+               interrupts = <146 0x2 0 0>;
+               cell-index = <0x15>;
+       };
+       qportal22: qman-portal@58000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x58000 0x4000>, <0x1016000 0x1000>;
+               interrupts = <148 0x2 0 0>;
+               cell-index = <0x16>;
+       };
+       qportal23: qman-portal@5c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x5c000 0x4000>, <0x1017000 0x1000>;
+               interrupts = <150 0x2 0 0>;
+               cell-index = <0x17>;
+       };
+       qportal24: qman-portal@60000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x60000 0x4000>, <0x1018000 0x1000>;
+               interrupts = <152 0x2 0 0>;
+               cell-index = <0x18>;
+       };
+};
+
 &soc {
        ddr2: memory-controller@9000 {
                compatible = "fsl,qoriq-memory-controller-v4.5", "fsl,qoriq-memory-controller";
                compatible = "fsl,b4860-device-config", "fsl,qoriq-device-config-2.0";
        };
 
-/include/ "qoriq-clockgen2.dtsi"
        global-utilities@e1000 {
-               compatible = "fsl,b4860-clockgen", "fsl,qoriq-clockgen-2.0";
-
-               mux0: mux0@0 {
-                       #clock-cells = <0>;
-                       reg = <0x0 0x4>;
-                       compatible = "fsl,qoriq-core-mux-2.0";
-                       clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>,
-                               <&pll1 0>, <&pll1 1>, <&pll1 2>;
-                       clock-names = "pll0", "pll0-div2", "pll0-div4",
-                               "pll1", "pll1-div2", "pll1-div4";
-                       clock-output-names = "cmux0";
-               };
+               compatible = "fsl,b4860-clockgen", "fsl,b4-clockgen",
+                             "fsl,qoriq-clockgen-2.0";
        };
 
        rcpm: global-utilities@e2000 {
index 73136c0029d223f1b19d372dd58b0891ed61c0b4..603910ac1db0e4d89ba5684eecae4fd8f8d2014f 100644 (file)
        alloc-ranges = <0 0 0x10000 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
        };
 };
 
+&qportals {
+       #address-cells = <0x1>;
+       #size-cells = <0x1>;
+       compatible = "simple-bus";
+
+       qportal0: qman-portal@0 {
+               compatible = "fsl,qman-portal";
+               reg = <0x0 0x4000>, <0x1000000 0x1000>;
+               interrupts = <104 0x2 0 0>;
+               cell-index = <0x0>;
+       };
+       qportal1: qman-portal@4000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x4000 0x4000>, <0x1001000 0x1000>;
+               interrupts = <106 0x2 0 0>;
+               cell-index = <0x1>;
+       };
+       qportal2: qman-portal@8000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x8000 0x4000>, <0x1002000 0x1000>;
+               interrupts = <108 0x2 0 0>;
+               cell-index = <0x2>;
+       };
+       qportal3: qman-portal@c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xc000 0x4000>, <0x1003000 0x1000>;
+               interrupts = <110 0x2 0 0>;
+               cell-index = <0x3>;
+       };
+       qportal4: qman-portal@10000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x10000 0x4000>, <0x1004000 0x1000>;
+               interrupts = <112 0x2 0 0>;
+               cell-index = <0x4>;
+       };
+       qportal5: qman-portal@14000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x14000 0x4000>, <0x1005000 0x1000>;
+               interrupts = <114 0x2 0 0>;
+               cell-index = <0x5>;
+       };
+       qportal6: qman-portal@18000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x18000 0x4000>, <0x1006000 0x1000>;
+               interrupts = <116 0x2 0 0>;
+               cell-index = <0x6>;
+       };
+       qportal7: qman-portal@1c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x1c000 0x4000>, <0x1007000 0x1000>;
+               interrupts = <118 0x2 0 0>;
+               cell-index = <0x7>;
+       };
+       qportal8: qman-portal@20000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x20000 0x4000>, <0x1008000 0x1000>;
+               interrupts = <120 0x2 0 0>;
+               cell-index = <0x8>;
+       };
+       qportal9: qman-portal@24000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x24000 0x4000>, <0x1009000 0x1000>;
+               interrupts = <122 0x2 0 0>;
+               cell-index = <0x9>;
+       };
+       qportal10: qman-portal@28000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x28000 0x4000>, <0x100a000 0x1000>;
+               interrupts = <124 0x2 0 0>;
+               cell-index = <0xa>;
+       };
+       qportal11: qman-portal@2c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x2c000 0x4000>, <0x100b000 0x1000>;
+               interrupts = <126 0x2 0 0>;
+               cell-index = <0xb>;
+       };
+       qportal12: qman-portal@30000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x30000 0x4000>, <0x100c000 0x1000>;
+               interrupts = <128 0x2 0 0>;
+               cell-index = <0xc>;
+       };
+       qportal13: qman-portal@34000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x34000 0x4000>, <0x100d000 0x1000>;
+               interrupts = <130 0x2 0 0>;
+               cell-index = <0xd>;
+       };
+};
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
                fsl,liodn-bits = <12>;
        };
 
+/include/ "qoriq-clockgen2.dtsi"
        clockgen: global-utilities@e1000 {
                compatible = "fsl,b4-clockgen", "fsl,qoriq-clockgen-2.0";
                reg = <0xe1000 0x1000>;
+
+               mux0: mux0@0 {
+                       #clock-cells = <0>;
+                       reg = <0x0 0x4>;
+                       compatible = "fsl,qoriq-core-mux-2.0";
+                       clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>,
+                               <&pll1 0>, <&pll1 1>, <&pll1 2>;
+                       clock-names = "pll0", "pll0-div2", "pll0-div4",
+                               "pll1", "pll1-div2", "pll1-div4";
+                       clock-output-names = "cmux0";
+               };
        };
 
        rcpm: global-utilities@e2000 {
 /include/ "qoriq-duart-1.dtsi"
 /include/ "qoriq-sec5.3-0.dtsi"
 
+/include/ "qoriq-qman3.dtsi"
+       qman: qman@318000 {
+               interrupts = <16 2 1 28>;
+       };
+
 /include/ "qoriq-bman1.dtsi"
        bman: bman@31a000 {
                interrupts = <16 2 1 29>;
index 7780f21430cba57b61f4f332e20f57cbc5ff553a..da6d3fc6ba41501f31a42389464659d33e469e14 100644 (file)
        alloc-ranges = <0 0 0x10 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10 0>;
+};
+
 &lbc {
        #address-cells = <2>;
        #size-cells = <1>;
        };
 };
 
+&qportals {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "simple-bus";
+
+       qportal0: qman-portal@0 {
+               compatible = "fsl,qman-portal";
+               reg = <0x0 0x4000>, <0x100000 0x1000>;
+               interrupts = <29 2 0 0>;
+               cell-index = <0>;
+       };
+       qportal1: qman-portal@4000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x4000 0x4000>, <0x101000 0x1000>;
+               interrupts = <31 2 0 0>;
+               cell-index = <1>;
+       };
+       qportal2: qman-portal@8000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x8000 0x4000>, <0x102000 0x1000>;
+               interrupts = <33 2 0 0>;
+               cell-index = <2>;
+       };
+};
+
 &bportals {
        #address-cells = <1>;
        #size-cells = <1>;
 /include/ "pq3-mpic.dtsi"
 /include/ "pq3-mpic-timer-B.dtsi"
 
+       qman: qman@88000 {
+               compatible = "fsl,qman";
+               reg = <0x88000 0x1000>;
+               interrupts = <16 2 0 0>;
+               fsl,qman-portals = <&qportals>;
+               memory-region = <&qman_fqd &qman_pfdr>;
+       };
+
        bman: bman@8a000 {
                compatible = "fsl,bman";
                reg = <0x8a000 0x1000>;
index f2feacfd9a2536749d2a41f2fa76820554915a12..1f18b8bac1d2b1d81e8f74254cebfd9df1839cd0 100644 (file)
        alloc-ranges = <0 0 0x10 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10 0>;
+};
+
 &lbc {
        compatible = "fsl,p2041-elbc", "fsl,elbc", "simple-bus";
        interrupts = <25 2 0 0>;
 
 /include/ "qoriq-bman1-portals.dtsi"
 
+/include/ "qoriq-qman1-portals.dtsi"
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
@@ -415,5 +427,6 @@ crypto: crypto@300000 {
                fsl,iommu-parent = <&pamu1>;
        };
 
+/include/ "qoriq-qman1.dtsi"
 /include/ "qoriq-bman1.dtsi"
 };
index d6fea37395ad60185a34e7297791cd7ea8af3a24..a555d24911977e62fd82eb81753e3361bc9202f0 100644 (file)
        alloc-ranges = <0 0 0x10 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10 0>;
+};
+
 &lbc {
        compatible = "fsl,p3041-elbc", "fsl,elbc", "simple-bus";
        interrupts = <25 2 0 0>;
 
 /include/ "qoriq-bman1-portals.dtsi"
 
+/include/ "qoriq-qman1-portals.dtsi"
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
@@ -442,5 +454,6 @@ crypto: crypto@300000 {
                fsl,iommu-parent = <&pamu1>;
        };
 
+/include/ "qoriq-qman1.dtsi"
 /include/ "qoriq-bman1.dtsi"
 };
index 89482c9b2301b5fdd0ffcfc4aa0c08efd2f5a29a..0fe728113197ed7bd7c1c5eab3287aac9abc78ce 100644 (file)
        alloc-ranges = <0 0 0x10 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10 0>;
+};
+
 &lbc {
        compatible = "fsl,p4080-elbc", "fsl,elbc", "simple-bus";
        interrupts = <25 2 0 0>;
 
 /include/ "qoriq-bman1-portals.dtsi"
 
+/include/ "qoriq-qman1-portals.dtsi"
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
@@ -498,5 +510,6 @@ crypto: crypto@300000 {
                fsl,iommu-parent = <&pamu1>;
        };
 
+/include/ "qoriq-qman1.dtsi"
 /include/ "qoriq-bman1.dtsi"
 };
index 6e04851e2fc936a0c44b8e0f4d9b223ad139eefb..a34ca200d8fb09461d5ab521d6940564a28da480 100644 (file)
        alloc-ranges = <0 0 0x10000 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
 &lbc {
        compatible = "fsl,p5020-elbc", "fsl,elbc", "simple-bus";
        interrupts = <25 2 0 0>;
 
 /include/ "qoriq-bman1-portals.dtsi"
 
+/include/ "qoriq-qman1-portals.dtsi"
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
                fsl,iommu-parent = <&pamu1>;
        };
 
+/include/ "qoriq-qman1.dtsi"
 /include/ "qoriq-bman1.dtsi"
 
 /include/ "qoriq-raid1.0-0.dtsi"
index 5e44dfa1e1a58fef4e895784c3ebc7a025673f8a..bf575132c30952ab65d5e27d3cde6d890c4767cf 100644 (file)
        alloc-ranges = <0 0 0x10000 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
 &lbc {
        compatible = "fsl,p5040-elbc", "fsl,elbc", "simple-bus";
        interrupts = <25 2 0 0>;
 
 /include/ "qoriq-bman1-portals.dtsi"
 
+/include/ "qoriq-qman1-portals.dtsi"
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
                fsl,iommu-parent = <&pamu4>;
        };
 
+/include/ "qoriq-qman1.dtsi"
 /include/ "qoriq-bman1.dtsi"
 };
index 05d51acafa67a960caa975e997ebaad9d9b3ac0a..e77e4b4ed53b73911fd41a24012f313798c86307 100644 (file)
                compatible = "fsl,qman-portal";
                reg = <0x0 0x4000>, <0x100000 0x1000>;
                interrupts = <104 2 0 0>;
-               fsl,qman-channel-id = <0x0>;
+               cell-index = <0x0>;
        };
        qportal1: qman-portal@4000 {
                compatible = "fsl,qman-portal";
                reg = <0x4000 0x4000>, <0x101000 0x1000>;
                interrupts = <106 2 0 0>;
-               fsl,qman-channel-id = <1>;
+               cell-index = <1>;
        };
        qportal2: qman-portal@8000 {
                compatible = "fsl,qman-portal";
                reg = <0x8000 0x4000>, <0x102000 0x1000>;
                interrupts = <108 2 0 0>;
-               fsl,qman-channel-id = <2>;
+               cell-index = <2>;
        };
        qportal3: qman-portal@c000 {
                compatible = "fsl,qman-portal";
                reg = <0xc000 0x4000>, <0x103000 0x1000>;
                interrupts = <110 2 0 0>;
-               fsl,qman-channel-id = <3>;
+               cell-index = <3>;
        };
        qportal4: qman-portal@10000 {
                compatible = "fsl,qman-portal";
                reg = <0x10000 0x4000>, <0x104000 0x1000>;
                interrupts = <112 2 0 0>;
-               fsl,qman-channel-id = <4>;
+               cell-index = <4>;
        };
        qportal5: qman-portal@14000 {
                compatible = "fsl,qman-portal";
                reg = <0x14000 0x4000>, <0x105000 0x1000>;
                interrupts = <114 2 0 0>;
-               fsl,qman-channel-id = <5>;
+               cell-index = <5>;
        };
        qportal6: qman-portal@18000 {
                compatible = "fsl,qman-portal";
                reg = <0x18000 0x4000>, <0x106000 0x1000>;
                interrupts = <116 2 0 0>;
-               fsl,qman-channel-id = <6>;
+               cell-index = <6>;
        };
 
        qportal7: qman-portal@1c000 {
                compatible = "fsl,qman-portal";
                reg = <0x1c000 0x4000>, <0x107000 0x1000>;
                interrupts = <118 2 0 0>;
-               fsl,qman-channel-id = <7>;
+               cell-index = <7>;
        };
        qportal8: qman-portal@20000 {
                compatible = "fsl,qman-portal";
                reg = <0x20000 0x4000>, <0x108000 0x1000>;
                interrupts = <120 2 0 0>;
-               fsl,qman-channel-id = <8>;
+               cell-index = <8>;
        };
        qportal9: qman-portal@24000 {
                compatible = "fsl,qman-portal";
                reg = <0x24000 0x4000>, <0x109000 0x1000>;
                interrupts = <122 2 0 0>;
-               fsl,qman-channel-id = <9>;
+               cell-index = <9>;
        };
 };
diff --git a/arch/powerpc/boot/dts/fsl/t1023si-post.dtsi b/arch/powerpc/boot/dts/fsl/t1023si-post.dtsi
new file mode 100644 (file)
index 0000000..df1f068
--- /dev/null
@@ -0,0 +1,330 @@
+/*
+ * T1023 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2014 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *      names of its contributors may be used to endorse or promote products
+ *      derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+&ifc {
+       #address-cells = <2>;
+       #size-cells = <1>;
+       compatible = "fsl,ifc", "simple-bus";
+       interrupts = <25 2 0 0>;
+};
+
+&pci0 {
+       compatible = "fsl,t1023-pcie", "fsl,qoriq-pcie-v2.4", "fsl,qoriq-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       interrupts = <20 2 0 0>;
+       fsl,iommu-parent = <&pamu0>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <20 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 40 1 0 0
+                       0000 0 0 2 &mpic 1 1 0 0
+                       0000 0 0 3 &mpic 2 1 0 0
+                       0000 0 0 4 &mpic 3 1 0 0
+                       >;
+       };
+};
+
+&pci1 {
+       compatible = "fsl,t1023-pcie", "fsl,qoriq-pcie-v2.4", "fsl,qoriq-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0 0xff>;
+       interrupts = <21 2 0 0>;
+       fsl,iommu-parent = <&pamu0>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <21 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 41 1 0 0
+                       0000 0 0 2 &mpic 5 1 0 0
+                       0000 0 0 3 &mpic 6 1 0 0
+                       0000 0 0 4 &mpic 7 1 0 0
+                       >;
+       };
+};
+
+&pci2 {
+       compatible = "fsl,t1023-pcie", "fsl,qoriq-pcie-v2.4", "fsl,qoriq-pcie";
+       device_type = "pci";
+       #size-cells = <2>;
+       #address-cells = <3>;
+       bus-range = <0x0 0xff>;
+       interrupts = <22 2 0 0>;
+       fsl,iommu-parent = <&pamu0>;
+       pcie@0 {
+               reg = <0 0 0 0 0>;
+               #interrupt-cells = <1>;
+               #size-cells = <2>;
+               #address-cells = <3>;
+               device_type = "pci";
+               interrupts = <22 2 0 0>;
+               interrupt-map-mask = <0xf800 0 0 7>;
+               interrupt-map = <
+                       /* IDSEL 0x0 */
+                       0000 0 0 1 &mpic 42 1 0 0
+                       0000 0 0 2 &mpic 9 1 0 0
+                       0000 0 0 3 &mpic 10 1 0 0
+                       0000 0 0 4 &mpic 11 1 0 0
+                       >;
+       };
+};
+
+&dcsr {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       compatible = "fsl,dcsr", "simple-bus";
+
+       dcsr-epu@0 {
+               compatible = "fsl,t1023-dcsr-epu", "fsl,dcsr-epu";
+               interrupts = <52 2 0 0
+                             84 2 0 0
+                             85 2 0 0>;
+               reg = <0x0 0x1000>;
+       };
+       dcsr-npc {
+               compatible = "fsl,t1023-dcsr-cnpc", "fsl,dcsr-cnpc";
+               reg = <0x1000 0x1000 0x1002000 0x10000>;
+       };
+       dcsr-nxc@2000 {
+               compatible = "fsl,dcsr-nxc";
+               reg = <0x2000 0x1000>;
+       };
+       dcsr-corenet {
+               compatible = "fsl,dcsr-corenet";
+               reg = <0x8000 0x1000 0x1A000 0x1000>;
+       };
+       dcsr-ocn@11000 {
+               compatible = "fsl,t1023-dcsr-ocn", "fsl,dcsr-ocn";
+               reg = <0x11000 0x1000>;
+       };
+       dcsr-ddr@12000 {
+               compatible = "fsl,dcsr-ddr";
+               dev-handle = <&ddr1>;
+               reg = <0x12000 0x1000>;
+       };
+       dcsr-nal@18000 {
+               compatible = "fsl,t1023-dcsr-nal", "fsl,dcsr-nal";
+               reg = <0x18000 0x1000>;
+       };
+       dcsr-rcpm@22000 {
+               compatible = "fsl,t1023-dcsr-rcpm", "fsl,dcsr-rcpm";
+               reg = <0x22000 0x1000>;
+       };
+       dcsr-snpc@30000 {
+               compatible = "fsl,t1023-dcsr-snpc", "fsl,dcsr-snpc";
+               reg = <0x30000 0x1000 0x1022000 0x10000>;
+       };
+       dcsr-snpc@31000 {
+               compatible = "fsl,t1023-dcsr-snpc", "fsl,dcsr-snpc";
+               reg = <0x31000 0x1000 0x1042000 0x10000>;
+       };
+       dcsr-cpu-sb-proxy@100000 {
+               compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu0>;
+               reg = <0x100000 0x1000 0x101000 0x1000>;
+       };
+       dcsr-cpu-sb-proxy@108000 {
+               compatible = "fsl,dcsr-e5500-sb-proxy", "fsl,dcsr-cpu-sb-proxy";
+               cpu-handle = <&cpu1>;
+               reg = <0x108000 0x1000 0x109000 0x1000>;
+       };
+};
+
+&soc {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       device_type = "soc";
+       compatible = "simple-bus";
+
+       soc-sram-error {
+               compatible = "fsl,soc-sram-error";
+               interrupts = <16 2 1 29>;
+       };
+
+       corenet-law@0 {
+               compatible = "fsl,corenet-law";
+               reg = <0x0 0x1000>;
+               fsl,num-laws = <16>;
+       };
+
+       ddr1: memory-controller@8000 {
+               compatible = "fsl,qoriq-memory-controller-v5.0",
+                               "fsl,qoriq-memory-controller";
+               reg = <0x8000 0x1000>;
+               interrupts = <16 2 1 23>;
+       };
+
+       cpc: l3-cache-controller@10000 {
+               compatible = "fsl,t1023-l3-cache-controller", "cache";
+               reg = <0x10000 0x1000>;
+               interrupts = <16 2 1 27>;
+       };
+
+       corenet-cf@18000 {
+               compatible = "fsl,corenet2-cf";
+               reg = <0x18000 0x1000>;
+               interrupts = <16 2 1 31>;
+       };
+
+       iommu@20000 {
+               compatible = "fsl,pamu-v1.0", "fsl,pamu";
+               reg = <0x20000 0x1000>;
+               ranges = <0 0x20000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               interrupts = <
+                       24 2 0 0
+                       16 2 1 30>;
+               pamu0: pamu@0 {
+                       reg = <0 0x1000>;
+                       fsl,primary-cache-geometry = <128 1>;
+                       fsl,secondary-cache-geometry = <32 2>;
+               };
+       };
+
+/include/ "qoriq-mpic.dtsi"
+
+       guts: global-utilities@e0000 {
+               compatible = "fsl,t1023-device-config", "fsl,qoriq-device-config-2.0";
+               reg = <0xe0000 0xe00>;
+               fsl,has-rstcr;
+               fsl,liodn-bits = <12>;
+       };
+
+/include/ "qoriq-clockgen2.dtsi"
+       global-utilities@e1000 {
+               compatible = "fsl,t1023-clockgen", "fsl,qoriq-clockgen-2.0";
+               mux0: mux0@0 {
+                       #clock-cells = <0>;
+                       reg = <0x0 4>;
+                       compatible = "fsl,core-mux-clock";
+                       clocks = <&pll0 0>, <&pll0 1>;
+                       clock-names = "pll0_0", "pll0_1";
+                       clock-output-names = "cmux0";
+               };
+               mux1: mux1@20 {
+                       #clock-cells = <0>;
+                       reg = <0x20 4>;
+                       compatible = "fsl,core-mux-clock";
+                       clocks = <&pll0 0>, <&pll0 1>;
+                       clock-names = "pll0_0", "pll0_1";
+                       clock-output-names = "cmux1";
+               };
+       };
+
+       rcpm: global-utilities@e2000 {
+               compatible = "fsl,t1023-rcpm", "fsl,qoriq-rcpm-2.0";
+               reg = <0xe2000 0x1000>;
+       };
+
+       sfp: sfp@e8000 {
+               compatible = "fsl,t1023-sfp";
+               reg = <0xe8000 0x1000>;
+       };
+
+       serdes: serdes@ea000 {
+               compatible = "fsl,t1023-serdes";
+               reg = <0xea000 0x4000>;
+       };
+
+       scfg: global-utilities@fc000 {
+               compatible = "fsl,t1023-scfg";
+               reg = <0xfc000 0x1000>;
+       };
+
+/include/ "elo3-dma-0.dtsi"
+/include/ "elo3-dma-1.dtsi"
+
+/include/ "qoriq-espi-0.dtsi"
+       spi@110000 {
+               fsl,espi-num-chipselects = <4>;
+       };
+
+/include/ "qoriq-esdhc-0.dtsi"
+       sdhc@114000 {
+               compatible = "fsl,t1023-esdhc", "fsl,esdhc";
+               fsl,iommu-parent = <&pamu0>;
+               fsl,liodn-reg = <&guts 0x530>; /* eSDHCLIODNR */
+               sdhci,auto-cmd12;
+               no-1-8-v;
+       };
+/include/ "qoriq-i2c-0.dtsi"
+/include/ "qoriq-i2c-1.dtsi"
+/include/ "qoriq-duart-0.dtsi"
+/include/ "qoriq-duart-1.dtsi"
+/include/ "qoriq-gpio-0.dtsi"
+/include/ "qoriq-gpio-1.dtsi"
+/include/ "qoriq-gpio-2.dtsi"
+/include/ "qoriq-gpio-3.dtsi"
+/include/ "qoriq-usb2-mph-0.dtsi"
+       usb0: usb@210000 {
+               compatible = "fsl-usb2-mph-v2.5", "fsl-usb2-mph";
+               fsl,iommu-parent = <&pamu0>;
+               fsl,liodn-reg = <&guts 0x520>; /* USB1LIODNR */
+               phy_type = "utmi";
+               port0;
+       };
+/include/ "qoriq-usb2-dr-0.dtsi"
+       usb1: usb@211000 {
+               compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";
+               fsl,iommu-parent = <&pamu0>;
+               fsl,liodn-reg = <&guts 0x524>; /* USB2LIODNR */
+               dr_mode = "host";
+               phy_type = "utmi";
+       };
+/include/ "qoriq-sata2-0.dtsi"
+       sata@220000 {
+               fsl,iommu-parent = <&pamu0>;
+               fsl,liodn-reg = <&guts 0x550>; /* SATA1LIODNR */
+       };
+
+/include/ "qoriq-sec5.0-0.dtsi"
+};
diff --git a/arch/powerpc/boot/dts/fsl/t1024si-post.dtsi b/arch/powerpc/boot/dts/fsl/t1024si-post.dtsi
new file mode 100644 (file)
index 0000000..95e3af8
--- /dev/null
@@ -0,0 +1,100 @@
+/*
+ * T1024 Silicon/SoC Device Tree Source (post include)
+ *
+ * Copyright 2014 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *       notice, this list of conditions and the following disclaimer in the
+ *       documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *       names of its contributors may be used to endorse or promote products
+ *       derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/include/ "t1023si-post.dtsi"
+
+/ {
+       aliases {
+               vga = &display;
+               display = &display;
+       };
+
+       qe:qe@ffe140000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               device_type = "qe";
+               compatible = "fsl,qe";
+               ranges = <0x0 0xf 0xfe140000 0x40000>;
+               reg = <0xf 0xfe140000 0 0x480>;
+               fsl,qe-num-riscs = <1>;
+               fsl,qe-num-snums = <28>;
+               brg-frequency = <0>;
+               bus-frequency = <0>;
+       };
+};
+
+&soc {
+       display:display@180000 {
+               compatible = "fsl,t1024-diu", "fsl,diu";
+               reg = <0x180000 1000>;
+               interrupts = <74 2 0 0>;
+       };
+};
+
+&qe {
+       qeic: interrupt-controller@80 {
+               interrupt-controller;
+               compatible = "fsl,qe-ic";
+               #address-cells = <0>;
+               #interrupt-cells = <1>;
+               reg = <0x80 0x80>;
+               interrupts = <95 2 0 0  94 2 0 0>; //high:79 low:78
+       };
+
+       ucc@2000 {
+               cell-index = <1>;
+               reg = <0x2000 0x200>;
+               interrupts = <32>;
+               interrupt-parent = <&qeic>;
+       };
+
+       ucc@2200 {
+               cell-index = <3>;
+               reg = <0x2200 0x200>;
+               interrupts = <34>;
+               interrupt-parent = <&qeic>;
+       };
+
+       muram@10000 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "fsl,qe-muram", "fsl,cpm-muram";
+               ranges = <0x0 0x10000 0x6000>;
+
+               data-only@0 {
+                       compatible = "fsl,qe-muram-data", "fsl,cpm-muram-data";
+                       reg = <0x0 0x6000>;
+               };
+       };
+};
diff --git a/arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi b/arch/powerpc/boot/dts/fsl/t102xsi-pre.dtsi
new file mode 100644 (file)
index 0000000..1f1a9f8
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * T1024/T1023 Silicon/SoC Device Tree Source (pre include)
+ *
+ * Copyright 2014 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *      names of its contributors may be used to endorse or promote products
+ *      derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+
+/include/ "e5500_power_isa.dtsi"
+
+/ {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       aliases {
+               ccsr = &soc;
+               dcsr = &dcsr;
+
+               dma0 = &dma0;
+               dma1 = &dma1;
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               pci0 = &pci0;
+               pci1 = &pci1;
+               pci2 = &pci2;
+               usb0 = &usb0;
+               usb1 = &usb1;
+               sdhc = &sdhc;
+
+               crypto = &crypto;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: PowerPC,e5500@0 {
+                       device_type = "cpu";
+                       reg = <0>;
+                       clocks = <&mux0>;
+                       next-level-cache = <&L2_1>;
+                       L2_1: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+               cpu1: PowerPC,e5500@1 {
+                       device_type = "cpu";
+                       reg = <1>;
+                       clocks = <&mux1>;
+                       next-level-cache = <&L2_2>;
+                       L2_2: l2-cache {
+                               next-level-cache = <&cpc>;
+                       };
+               };
+       };
+};
index 5cc01be5b1527cadb8b6a385b893fe7a5cfd1223..9e9f7e201d43a2234a8483f36f12b7e8ac0764fd 100644 (file)
        alloc-ranges = <0 0 0x10000 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
        };
 };
 
+&qportals {
+       #address-cells = <0x1>;
+       #size-cells = <0x1>;
+       compatible = "simple-bus";
+
+       qportal0: qman-portal@0 {
+               compatible = "fsl,qman-portal";
+               reg = <0x0 0x4000>, <0x1000000 0x1000>;
+               interrupts = <104 0x2 0 0>;
+               cell-index = <0x0>;
+       };
+       qportal1: qman-portal@4000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x4000 0x4000>, <0x1001000 0x1000>;
+               interrupts = <106 0x2 0 0>;
+               cell-index = <0x1>;
+       };
+       qportal2: qman-portal@8000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x8000 0x4000>, <0x1002000 0x1000>;
+               interrupts = <108 0x2 0 0>;
+               cell-index = <0x2>;
+       };
+       qportal3: qman-portal@c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xc000 0x4000>, <0x1003000 0x1000>;
+               interrupts = <110 0x2 0 0>;
+               cell-index = <0x3>;
+       };
+       qportal4: qman-portal@10000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x10000 0x4000>, <0x1004000 0x1000>;
+               interrupts = <112 0x2 0 0>;
+               cell-index = <0x4>;
+       };
+       qportal5: qman-portal@14000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x14000 0x4000>, <0x1005000 0x1000>;
+               interrupts = <114 0x2 0 0>;
+               cell-index = <0x5>;
+       };
+       qportal6: qman-portal@18000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x18000 0x4000>, <0x1006000 0x1000>;
+               interrupts = <116 0x2 0 0>;
+               cell-index = <0x6>;
+       };
+       qportal7: qman-portal@1c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x1c000 0x4000>, <0x1007000 0x1000>;
+               interrupts = <118 0x2 0 0>;
+               cell-index = <0x7>;
+       };
+       qportal8: qman-portal@20000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x20000 0x4000>, <0x1008000 0x1000>;
+               interrupts = <120 0x2 0 0>;
+               cell-index = <0x8>;
+       };
+       qportal9: qman-portal@24000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x24000 0x4000>, <0x1009000 0x1000>;
+               interrupts = <122 0x2 0 0>;
+               cell-index = <0x9>;
+       };
+};
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
                fsl,liodn-reg = <&guts 0x554>; /* SATA2LIODNR */
        };
 /include/ "qoriq-sec5.0-0.dtsi"
+/include/ "qoriq-qman3.dtsi"
 /include/ "qoriq-bman1.dtsi"
 };
index 86bdaf6cbd141c0309524166e97e874e4e69647d..32c790ae7fde70f1762f72df2c0c5ad136919522 100644 (file)
        alloc-ranges = <0 0 0x10000 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
        };
 };
 
+&qportals {
+       #address-cells = <0x1>;
+       #size-cells = <0x1>;
+       compatible = "simple-bus";
+
+       qportal0: qman-portal@0 {
+               compatible = "fsl,qman-portal";
+               reg = <0x0 0x4000>, <0x1000000 0x1000>;
+               interrupts = <104 0x2 0 0>;
+               cell-index = <0x0>;
+       };
+       qportal1: qman-portal@4000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x4000 0x4000>, <0x1001000 0x1000>;
+               interrupts = <106 0x2 0 0>;
+               cell-index = <0x1>;
+       };
+       qportal2: qman-portal@8000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x8000 0x4000>, <0x1002000 0x1000>;
+               interrupts = <108 0x2 0 0>;
+               cell-index = <0x2>;
+       };
+       qportal3: qman-portal@c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xc000 0x4000>, <0x1003000 0x1000>;
+               interrupts = <110 0x2 0 0>;
+               cell-index = <0x3>;
+       };
+       qportal4: qman-portal@10000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x10000 0x4000>, <0x1004000 0x1000>;
+               interrupts = <112 0x2 0 0>;
+               cell-index = <0x4>;
+       };
+       qportal5: qman-portal@14000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x14000 0x4000>, <0x1005000 0x1000>;
+               interrupts = <114 0x2 0 0>;
+               cell-index = <0x5>;
+       };
+       qportal6: qman-portal@18000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x18000 0x4000>, <0x1006000 0x1000>;
+               interrupts = <116 0x2 0 0>;
+               cell-index = <0x6>;
+       };
+       qportal7: qman-portal@1c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x1c000 0x4000>, <0x1007000 0x1000>;
+               interrupts = <118 0x2 0 0>;
+               cell-index = <0x7>;
+       };
+       qportal8: qman-portal@20000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x20000 0x4000>, <0x1008000 0x1000>;
+               interrupts = <120 0x2 0 0>;
+               cell-index = <0x8>;
+       };
+       qportal9: qman-portal@24000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x24000 0x4000>, <0x1009000 0x1000>;
+               interrupts = <122 0x2 0 0>;
+               cell-index = <0x9>;
+       };
+       qportal10: qman-portal@28000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x28000 0x4000>, <0x100a000 0x1000>;
+               interrupts = <124 0x2 0 0>;
+               cell-index = <0xa>;
+       };
+       qportal11: qman-portal@2c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x2c000 0x4000>, <0x100b000 0x1000>;
+               interrupts = <126 0x2 0 0>;
+               cell-index = <0xb>;
+       };
+       qportal12: qman-portal@30000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x30000 0x4000>, <0x100c000 0x1000>;
+               interrupts = <128 0x2 0 0>;
+               cell-index = <0xc>;
+       };
+       qportal13: qman-portal@34000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x34000 0x4000>, <0x100d000 0x1000>;
+               interrupts = <130 0x2 0 0>;
+               cell-index = <0xd>;
+       };
+       qportal14: qman-portal@38000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x38000 0x4000>, <0x100e000 0x1000>;
+               interrupts = <132 0x2 0 0>;
+               cell-index = <0xe>;
+       };
+       qportal15: qman-portal@3c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x3c000 0x4000>, <0x100f000 0x1000>;
+               interrupts = <134 0x2 0 0>;
+               cell-index = <0xf>;
+       };
+       qportal16: qman-portal@40000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x40000 0x4000>, <0x1010000 0x1000>;
+               interrupts = <136 0x2 0 0>;
+               cell-index = <0x10>;
+       };
+       qportal17: qman-portal@44000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x44000 0x4000>, <0x1011000 0x1000>;
+               interrupts = <138 0x2 0 0>;
+               cell-index = <0x11>;
+       };
+};
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
                        compatible = "fsl,qoriq-core-mux-2.0";
                        clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>,
                                 <&pll1 0>, <&pll1 1>, <&pll1 2>;
-                       clock-names = "pll0", "pll0-div2", "pll1-div4",
+                       clock-names = "pll0", "pll0-div2", "pll0-div4",
                                "pll1", "pll1-div2", "pll1-div4";
                        clock-output-names = "cmux0";
                };
                        compatible = "fsl,qoriq-core-mux-2.0";
                        clocks = <&pll0 0>, <&pll0 1>, <&pll0 2>,
                                 <&pll1 0>, <&pll1 1>, <&pll1 2>;
-                       clock-names = "pll0", "pll0-div2", "pll1-div4",
+                       clock-names = "pll0", "pll0-div2", "pll0-div4",
                                "pll1", "pll1-div2", "pll1-div4";
                        clock-output-names = "cmux1";
                };
                phy_type = "utmi";
        };
 /include/ "qoriq-sec5.2-0.dtsi"
+/include/ "qoriq-qman3.dtsi"
 /include/ "qoriq-bman1.dtsi"
 
        L2_1: l2-cache-controller@c20000 {
index 4d4f25895d8c4a9f62d471e2189143892d6d7287..d806360d0f64b4907d4790b995f222b2ae355575 100644 (file)
        alloc-ranges = <0 0 0x10000 0>;
 };
 
+&qman_fqd {
+       compatible = "fsl,qman-fqd";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
+&qman_pfdr {
+       compatible = "fsl,qman-pfdr";
+       alloc-ranges = <0 0 0x10000 0>;
+};
+
 &ifc {
        #address-cells = <2>;
        #size-cells = <1>;
        };
 };
 
+&qportals {
+       #address-cells = <0x1>;
+       #size-cells = <0x1>;
+       compatible = "simple-bus";
+
+       qportal0: qman-portal@0 {
+               compatible = "fsl,qman-portal";
+               reg = <0x0 0x4000>, <0x1000000 0x1000>;
+               interrupts = <104 0x2 0 0>;
+               cell-index = <0x0>;
+       };
+       qportal1: qman-portal@4000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x4000 0x4000>, <0x1001000 0x1000>;
+               interrupts = <106 0x2 0 0>;
+               cell-index = <0x1>;
+       };
+       qportal2: qman-portal@8000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x8000 0x4000>, <0x1002000 0x1000>;
+               interrupts = <108 0x2 0 0>;
+               cell-index = <0x2>;
+       };
+       qportal3: qman-portal@c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xc000 0x4000>, <0x1003000 0x1000>;
+               interrupts = <110 0x2 0 0>;
+               cell-index = <0x3>;
+       };
+       qportal4: qman-portal@10000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x10000 0x4000>, <0x1004000 0x1000>;
+               interrupts = <112 0x2 0 0>;
+               cell-index = <0x4>;
+       };
+       qportal5: qman-portal@14000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x14000 0x4000>, <0x1005000 0x1000>;
+               interrupts = <114 0x2 0 0>;
+               cell-index = <0x5>;
+       };
+       qportal6: qman-portal@18000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x18000 0x4000>, <0x1006000 0x1000>;
+               interrupts = <116 0x2 0 0>;
+               cell-index = <0x6>;
+       };
+       qportal7: qman-portal@1c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x1c000 0x4000>, <0x1007000 0x1000>;
+               interrupts = <118 0x2 0 0>;
+               cell-index = <0x7>;
+       };
+       qportal8: qman-portal@20000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x20000 0x4000>, <0x1008000 0x1000>;
+               interrupts = <120 0x2 0 0>;
+               cell-index = <0x8>;
+       };
+       qportal9: qman-portal@24000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x24000 0x4000>, <0x1009000 0x1000>;
+               interrupts = <122 0x2 0 0>;
+               cell-index = <0x9>;
+       };
+       qportal10: qman-portal@28000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x28000 0x4000>, <0x100a000 0x1000>;
+               interrupts = <124 0x2 0 0>;
+               cell-index = <0xa>;
+       };
+       qportal11: qman-portal@2c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x2c000 0x4000>, <0x100b000 0x1000>;
+               interrupts = <126 0x2 0 0>;
+               cell-index = <0xb>;
+       };
+       qportal12: qman-portal@30000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x30000 0x4000>, <0x100c000 0x1000>;
+               interrupts = <128 0x2 0 0>;
+               cell-index = <0xc>;
+       };
+       qportal13: qman-portal@34000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x34000 0x4000>, <0x100d000 0x1000>;
+               interrupts = <130 0x2 0 0>;
+               cell-index = <0xd>;
+       };
+       qportal14: qman-portal@38000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x38000 0x4000>, <0x100e000 0x1000>;
+               interrupts = <132 0x2 0 0>;
+               cell-index = <0xe>;
+       };
+       qportal15: qman-portal@3c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x3c000 0x4000>, <0x100f000 0x1000>;
+               interrupts = <134 0x2 0 0>;
+               cell-index = <0xf>;
+       };
+       qportal16: qman-portal@40000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x40000 0x4000>, <0x1010000 0x1000>;
+               interrupts = <136 0x2 0 0>;
+               cell-index = <0x10>;
+       };
+       qportal17: qman-portal@44000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x44000 0x4000>, <0x1011000 0x1000>;
+               interrupts = <138 0x2 0 0>;
+               cell-index = <0x11>;
+       };
+       qportal18: qman-portal@48000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x48000 0x4000>, <0x1012000 0x1000>;
+               interrupts = <140 0x2 0 0>;
+               cell-index = <0x12>;
+       };
+       qportal19: qman-portal@4c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x4c000 0x4000>, <0x1013000 0x1000>;
+               interrupts = <142 0x2 0 0>;
+               cell-index = <0x13>;
+       };
+       qportal20: qman-portal@50000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x50000 0x4000>, <0x1014000 0x1000>;
+               interrupts = <144 0x2 0 0>;
+               cell-index = <0x14>;
+       };
+       qportal21: qman-portal@54000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x54000 0x4000>, <0x1015000 0x1000>;
+               interrupts = <146 0x2 0 0>;
+               cell-index = <0x15>;
+       };
+       qportal22: qman-portal@58000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x58000 0x4000>, <0x1016000 0x1000>;
+               interrupts = <148 0x2 0 0>;
+               cell-index = <0x16>;
+       };
+       qportal23: qman-portal@5c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x5c000 0x4000>, <0x1017000 0x1000>;
+               interrupts = <150 0x2 0 0>;
+               cell-index = <0x17>;
+       };
+       qportal24: qman-portal@60000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x60000 0x4000>, <0x1018000 0x1000>;
+               interrupts = <152 0x2 0 0>;
+               cell-index = <0x18>;
+       };
+       qportal25: qman-portal@64000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x64000 0x4000>, <0x1019000 0x1000>;
+               interrupts = <154 0x2 0 0>;
+               cell-index = <0x19>;
+       };
+       qportal26: qman-portal@68000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x68000 0x4000>, <0x101a000 0x1000>;
+               interrupts = <156 0x2 0 0>;
+               cell-index = <0x1a>;
+       };
+       qportal27: qman-portal@6c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x6c000 0x4000>, <0x101b000 0x1000>;
+               interrupts = <158 0x2 0 0>;
+               cell-index = <0x1b>;
+       };
+       qportal28: qman-portal@70000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x70000 0x4000>, <0x101c000 0x1000>;
+               interrupts = <160 0x2 0 0>;
+               cell-index = <0x1c>;
+       };
+       qportal29: qman-portal@74000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x74000 0x4000>, <0x101d000 0x1000>;
+               interrupts = <162 0x2 0 0>;
+               cell-index = <0x1d>;
+       };
+       qportal30: qman-portal@78000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x78000 0x4000>, <0x101e000 0x1000>;
+               interrupts = <164 0x2 0 0>;
+               cell-index = <0x1e>;
+       };
+       qportal31: qman-portal@7c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x7c000 0x4000>, <0x101f000 0x1000>;
+               interrupts = <166 0x2 0 0>;
+               cell-index = <0x1f>;
+       };
+       qportal32: qman-portal@80000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x80000 0x4000>, <0x1020000 0x1000>;
+               interrupts = <168 0x2 0 0>;
+               cell-index = <0x20>;
+       };
+       qportal33: qman-portal@84000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x84000 0x4000>, <0x1021000 0x1000>;
+               interrupts = <170 0x2 0 0>;
+               cell-index = <0x21>;
+       };
+       qportal34: qman-portal@88000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x88000 0x4000>, <0x1022000 0x1000>;
+               interrupts = <172 0x2 0 0>;
+               cell-index = <0x22>;
+       };
+       qportal35: qman-portal@8c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x8c000 0x4000>, <0x1023000 0x1000>;
+               interrupts = <174 0x2 0 0>;
+               cell-index = <0x23>;
+       };
+       qportal36: qman-portal@90000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x90000 0x4000>, <0x1024000 0x1000>;
+               interrupts = <384 0x2 0 0>;
+               cell-index = <0x24>;
+       };
+       qportal37: qman-portal@94000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x94000 0x4000>, <0x1025000 0x1000>;
+               interrupts = <386 0x2 0 0>;
+               cell-index = <0x25>;
+       };
+       qportal38: qman-portal@98000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x98000 0x4000>, <0x1026000 0x1000>;
+               interrupts = <388 0x2 0 0>;
+               cell-index = <0x26>;
+       };
+       qportal39: qman-portal@9c000 {
+               compatible = "fsl,qman-portal";
+               reg = <0x9c000 0x4000>, <0x1027000 0x1000>;
+               interrupts = <390 0x2 0 0>;
+               cell-index = <0x27>;
+       };
+       qportal40: qman-portal@a0000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xa0000 0x4000>, <0x1028000 0x1000>;
+               interrupts = <392 0x2 0 0>;
+               cell-index = <0x28>;
+       };
+       qportal41: qman-portal@a4000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xa4000 0x4000>, <0x1029000 0x1000>;
+               interrupts = <394 0x2 0 0>;
+               cell-index = <0x29>;
+       };
+       qportal42: qman-portal@a8000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xa8000 0x4000>, <0x102a000 0x1000>;
+               interrupts = <396 0x2 0 0>;
+               cell-index = <0x2a>;
+       };
+       qportal43: qman-portal@ac000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xac000 0x4000>, <0x102b000 0x1000>;
+               interrupts = <398 0x2 0 0>;
+               cell-index = <0x2b>;
+       };
+       qportal44: qman-portal@b0000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xb0000 0x4000>, <0x102c000 0x1000>;
+               interrupts = <400 0x2 0 0>;
+               cell-index = <0x2c>;
+       };
+       qportal45: qman-portal@b4000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xb4000 0x4000>, <0x102d000 0x1000>;
+               interrupts = <402 0x2 0 0>;
+               cell-index = <0x2d>;
+       };
+       qportal46: qman-portal@b8000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xb8000 0x4000>, <0x102e000 0x1000>;
+               interrupts = <404 0x2 0 0>;
+               cell-index = <0x2e>;
+       };
+       qportal47: qman-portal@bc000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xbc000 0x4000>, <0x102f000 0x1000>;
+               interrupts = <406 0x2 0 0>;
+               cell-index = <0x2f>;
+       };
+       qportal48: qman-portal@c0000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xc0000 0x4000>, <0x1030000 0x1000>;
+               interrupts = <408 0x2 0 0>;
+               cell-index = <0x30>;
+       };
+       qportal49: qman-portal@c4000 {
+               compatible = "fsl,qman-portal";
+               reg = <0xc4000 0x4000>, <0x1031000 0x1000>;
+               interrupts = <410 0x2 0 0>;
+               cell-index = <0x31>;
+       };
+};
+
 &soc {
        #address-cells = <1>;
        #size-cells = <1>;
 /include/ "qoriq-sata2-0.dtsi"
 /include/ "qoriq-sata2-1.dtsi"
 /include/ "qoriq-sec5.0-0.dtsi"
+/include/ "qoriq-qman3.dtsi"
 /include/ "qoriq-bman1.dtsi"
 
        L2_1: l2-cache-controller@c20000 {
index 97e6d11d1e6ddda49a4342090e8bad936df0045a..48dab6a50437b46bc61648b0e0aa597fd78a4f7e 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x200000>;
        };
 
+       qportals: qman-portals@ff4200000 {
+               ranges = <0x0 0xf 0xf4200000 0x200000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index eb76caae11d9848220c0ca426864576b2c15fee5..42796c5b05619df744b54b2fdc13b36706b97f3a 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x200000>;
        };
 
+       qportals: qman-portals@ff4200000 {
+               ranges = <0x0 0xf 0xf4200000 0x200000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 9236e3742a2376f6c4ac43095bc0a3446cde84b4..05a00a4d28612ea8dbc139d14cbe8394ee55b92b 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
+       };
+
+       qportals: qman-portals@ff000000 {
+               ranges = <0x0 0xf 0xff000000 0x200000>;
        };
 
        bportals: bman-portals@ff200000 {
index c1e69dc7188ecbebf419332a9615b278fdb1c7d0..d2bb0765bd5a644eb30c2d5721ffccfa398a816c 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x200000>;
        };
 
+       qportals: qman-portals@ff4200000 {
+               ranges = <0x0 0xf 0xf4200000 0x200000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 2192fe94866d5ac42528f3543826ef5a5bc24fd5..eca6c697cfd78e6132c6abcdbd6b4e40613e895c 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x200000>;
        };
 
+       qportals: qman-portals@ff4200000 {
+               ranges = <0x0 0xf 0xf4200000 0x200000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index fad4416546423374507dfdb59cef032e9a2977a0..4f80c9d02c27f12210c920ba57e1a3af14bcc8f8 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x200000>;
        };
 
+       qportals: qman-portals@ff4200000 {
+               ranges = <0x0 0xf 0xf4200000 0x200000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 7382636dc560af9a10071a670235adb26cde4344..d0309a8b974997e37fc4e9afb58610453f40af94 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x200000>;
        };
 
+       qportals: qman-portals@ff4200000 {
+               ranges = <0x0 0xf 0xf4200000 0x200000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 35dabf5b60980614d151f8f461304f4608cb580c..05168236d3ab47d8db82ae6c0c4e4530a2e17f6e 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x200000>;
        };
 
+       qportals: qman-portals@ff4200000 {
+               ranges = <0x0 0xf 0xf4200000 0x200000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
diff --git a/arch/powerpc/boot/dts/t1023rdb.dts b/arch/powerpc/boot/dts/t1023rdb.dts
new file mode 100644 (file)
index 0000000..06b090a
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+ * T1023 RDB Device Tree Source
+ *
+ * Copyright 2014 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *      names of its contributors may be used to endorse or promote products
+ *      derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/include/ "fsl/t102xsi-pre.dtsi"
+
+/ {
+       model = "fsl,T1023RDB";
+       compatible = "fsl,T1023RDB";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       ifc: localbus@ffe124000 {
+               reg = <0xf 0xfe124000 0 0x2000>;
+               ranges = <0 0 0xf 0xe8000000 0x08000000
+                         1 0 0xf 0xff800000 0x00010000>;
+
+               nor@0,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       status = "disabled";
+                       compatible = "cfi-flash";
+                       reg = <0x0 0x0 0x8000000>;
+                       bank-width = <2>;
+                       device-width = <1>;
+               };
+
+               nand@1,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "fsl,ifc-nand";
+                       reg = <0x2 0x0 0x10000>;
+               };
+       };
+
+       memory {
+               device_type = "memory";
+       };
+
+       dcsr: dcsr@f00000000 {
+               ranges = <0x00000000 0xf 0x00000000 0x01072000>;
+       };
+
+       soc: soc@ffe000000 {
+               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
+               reg = <0xf 0xfe000000 0 0x00001000>;
+               spi@110000 {
+                       flash@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "spansion,s25fl512s";
+                               reg = <0>;
+                               spi-max-frequency = <10000000>; /* input clk */
+                       };
+               };
+
+               i2c@118000 {
+                       eeprom@50 {
+                               compatible = "st,m24256";
+                               reg = <0x50>;
+                       };
+
+                       rtc@68 {
+                               compatible = "dallas,ds1339";
+                               reg = <0x68>;
+                               interrupts = <0x5 0x1 0 0>;
+                       };
+               };
+
+               i2c@118100 {
+               };
+       };
+
+       pci0: pcie@ffe240000 {
+               reg = <0xf 0xfe240000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8000000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+
+       pci1: pcie@ffe250000 {
+               reg = <0xf 0xfe250000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x10000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8010000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+
+       pci2: pcie@ffe260000 {
+               reg = <0xf 0xfe260000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x20000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+};
+
+/include/ "fsl/t1023si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/t1024qds.dts b/arch/powerpc/boot/dts/t1024qds.dts
new file mode 100644 (file)
index 0000000..f31fabb
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+ * T1024 QDS Device Tree Source
+ *
+ * Copyright 2014 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *      names of its contributors may be used to endorse or promote products
+ *      derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/include/ "fsl/t102xsi-pre.dtsi"
+
+/ {
+       model = "fsl,T1024QDS";
+       compatible = "fsl,T1024QDS";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       ifc: localbus@ffe124000 {
+               reg = <0xf 0xfe124000 0 0x2000>;
+               ranges = <0 0 0xf 0xe8000000 0x08000000
+                         2 0 0xf 0xff800000 0x00010000
+                         3 0 0xf 0xffdf0000 0x00008000>;
+
+               nor@0,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "cfi-flash";
+                       reg = <0x0 0x0 0x8000000>;
+                       bank-width = <2>;
+                       device-width = <1>;
+               };
+
+               nand@2,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "fsl,ifc-nand";
+                       reg = <0x2 0x0 0x10000>;
+               };
+
+               board-control@3,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "fsl,tetra-fpga", "fsl,fpga-qixis";
+                       reg = <3 0 0x300>;
+                       ranges = <0 3 0 0x300>;
+               };
+       };
+
+       memory {
+               device_type = "memory";
+       };
+
+       dcsr: dcsr@f00000000 {
+               ranges = <0x00000000 0xf 0x00000000 0x01072000>;
+       };
+
+       soc: soc@ffe000000 {
+               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
+               reg = <0xf 0xfe000000 0 0x00001000>;
+               spi@110000 {
+                       flash@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "micron,n25q128a11";  /* 16MB */
+                               reg = <0>;
+                               spi-max-frequency = <10000000>;
+                       };
+
+                       flash@1 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "sst,sst25wf040";  /* 512KB */
+                               reg = <1>;
+                               spi-max-frequency = <10000000>;
+                       };
+
+                       flash@2 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "eon,en25s64";   /* 8MB */
+                               reg = <2>;
+                               spi-max-frequency = <10000000>;
+                       };
+
+                       slic@2 {
+                               compatible = "maxim,ds26522";
+                               reg = <2>;
+                               spi-max-frequency = <2000000>;
+                       };
+
+                       slic@3 {
+                               compatible = "maxim,ds26522";
+                               reg = <3>;
+                               spi-max-frequency = <2000000>;
+                       };
+               };
+
+               i2c@118000 {
+                       pca9547@77 {
+                               compatible = "nxp,pca9547";
+                               reg = <0x77>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               i2c@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x0>;
+
+                                       eeprom@50 {
+                                               compatible = "atmel,24c512";
+                                               reg = <0x50>;
+                                       };
+
+                                       eeprom@51 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x51>;
+                                       };
+
+                                       eeprom@57 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x57>;
+                                       };
+                               };
+
+                               i2c@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x2>;
+
+                                       ina220@40 {
+                                               compatible = "ti,ina220";
+                                               reg = <0x40>;
+                                               shunt-resistor = <1000>;
+                                       };
+
+                                       ina220@41 {
+                                               compatible = "ti,ina220";
+                                               reg = <0x41>;
+                                               shunt-resistor = <1000>;
+                                       };
+                               };
+
+                               i2c@3 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x3>;
+
+                                       adt7461@4c {
+                                               /* Thermal Monitor */
+                                               compatible = "adi,adt7461";
+                                               reg = <0x4c>;
+                                       };
+
+                                       eeprom@55 {
+                                               compatible = "atmel,24c02";
+                                               reg = <0x55>;
+                                       };
+
+                                       eeprom@56 {
+                                               compatible = "atmel,24c512";
+                                               reg = <0x56>;
+                                       };
+
+                                       eeprom@57 {
+                                               compatible = "atmel,24c512";
+                                               reg = <0x57>;
+                                       };
+                               };
+                       };
+                       rtc@68 {
+                               compatible = "dallas,ds3232";
+                               reg = <0x68>;
+                               interrupts = <0x5 0x1 0 0>;
+                       };
+               };
+       };
+
+       pci0: pcie@ffe240000 {
+               reg = <0xf 0xfe240000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8000000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+
+       pci1: pcie@ffe250000 {
+               reg = <0xf 0xfe250000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x10000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8010000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+
+       pci2: pcie@ffe260000 {
+               reg = <0xf 0xfe260000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x20000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+};
+
+/include/ "fsl/t1024si-post.dtsi"
diff --git a/arch/powerpc/boot/dts/t1024rdb.dts b/arch/powerpc/boot/dts/t1024rdb.dts
new file mode 100644 (file)
index 0000000..733e723
--- /dev/null
@@ -0,0 +1,185 @@
+/*
+ * T1024 RDB Device Tree Source
+ *
+ * Copyright 2014 Freescale Semiconductor Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *     * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *     * Neither the name of Freescale Semiconductor nor the
+ *      names of its contributors may be used to endorse or promote products
+ *      derived from this software without specific prior written permission.
+ *
+ *
+ * ALTERNATIVELY, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") as published by the Free Software
+ * Foundation, either version 2 of that License or (at your option) any
+ * later version.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/include/ "fsl/t102xsi-pre.dtsi"
+
+/ {
+       model = "fsl,T1024RDB";
+       compatible = "fsl,T1024RDB";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&mpic>;
+
+       ifc: localbus@ffe124000 {
+               reg = <0xf 0xfe124000 0 0x2000>;
+               ranges = <0 0 0xf 0xe8000000 0x08000000
+                         2 0 0xf 0xff800000 0x00010000
+                         3 0 0xf 0xffdf0000 0x00008000>;
+
+               nor@0,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "cfi-flash";
+                       reg = <0x0 0x0 0x8000000>;
+                       bank-width = <2>;
+                       device-width = <1>;
+               };
+
+               nand@1,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "fsl,ifc-nand";
+                       reg = <0x2 0x0 0x10000>;
+               };
+
+               board-control@2,0 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "fsl,t1024-cpld";
+                       reg = <3 0 0x300>;
+                       ranges = <0 3 0 0x300>;
+                       bank-width = <1>;
+                       device-width = <1>;
+               };
+       };
+
+       memory {
+               device_type = "memory";
+       };
+
+       dcsr: dcsr@f00000000 {
+               ranges = <0x00000000 0xf 0x00000000 0x01072000>;
+       };
+
+       soc: soc@ffe000000 {
+               ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
+               reg = <0xf 0xfe000000 0 0x00001000>;
+               spi@110000 {
+                       flash@0 {
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               compatible = "micron,n25q512ax3";
+                               reg = <0>;
+                               spi-max-frequency = <10000000>; /* input clk */
+                       };
+
+                       slic@1 {
+                               compatible = "maxim,ds26522";
+                               reg = <1>;
+                               spi-max-frequency = <2000000>;
+                       };
+
+                       slic@2 {
+                               compatible = "maxim,ds26522";
+                               reg = <2>;
+                               spi-max-frequency = <2000000>;
+                       };
+               };
+
+               i2c@118000 {
+                       adt7461@4c {
+                               /* Thermal Monitor */
+                               compatible = "adi,adt7461";
+                               reg = <0x4c>;
+                       };
+
+                       eeprom@50 {
+                               compatible = "atmel,24c256";
+                               reg = <0x50>;
+                       };
+
+                       rtc@68 {
+                               compatible = "dallas,ds1339";
+                               reg = <0x68>;
+                               interrupts = <0x1 0x1 0 0>;
+                       };
+               };
+
+               i2c@118100 {
+                       pca9546@77 {
+                               compatible = "nxp,pca9546";
+                               reg = <0x77>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+       };
+
+       pci0: pcie@ffe240000 {
+               reg = <0xf 0xfe240000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x00000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8000000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+
+       pci1: pcie@ffe250000 {
+               reg = <0xf 0xfe250000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x10000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8010000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+
+       pci2: pcie@ffe260000 {
+               reg = <0xf 0xfe260000 0 0x10000>;
+               ranges = <0x02000000 0 0xe0000000 0xc 0x20000000 0 0x10000000
+                         0x01000000 0 0x00000000 0xf 0xf8020000 0 0x00010000>;
+               pcie@0 {
+                       ranges = <0x02000000 0 0xe0000000
+                                 0x02000000 0 0xe0000000
+                                 0 0x10000000
+
+                                 0x01000000 0 0x00000000
+                                 0x01000000 0 0x00000000
+                                 0 0x00010000>;
+               };
+       };
+};
+
+/include/ "fsl/t1024si-post.dtsi"
index f7e9bfbeefc7b1b288229b6a99172db10582dd45..1498d1e4aecf6338244e71b0b4f9c35b05d9883f 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        ifc: localbus@ffe124000 {
                ranges = <0x0 0xf 0xf4000000 0x2000000>;
        };
 
+       qportals: qman-portals@ff6000000 {
+               ranges = <0x0 0xf 0xf6000000 0x2000000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 76e07a3f2ca8b993e72b99ea0233678387d51e05..830ea484295b846e5b07f1b05998f07760f7fa80 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        ifc: localbus@ffe124000 {
                ranges = <0x0 0xf 0xf4000000 0x2000000>;
        };
 
+       qportals: qman-portals@ff6000000 {
+               ranges = <0x0 0xf 0xf6000000 0x2000000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index c42e07f4f648d8db7cb4180f150377d06fa5e995..869f9159b4d14ff9ed775c41f8dd2f17b8df0259 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        ifc: localbus@ffe124000 {
                ranges = <0x0 0xf 0xf4000000 0x2000000>;
        };
 
+       qportals: qman-portals@ff6000000 {
+               ranges = <0x0 0xf 0xf6000000 0x2000000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index e1463b165d0ecf3282c67ccfd5aad8fdd90ce1c6..693d2a8fa01cde3b78e2717af34bca06a737fa72 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        ifc: localbus@ffe124000 {
                ranges = <0x0 0xf 0xf4000000 0x2000000>;
        };
 
+       qportals: qman-portals@ff6000000 {
+               ranges = <0x0 0xf 0xf6000000 0x2000000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 6df77766410b13591fb5fc4c658675f7105630f0..93722da10e16899da336c4f6f5a0095e03c1f81e 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x2000000>;
        };
 
+       qportals: qman-portals@ff6000000 {
+               ranges = <0x0 0xf 0xf6000000 0x2000000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 46049cf37f022f3f0f791cbf99218bd964e0e4ae..993eb4b8a487543663c8530f44397d350648c468 100644 (file)
                        size = <0 0x1000000>;
                        alignment = <0 0x1000000>;
                };
+               qman_fqd: qman-fqd {
+                       size = <0 0x400000>;
+                       alignment = <0 0x400000>;
+               };
+               qman_pfdr: qman-pfdr {
+                       size = <0 0x2000000>;
+                       alignment = <0 0x2000000>;
+               };
        };
 
        dcsr: dcsr@f00000000 {
                ranges = <0x0 0xf 0xf4000000 0x2000000>;
        };
 
+       qportals: qman-portals@ff6000000 {
+               ranges = <0x0 0xf 0xf6000000 0x2000000>;
+       };
+
        soc: soc@ffe000000 {
                ranges = <0x00000000 0xf 0xfe000000 0x1000000>;
                reg = <0xf 0xfe000000 0 0x00001000>;
index 34f3ea1729e0b052773766094ff30cca3c912805..858b539d004bbfd22793bc71106d07ae0579f393 100644 (file)
@@ -108,7 +108,7 @@ CONFIG_SENSORS_LM90=y
 CONFIG_WATCHDOG=y
 CONFIG_USB=y
 CONFIG_USB_MON=y
-CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1760=y
 CONFIG_USB_STORAGE=y
 CONFIG_NEW_LEDS=y
 CONFIG_LEDS_CLASS=y
index 4994648b9265d8184cb05d735cc7e3d089c489b0..b118072670fb15ceac83fce37967f1b07e4cffec 100644 (file)
@@ -368,7 +368,7 @@ enum {
            CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | \
            CPU_FTR_COMMON | CPU_FTR_FPU_UNAVAILABLE)
 #define CPU_FTRS_CLASSIC32     (CPU_FTR_COMMON | CPU_FTR_USE_TB)
-#define CPU_FTRS_8XX   (CPU_FTR_USE_TB)
+#define CPU_FTRS_8XX   (CPU_FTR_USE_TB | CPU_FTR_NOEXECUTE)
 #define CPU_FTRS_40X   (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE)
 #define CPU_FTRS_44X   (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE)
 #define CPU_FTRS_440x6 (CPU_FTR_USE_TB | CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE | \
index 986b9e1e1044f62a9b66454ae71d9a69a3bbd366..f05500a29a60d6f23f4e23de99821995511ccae0 100644 (file)
 #define MI_Ks          0x80000000      /* Should not be set */
 #define MI_Kp          0x40000000      /* Should always be set */
 
+/*
+ * All pages' PP exec bits are set to 000, which means Execute for Supervisor
+ * and no Execute for User.
+ * Then we use the APG to say whether accesses are according to Page rules,
+ * "all Supervisor" rules (Exec for all) and "all User" rules (Exec for noone)
+ * Therefore, we define 4 APG groups. msb is _PAGE_EXEC, lsb is _PAGE_USER
+ * 0 (00) => Not User, no exec => 11 (all accesses performed as user)
+ * 1 (01) => User but no exec => 11 (all accesses performed as user)
+ * 2 (10) => Not User, exec => 01 (rights according to page definition)
+ * 3 (11) => User, exec => 00 (all accesses performed as supervisor)
+ */
+#define MI_APG_INIT    0xf4ffffff
+
 /* The effective page number register.  When read, contains the information
  * about the last instruction TLB miss.  When MI_RPN is written, bits in
  * this register are used to create the TLB entry.
 #define MD_Ks          0x80000000      /* Should not be set */
 #define MD_Kp          0x40000000      /* Should always be set */
 
+/*
+ * All pages' PP data bits are set to either 000 or 011, which means
+ * respectively RW for Supervisor and no access for User, or RO for
+ * Supervisor and no access for user.
+ * Then we use the APG to say whether accesses are according to Page rules or
+ * "all Supervisor" rules (Access to all)
+ * Therefore, we define 2 APG groups. lsb is _PAGE_USER
+ * 0 => No user => 01 (all accesses performed according to page definition)
+ * 1 => User => 00 (all accesses performed as supervisor
+ *                                 according to page definition)
+ */
+#define MD_APG_INIT    0x4fffffff
+
 /* The effective page number register.  When read, contains the information
  * about the last instruction TLB miss.  When MD_RPN is written, bits in
  * this register are used to create the TLB entry.
@@ -145,7 +171,14 @@ typedef struct {
 } mm_context_t;
 #endif /* !__ASSEMBLY__ */
 
+#if (PAGE_SHIFT == 12)
 #define mmu_virtual_psize      MMU_PAGE_4K
+#elif (PAGE_SHIFT == 14)
+#define mmu_virtual_psize      MMU_PAGE_16K
+#else
+#error "Unsupported PAGE_SIZE"
+#endif
+
 #define mmu_linear_psize       MMU_PAGE_8M
 
 #endif /* _ASM_POWERPC_MMU_8XX_H_ */
index 64b52b1cf5425dcaad0a9cc06ea77037675aa88f..9c326565d498fb1ba8d85e00f0bd20a2350c5a43 100644 (file)
@@ -170,24 +170,6 @@ static inline unsigned long pte_update(pte_t *p,
 #ifdef PTE_ATOMIC_UPDATES
        unsigned long old, tmp;
 
-#ifdef CONFIG_PPC_8xx
-       unsigned long tmp2;
-
-       __asm__ __volatile__("\
-1:     lwarx   %0,0,%4\n\
-       andc    %1,%0,%5\n\
-       or      %1,%1,%6\n\
-       /* 0x200 == Extended encoding, bit 22 */ \
-       /* Bit 22 has to be 1 when _PAGE_USER is unset and _PAGE_RO is set */ \
-       rlwimi  %1,%1,32-1,0x200\n /* get _PAGE_RO */ \
-       rlwinm  %3,%1,32-2,0x200\n /* get _PAGE_USER */ \
-       andc    %1,%1,%3\n\
-       stwcx.  %1,0,%4\n\
-       bne-    1b"
-       : "=&r" (old), "=&r" (tmp), "=m" (*p), "=&r" (tmp2)
-       : "r" (p), "r" (clr), "r" (set), "m" (*p)
-       : "cc" );
-#else /* CONFIG_PPC_8xx */
        __asm__ __volatile__("\
 1:     lwarx   %0,0,%3\n\
        andc    %1,%0,%4\n\
@@ -198,7 +180,6 @@ static inline unsigned long pte_update(pte_t *p,
        : "=&r" (old), "=&r" (tmp), "=m" (*p)
        : "r" (p), "r" (clr), "r" (set), "m" (*p)
        : "cc" );
-#endif /* CONFIG_PPC_8xx */
 #else /* PTE_ATOMIC_UPDATES */
        unsigned long old = pte_val(*p);
        *p = __pte((old & ~clr) | set);
index 97bae64afdaabd70ee30768f3dc785410cba1aa0..a0e2ba9609760e4108ce9aca0a4fd255fa15b1d1 100644 (file)
 #define _PAGE_SPECIAL  0x0008  /* SW entry, forced to 0 by the TLB miss */
 #define _PAGE_DIRTY    0x0100  /* C: page changed */
 
-/* These 4 software bits must be masked out when the entry is loaded
- * into the TLB, 1 SW bit left(0x0080).
+/* These 4 software bits must be masked out when the L2 entry is loaded
+ * into the TLB.
  */
-#define _PAGE_GUARDED  0x0010  /* software: guarded access */
-#define _PAGE_ACCESSED 0x0020  /* software: page referenced */
-#define _PAGE_WRITETHRU        0x0040  /* software: caching is write through */
+#define _PAGE_GUARDED  0x0010  /* Copied to L1 G entry in DTLB */
+#define _PAGE_USER     0x0020  /* Copied to L1 APG lsb */
+#define _PAGE_EXEC     0x0040  /* Copied to L1 APG */
+#define _PAGE_WRITETHRU        0x0080  /* software: caching is write through */
+#define _PAGE_ACCESSED 0x0800  /* software: page referenced */
 
-/* Setting any bits in the nibble with the follow two controls will
- * require a TLB exception handler change.  It is assumed unused bits
- * are always zero.
- */
-#define _PAGE_RO       0x0400  /* lsb PP bits */
-#define _PAGE_USER     0x0800  /* msb PP bits */
-/* set when _PAGE_USER is unset and _PAGE_RO is set */
-#define _PAGE_KNLRO    0x0200
+#define _PAGE_RO       0x0600  /* Supervisor RO, User no access */
 
 #define _PMD_PRESENT   0x0001
 #define _PMD_BAD       0x0ff0
 #define _PMD_PAGE_MASK 0x000c
 #define _PMD_PAGE_8M   0x000c
 
-#define _PTE_NONE_MASK _PAGE_KNLRO
-
 /* Until my rework is finished, 8xx still needs atomic PTE updates */
 #define PTE_ATOMIC_UPDATES     1
 
 /* We need to add _PAGE_SHARED to kernel pages */
-#define _PAGE_KERNEL_RO        (_PAGE_SHARED | _PAGE_RO | _PAGE_KNLRO)
-#define _PAGE_KERNEL_ROX       (_PAGE_EXEC | _PAGE_RO | _PAGE_KNLRO)
+#define _PAGE_KERNEL_RO                (_PAGE_SHARED | _PAGE_RO)
+#define _PAGE_KERNEL_ROX       (_PAGE_SHARED | _PAGE_RO | _PAGE_EXEC)
+#define _PAGE_KERNEL_RW                (_PAGE_SHARED | _PAGE_DIRTY | _PAGE_RW | \
+                                _PAGE_HWWRITE)
+#define _PAGE_KERNEL_RWX       (_PAGE_SHARED | _PAGE_DIRTY | _PAGE_RW | \
+                                _PAGE_HWWRITE | _PAGE_EXEC)
 
 #endif /* __KERNEL__ */
 #endif /*  _ASM_POWERPC_PTE_8xx_H */
index 9b53fe139bf6f53c4227d713d1f969f3f0c718b8..78c1eba4c04a432ea233983e81d9da7a87071834 100644 (file)
        mtspr   spr, reg
 #endif
 
+/* Macro to test if an address is a kernel address */
+#if CONFIG_TASK_SIZE <= 0x80000000 && CONFIG_PAGE_OFFSET >= 0x80000000
+#define IS_KERNEL(tmp, addr)           \
+       andis.  tmp, addr, 0x8000       /* Address >= 0x80000000 */
+#define BRANCH_UNLESS_KERNEL(label)    beq     label
+#else
+#define IS_KERNEL(tmp, addr)           \
+       rlwinm  tmp, addr, 16, 16, 31;  \
+       cmpli   cr0, tmp, PAGE_OFFSET >> 16
+#define BRANCH_UNLESS_KERNEL(label)    blt     label
+#endif
+
+
 /*
  * Value for the bits that have fixed value in RPN entries.
  * Also used for tagging DAR for DTLBerror.
@@ -116,13 +129,13 @@ turn_on_mmu:
  */
 #define EXCEPTION_PROLOG       \
        EXCEPTION_PROLOG_0;     \
+       mfcr    r10;            \
        EXCEPTION_PROLOG_1;     \
        EXCEPTION_PROLOG_2
 
 #define EXCEPTION_PROLOG_0     \
        mtspr   SPRN_SPRG_SCRATCH0,r10; \
-       mtspr   SPRN_SPRG_SCRATCH1,r11; \
-       mfcr    r10
+       mtspr   SPRN_SPRG_SCRATCH1,r11
 
 #define EXCEPTION_PROLOG_1     \
        mfspr   r11,SPRN_SRR1;          /* check whether user or kernel */ \
@@ -162,7 +175,6 @@ turn_on_mmu:
  * Exception exit code.
  */
 #define EXCEPTION_EPILOG_0     \
-       mtcr    r10;            \
        mfspr   r10,SPRN_SPRG_SCRATCH0; \
        mfspr   r11,SPRN_SPRG_SCRATCH1
 
@@ -297,19 +309,22 @@ SystemCall:
  * We have to use the MD_xxx registers for the tablewalk because the
  * equivalent MI_xxx registers only perform the attribute functions.
  */
+
+#ifdef CONFIG_8xx_CPU15
+#define INVALIDATE_ADJACENT_PAGES_CPU15(tmp, addr)     \
+       addi    tmp, addr, PAGE_SIZE;   \
+       tlbie   tmp;                    \
+       addi    tmp, addr, -PAGE_SIZE;  \
+       tlbie   tmp
+#else
+#define INVALIDATE_ADJACENT_PAGES_CPU15(tmp, addr)
+#endif
+
 InstructionTLBMiss:
 #ifdef CONFIG_8xx_CPU6
-       mtspr   SPRN_DAR, r3
+       mtspr   SPRN_SPRG_SCRATCH2, r3
 #endif
        EXCEPTION_PROLOG_0
-       mtspr   SPRN_SPRG_SCRATCH2, r10
-       mfspr   r10, SPRN_SRR0  /* Get effective address of fault */
-#ifdef CONFIG_8xx_CPU15
-       addi    r11, r10, PAGE_SIZE
-       tlbie   r11
-       addi    r11, r10, -PAGE_SIZE
-       tlbie   r11
-#endif
 
        /* If we are faulting a kernel address, we have to use the
         * kernel page tables.
@@ -317,24 +332,34 @@ InstructionTLBMiss:
 #ifdef CONFIG_MODULES
        /* Only modules will cause ITLB Misses as we always
         * pin the first 8MB of kernel memory */
-       andis.  r11, r10, 0x8000        /* Address >= 0x80000000 */
-#endif
+       mfspr   r11, SPRN_SRR0  /* Get effective address of fault */
+       INVALIDATE_ADJACENT_PAGES_CPU15(r10, r11)
+       mfcr    r10
+       IS_KERNEL(r11, r11)
        mfspr   r11, SPRN_M_TW  /* Get level 1 table */
-#ifdef CONFIG_MODULES
-       beq     3f
+       BRANCH_UNLESS_KERNEL(3f)
        lis     r11, (swapper_pg_dir-PAGE_OFFSET)@ha
 3:
+       mtcr    r10
+       mfspr   r10, SPRN_SRR0  /* Get effective address of fault */
+#else
+       mfspr   r10, SPRN_SRR0  /* Get effective address of fault */
+       INVALIDATE_ADJACENT_PAGES_CPU15(r11, r10)
+       mfspr   r11, SPRN_M_TW  /* Get level 1 table base address */
 #endif
        /* Insert level 1 index */
        rlwimi  r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29
        lwz     r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11)        /* Get the level 1 entry */
 
-       /* Load the MI_TWC with the attributes for this "segment." */
-       MTSPR_CPU6(SPRN_MI_TWC, r11, r3)        /* Set segment attributes */
-       rlwinm  r11, r11,0,0,19 /* Extract page descriptor page address */
        /* Extract level 2 index */
        rlwinm  r10, r10, 32 - (PAGE_SHIFT - 2), 32 - PAGE_SHIFT, 29
-       lwzx    r10, r10, r11   /* Get the pte */
+       rlwimi  r10, r11, 0, 0, 32 - PAGE_SHIFT - 1     /* Add level 2 base */
+       lwz     r10, 0(r10)     /* Get the pte */
+
+       /* Insert the APG into the TWC from the Linux PTE. */
+       rlwimi  r11, r10, 0, 25, 26
+       /* Load the MI_TWC with the attributes for this "segment." */
+       MTSPR_CPU6(SPRN_MI_TWC, r11, r3)        /* Set segment attributes */
 
 #ifdef CONFIG_SWAP
        rlwinm  r11, r10, 32-5, _PAGE_PRESENT
@@ -343,40 +368,41 @@ InstructionTLBMiss:
 #endif
        li      r11, RPN_PATTERN
        /* The Linux PTE won't go exactly into the MMU TLB.
-        * Software indicator bits 21 and 28 must be clear.
+        * Software indicator bits 20-23 and 28 must be clear.
         * Software indicator bits 24, 25, 26, and 27 must be
         * set.  All other Linux PTE bits control the behavior
         * of the MMU.
         */
-       rlwimi  r10, r11, 0, 0x07f8     /* Set 24-27, clear 21-23,28 */
+       rlwimi  r10, r11, 0, 0x0ff8     /* Set 24-27, clear 20-23,28 */
        MTSPR_CPU6(SPRN_MI_RPN, r10, r3)        /* Update TLB entry */
 
        /* Restore registers */
 #ifdef CONFIG_8xx_CPU6
-       mfspr   r3, SPRN_DAR
-       mtspr   SPRN_DAR, r11   /* Tag DAR */
+       mfspr   r3, SPRN_SPRG_SCRATCH2
 #endif
-       mfspr   r10, SPRN_SPRG_SCRATCH2
        EXCEPTION_EPILOG_0
        rfi
 
        . = 0x1200
 DataStoreTLBMiss:
 #ifdef CONFIG_8xx_CPU6
-       mtspr   SPRN_DAR, r3
+       mtspr   SPRN_SPRG_SCRATCH2, r3
 #endif
        EXCEPTION_PROLOG_0
-       mtspr   SPRN_SPRG_SCRATCH2, r10
-       mfspr   r10, SPRN_MD_EPN
+       mfcr    r10
 
        /* If we are faulting a kernel address, we have to use the
         * kernel page tables.
         */
-       andis.  r11, r10, 0x8000
+       mfspr   r11, SPRN_MD_EPN
+       IS_KERNEL(r11, r11)
        mfspr   r11, SPRN_M_TW  /* Get level 1 table */
-       beq     3f
+       BRANCH_UNLESS_KERNEL(3f)
        lis     r11, (swapper_pg_dir-PAGE_OFFSET)@ha
 3:
+       mtcr    r10
+       mfspr   r10, SPRN_MD_EPN
+
        /* Insert level 1 index */
        rlwimi  r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29
        lwz     r11, (swapper_pg_dir-PAGE_OFFSET)@l(r11)        /* Get the level 1 entry */
@@ -388,13 +414,13 @@ DataStoreTLBMiss:
        rlwimi  r10, r11, 0, 0, 32 - PAGE_SHIFT - 1     /* Add level 2 base */
        lwz     r10, 0(r10)     /* Get the pte */
 
-       /* Insert the Guarded flag into the TWC from the Linux PTE.
-        * It is bit 27 of both the Linux PTE and the TWC (at least
+       /* Insert the Guarded flag and APG into the TWC from the Linux PTE.
+        * It is bit 26-27 of both the Linux PTE and the TWC (at least
         * I got that right :-).  It will be better when we can put
         * this into the Linux pgd/pmd and load it in the operation
         * above.
         */
-       rlwimi  r11, r10, 0, 27, 27
+       rlwimi  r11, r10, 0, 26, 27
        /* Insert the WriteThru flag into the TWC from the Linux PTE.
         * It is bit 25 in the Linux PTE and bit 30 in the TWC
         */
@@ -423,14 +449,14 @@ DataStoreTLBMiss:
         */
        li      r11, RPN_PATTERN
        rlwimi  r10, r11, 0, 24, 28     /* Set 24-27, clear 28 */
+       rlwimi  r10, r11, 0, 20, 20     /* clear 20 */
        MTSPR_CPU6(SPRN_MD_RPN, r10, r3)        /* Update TLB entry */
 
        /* Restore registers */
 #ifdef CONFIG_8xx_CPU6
-       mfspr   r3, SPRN_DAR
+       mfspr   r3, SPRN_SPRG_SCRATCH2
 #endif
        mtspr   SPRN_DAR, r11   /* Tag DAR */
-       mfspr   r10, SPRN_SPRG_SCRATCH2
        EXCEPTION_EPILOG_0
        rfi
 
@@ -456,6 +482,7 @@ InstructionTLBError:
        . = 0x1400
 DataTLBError:
        EXCEPTION_PROLOG_0
+       mfcr    r10
 
        mfspr   r11, SPRN_DAR
        cmpwi   cr0, r11, RPN_PATTERN
@@ -503,9 +530,9 @@ FixupDAR:/* Entry point for dcbx workaround. */
        mtspr   SPRN_SPRG_SCRATCH2, r10
        /* fetch instruction from memory. */
        mfspr   r10, SPRN_SRR0
-       andis.  r11, r10, 0x8000        /* Address >= 0x80000000 */
+       IS_KERNEL(r11, r10)
        mfspr   r11, SPRN_M_TW  /* Get level 1 table */
-       beq     3f
+       BRANCH_UNLESS_KERNEL(3f)
        lis     r11, (swapper_pg_dir-PAGE_OFFSET)@ha
        /* Insert level 1 index */
 3:     rlwimi  r11, r10, 32 - ((PAGE_SHIFT - 2) << 1), (PAGE_SHIFT - 2) << 1, 29
@@ -743,15 +770,20 @@ initial_mmu:
        ori     r8, r8, MI_EVALID       /* Mark it valid */
        mtspr   SPRN_MI_EPN, r8
        mtspr   SPRN_MD_EPN, r8
-       li      r8, MI_PS8MEG           /* Set 8M byte page */
+       li      r8, MI_PS8MEG | (2 << 5)        /* Set 8M byte page, APG 2 */
        ori     r8, r8, MI_SVALID       /* Make it valid */
        mtspr   SPRN_MI_TWC, r8
+       li      r8, MI_PS8MEG           /* Set 8M byte page, APG 0 */
+       ori     r8, r8, MI_SVALID       /* Make it valid */
        mtspr   SPRN_MD_TWC, r8
        li      r8, MI_BOOTINIT         /* Create RPN for address 0 */
        mtspr   SPRN_MI_RPN, r8         /* Store TLB entry */
        mtspr   SPRN_MD_RPN, r8
-       lis     r8, MI_Kp@h             /* Set the protection mode */
+       lis     r8, MI_APG_INIT@h       /* Set protection modes */
+       ori     r8, r8, MI_APG_INIT@l
        mtspr   SPRN_MI_AP, r8
+       lis     r8, MD_APG_INIT@h
+       ori     r8, r8, MD_APG_INIT@l
        mtspr   SPRN_MD_AP, r8
 
        /* Map another 8 MByte at the IMMR to get the processor
index 15448668988dd85a902b830fba8ef020c2557cb0..b9b6ef510be1ec366576a718423b6c319e8e4c06 100644 (file)
@@ -58,15 +58,6 @@ BEGIN_FTR_SECTION
        mtlr    r0
        lis     r3,HID0_NAP@h
 END_FTR_SECTION_IFSET(CPU_FTR_CAN_NAP)
-BEGIN_FTR_SECTION
-       msync
-       li      r7,L2CSR0_L2FL@l
-       mtspr   SPRN_L2CSR0,r7
-2:
-       mfspr   r7,SPRN_L2CSR0
-       andi.   r4,r7,L2CSR0_L2FL@l
-       bne     2b
-END_FTR_SECTION_IFSET(CPU_FTR_L2CSR|CPU_FTR_CAN_NAP)
 1:
        /* Go to NAP or DOZE now */
        mfspr   r4,SPRN_HID0
index 45fda71feb27465fcd4079744d0a19cd9f168ea9..0f11819d8f1dc07441f6e13362a4dca53f55fb87 100644 (file)
@@ -560,7 +560,7 @@ subsys_initcall(add_system_ram_resources);
  */
 int devmem_is_allowed(unsigned long pfn)
 {
-       if (iomem_is_exclusive(pfn << PAGE_SHIFT))
+       if (iomem_is_exclusive(PFN_PHYS(pfn)))
                return 0;
        if (!page_is_ram(pfn))
                return 1;
index 89bf95bd63b1f6bac752956bbea522f31093487d..765b419883f22edebd839f16b7842cd833e2681a 100644 (file)
@@ -398,18 +398,18 @@ ALT_FTR_SECTION_END_IFSET(CPU_FTR_SMT)
        rldicl  r15,r16,64-PUD_SHIFT+3,64-PUD_INDEX_SIZE-3
        clrrdi  r15,r15,3
        cmpdi   cr0,r14,0
-       bge     tlb_miss_fault_e6500    /* Bad pgd entry or hugepage; bail */
+       bge     tlb_miss_huge_e6500     /* Bad pgd entry or hugepage; bail */
        ldx     r14,r14,r15             /* grab pud entry */
 
        rldicl  r15,r16,64-PMD_SHIFT+3,64-PMD_INDEX_SIZE-3
        clrrdi  r15,r15,3
        cmpdi   cr0,r14,0
-       bge     tlb_miss_fault_e6500
+       bge     tlb_miss_huge_e6500
        ldx     r14,r14,r15             /* Grab pmd entry */
 
        mfspr   r10,SPRN_MAS0
        cmpdi   cr0,r14,0
-       bge     tlb_miss_fault_e6500
+       bge     tlb_miss_huge_e6500
 
        /* Now we build the MAS for a 2M indirect page:
         *
@@ -428,6 +428,7 @@ ALT_FTR_SECTION_END_IFSET(CPU_FTR_SMT)
        clrrdi  r15,r16,21              /* make EA 2M-aligned */
        mtspr   SPRN_MAS2,r15
 
+tlb_miss_huge_done_e6500:
        lbz     r15,TCD_ESEL_NEXT(r11)
        lbz     r16,TCD_ESEL_MAX(r11)
        lbz     r14,TCD_ESEL_FIRST(r11)
@@ -456,6 +457,50 @@ END_FTR_SECTION_IFSET(CPU_FTR_SMT)
        tlb_epilog_bolted
        rfi
 
+tlb_miss_huge_e6500:
+       beq     tlb_miss_fault_e6500
+       li      r10,1
+       andi.   r15,r14,HUGEPD_SHIFT_MASK@l /* r15 = psize */
+       rldimi  r14,r10,63,0            /* Set PD_HUGE */
+       xor     r14,r14,r15             /* Clear size bits */
+       ldx     r14,0,r14
+
+       /*
+        * Now we build the MAS for a huge page.
+        *
+        * MAS 0   :    ESEL needs to be filled by software round-robin
+        *               - can be handled by indirect code
+        * MAS 1   :    Need to clear IND and set TSIZE
+        * MAS 2,3+7:   Needs to be redone similar to non-tablewalk handler
+        */
+
+       subi    r15,r15,10              /* Convert psize to tsize */
+       mfspr   r10,SPRN_MAS1
+       rlwinm  r10,r10,0,~MAS1_IND
+       rlwimi  r10,r15,MAS1_TSIZE_SHIFT,MAS1_TSIZE_MASK
+       mtspr   SPRN_MAS1,r10
+
+       li      r10,-0x400
+       sld     r15,r10,r15             /* Generate mask based on size */
+       and     r10,r16,r15
+       rldicr  r15,r14,64-(PTE_RPN_SHIFT-PAGE_SHIFT),63-PAGE_SHIFT
+       rlwimi  r10,r14,32-19,27,31     /* Insert WIMGE */
+       clrldi  r15,r15,PAGE_SHIFT      /* Clear crap at the top */
+       rlwimi  r15,r14,32-8,22,25      /* Move in U bits */
+       mtspr   SPRN_MAS2,r10
+       andi.   r10,r14,_PAGE_DIRTY
+       rlwimi  r15,r14,32-2,26,31      /* Move in BAP bits */
+
+       /* Mask out SW and UW if !DIRTY (XXX optimize this !) */
+       bne     1f
+       li      r10,MAS3_SW|MAS3_UW
+       andc    r15,r15,r10
+1:
+       mtspr   SPRN_MAS7_MAS3,r15
+
+       mfspr   r10,SPRN_MAS0
+       b       tlb_miss_huge_done_e6500
+
 tlb_miss_kernel_e6500:
        ld      r14,PACA_KERNELPGD(r13)
        cmpldi  cr1,r15,8               /* Check for vmalloc region */
index 2fb4b24368a6e6ae7851ade3bcae379d2245229b..97915feffd42d35be230f3d4b58883b938b4eaae 100644 (file)
@@ -282,7 +282,7 @@ config CORENET_GENERIC
          For 64bit kernel, the following boards are supported:
            T208x QDS/RDB, T4240 QDS/RDB and B4 QDS
          The following boards are supported for both 32bit and 64bit kernel:
-           P5020 DS, P5040 DS and T104xQDS/RDB
+           P5020 DS, P5040 DS, T102x QDS/RDB, T104x QDS/RDB
 
 endif # FSL_SOC_BOOKE
 
index 9824d2cf79bd6d618dba10e1bb4e38f4b946b408..bd839dc287fe61f3ef507a1d2d0070d2ad7b31c5 100644 (file)
@@ -150,6 +150,9 @@ static const char * const boards[] __initconst = {
        "fsl,B4860QDS",
        "fsl,B4420QDS",
        "fsl,B4220QDS",
+       "fsl,T1023RDB",
+       "fsl,T1024QDS",
+       "fsl,T1024RDB",
        "fsl,T1040QDS",
        "fsl,T1042QDS",
        "fsl,T1040RDB",
index 8631ac5f0e579c35ffa4ac2153e237be908a8817..b8b8216979104c22dc29fc06dd433aeedb409e33 100644 (file)
@@ -345,6 +345,7 @@ void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary)
        local_irq_disable();
 
        if (secondary) {
+               __flush_disable_L1();
                atomic_inc(&kexec_down_cpus);
                /* loop forever */
                while (1);
@@ -357,61 +358,11 @@ static void mpc85xx_smp_kexec_down(void *arg)
                ppc_md.kexec_cpu_down(0,1);
 }
 
-static void map_and_flush(unsigned long paddr)
-{
-       struct page *page = pfn_to_page(paddr >> PAGE_SHIFT);
-       unsigned long kaddr  = (unsigned long)kmap_atomic(page);
-
-       flush_dcache_range(kaddr, kaddr + PAGE_SIZE);
-       kunmap_atomic((void *)kaddr);
-}
-
-/**
- * Before we reset the other cores, we need to flush relevant cache
- * out to memory so we don't get anything corrupted, some of these flushes
- * are performed out of an overabundance of caution as interrupts are not
- * disabled yet and we can switch cores
- */
-static void mpc85xx_smp_flush_dcache_kexec(struct kimage *image)
-{
-       kimage_entry_t *ptr, entry;
-       unsigned long paddr;
-       int i;
-
-       if (image->type == KEXEC_TYPE_DEFAULT) {
-               /* normal kexec images are stored in temporary pages */
-               for (ptr = &image->head; (entry = *ptr) && !(entry & IND_DONE);
-                    ptr = (entry & IND_INDIRECTION) ?
-                               phys_to_virt(entry & PAGE_MASK) : ptr + 1) {
-                       if (!(entry & IND_DESTINATION)) {
-                               map_and_flush(entry);
-                       }
-               }
-               /* flush out last IND_DONE page */
-               map_and_flush(entry);
-       } else {
-               /* crash type kexec images are copied to the crash region */
-               for (i = 0; i < image->nr_segments; i++) {
-                       struct kexec_segment *seg = &image->segment[i];
-                       for (paddr = seg->mem; paddr < seg->mem + seg->memsz;
-                            paddr += PAGE_SIZE) {
-                               map_and_flush(paddr);
-                       }
-               }
-       }
-
-       /* also flush the kimage struct to be passed in as well */
-       flush_dcache_range((unsigned long)image,
-                          (unsigned long)image + sizeof(*image));
-}
-
 static void mpc85xx_smp_machine_kexec(struct kimage *image)
 {
        int timeout = INT_MAX;
        int i, num_cpus = num_present_cpus();
 
-       mpc85xx_smp_flush_dcache_kexec(image);
-
        if (image->type == KEXEC_TYPE_DEFAULT)
                smp_call_function(mpc85xx_smp_kexec_down, NULL, 0);
 
index 1eadb6d0dc6406acbe24a5b946fb4a62b104b83e..30e002f4648c81a1b7f1d4a6d5a0d7c08d4ea2fb 100644 (file)
@@ -79,7 +79,7 @@ static void __init twr_p1025_setup_arch(void)
        mpc85xx_qe_init();
        mpc85xx_qe_par_io_init();
 
-#if defined(CONFIG_UCC_GETH) || defined(CONFIG_SERIAL_QE)
+#if IS_ENABLED(CONFIG_UCC_GETH) || IS_ENABLED(CONFIG_SERIAL_QE)
        if (machine_is(twr_p1025)) {
                struct ccsr_guts __iomem *guts;
 
@@ -101,7 +101,7 @@ static void __init twr_p1025_setup_arch(void)
                                        MPC85xx_PMUXCR_QE(12));
                        iounmap(guts);
 
-#if defined(CONFIG_SERIAL_QE)
+#if IS_ENABLED(CONFIG_SERIAL_QE)
                        /* On P1025TWR board, the UCC7 acted as UART port.
                         * However, The UCC7's CTS pin is low level in default,
                         * it will impact the transmission in full duplex
This page took 0.073952 seconds and 5 git commands to generate.