From 10b0a19d62d932a6eb01ceb8749190aaf0ff063e Mon Sep 17 00:00:00 2001 From: Shaohui Xie Date: Mon, 11 Jul 2016 10:47:20 +0800 Subject: [PATCH 12/70] dts: ls1043a: add fman/bman/qman/ethernet nodes commit ecb0901ba0a6558a05054d21ad9e70999a6f7ca1 [context adjustment] Signed-off-by: Shaohui Xie Signed-off-by: Zhao Qiang --- arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 461 ++++++++++++++++++++ .../boot/dts/freescale/qoriq-bman1-portals.dtsi | 104 +++++ .../boot/dts/freescale/qoriq-qman1-portals.dtsi | 136 ++++++ 3 files changed, 701 insertions(+) create mode 100644 arch/arm64/boot/dts/freescale/qoriq-bman1-portals.dtsi create mode 100644 arch/arm64/boot/dts/freescale/qoriq-qman1-portals.dtsi --- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi @@ -50,6 +50,16 @@ #address-cells = <2>; #size-cells = <2>; + aliases { + ethernet0 = &fm1mac1; + ethernet1 = &fm1mac2; + ethernet2 = &fm1mac3; + ethernet3 = &fm1mac4; + ethernet4 = &fm1mac5; + ethernet5 = &fm1mac6; + ethernet6 = &fm1mac9; + }; + cpus { #address-cells = <1>; #size-cells = <0>; @@ -174,6 +184,323 @@ bus-width = <4>; }; + qman: qman@1880000 { + compatible = "fsl,qman"; + reg = <0x00 0x1880000 0x0 0x10000>; + interrupts = <0 45 0x4>; + }; + + bman: bman@1890000 { + compatible = "fsl,bman"; + reg = <0x00 0x1890000 0x0 0x10000>; + interrupts = <0 45 0x4>; + }; + + fman0: fman@1a00000 { + #address-cells = <1>; + #size-cells = <1>; + cell-index = <0>; + compatible = "fsl,fman", "simple-bus"; + ranges = <0x0 0x00 0x1a00000 0x100000>; + reg = <0x00 0x1a00000 0x0 0x100000>; + clock-frequency = <0>; + interrupts = <0 44 0x4>, + <0 45 0x4>; + + cc { + compatible = "fsl,fman-cc"; + }; + + muram@0 { + compatible = "fsl,fman-muram"; + reg = <0x0 0x60000>; + }; + + bmi@80000 { + compatible = "fsl,fman-bmi"; + reg = <0x80000 0x400>; + }; + + qmi@80400 { + compatible = "fsl,fman-qmi"; + reg = <0x80400 0x400>; + }; + + fman0_oh1: port@82000 { + cell-index = <0>; + compatible = "fsl,fman-port-oh"; + reg = <0x82000 0x1000>; + }; + + fman0_oh2: port@83000 { + cell-index = <1>; + compatible = "fsl,fman-port-oh"; + reg = <0x83000 0x1000>; + }; + + fman0_oh3: port@84000 { + cell-index = <2>; + compatible = "fsl,fman-port-oh"; + reg = <0x84000 0x1000>; + }; + + fman0_oh4: port@85000 { + cell-index = <3>; + compatible = "fsl,fman-port-oh"; + reg = <0x85000 0x1000>; + }; + + fman0_oh5: port@86000 { + cell-index = <4>; + compatible = "fsl,fman-port-oh"; + reg = <0x86000 0x1000>; + }; + + fman0_oh6: port@87000 { + cell-index = <5>; + compatible = "fsl,fman-port-oh"; + reg = <0x87000 0x1000>; + }; + + policer@c0000 { + compatible = "fsl,fman-policer"; + reg = <0xc0000 0x1000>; + }; + + keygen@c1000 { + compatible = "fsl,fman-keygen"; + reg = <0xc1000 0x1000>; + }; + + dma@c2000 { + compatible = "fsl,fman-dma"; + reg = <0xc2000 0x1000>; + }; + + fpm@c3000 { + compatible = "fsl,fman-fpm"; + reg = <0xc3000 0x1000>; + }; + + parser@c7000 { + compatible = "fsl,fman-parser"; + reg = <0xc7000 0x1000>; + }; + + vsps@dc000 { + compatible = "fsl,fman-vsps"; + reg = <0xdc000 0x1000>; + }; + + mdio0: mdio@fc000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xfc000 0x1000>; + }; + + xmdio0: mdio@fd000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xfd000 0x1000>; + }; + + fman0_rx0: port@88000 { + cell-index = <0>; + compatible = "fsl,fman-port-1g-rx"; + reg = <0x88000 0x1000>; + }; + + fman0_tx0: port@a8000 { + cell-index = <0>; + compatible = "fsl,fman-port-1g-tx"; + reg = <0xa8000 0x1000>; + }; + + fm1mac1: ethernet@e0000 { + cell-index = <0>; + compatible = "fsl,fman-memac"; + reg = <0xe0000 0x1000>; + fsl,port-handles = <&fman0_rx0 &fman0_tx0>; + ptimer-handle = <&ptp_timer0>; + }; + + mdio@e1000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xe1000 0x1000>; + }; + + fman0_rx1: port@89000 { + cell-index = <1>; + compatible = "fsl,fman-port-1g-rx"; + reg = <0x89000 0x1000>; + }; + + fman0_tx1: port@a9000 { + cell-index = <1>; + compatible = "fsl,fman-port-1g-tx"; + reg = <0xa9000 0x1000>; + }; + + fm1mac2: ethernet@e2000 { + cell-index = <1>; + compatible = "fsl,fman-memac"; + reg = <0xe2000 0x1000>; + fsl,port-handles = <&fman0_rx1 &fman0_tx1>; + ptimer-handle = <&ptp_timer0>; + }; + + mdio@e3000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xe3000 0x1000>; + }; + + fman0_rx2: port@8a000 { + cell-index = <2>; + compatible = "fsl,fman-port-1g-rx"; + reg = <0x8a000 0x1000>; + }; + + fman0_tx2: port@aa000 { + cell-index = <2>; + compatible = "fsl,fman-port-1g-tx"; + reg = <0xaa000 0x1000>; + }; + + fm1mac3: ethernet@e4000 { + cell-index = <2>; + compatible = "fsl,fman-memac"; + reg = <0xe4000 0x1000>; + fsl,port-handles = <&fman0_rx2 &fman0_tx2>; + ptimer-handle = <&ptp_timer0>; + }; + + mdio@e5000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xe5000 0x1000>; + }; + + fman0_rx3: port@8b000 { + cell-index = <3>; + compatible = "fsl,fman-port-1g-rx"; + reg = <0x8b000 0x1000>; + }; + + fman0_tx3: port@ab000 { + cell-index = <3>; + compatible = "fsl,fman-port-1g-tx"; + reg = <0xab000 0x1000>; + }; + + fm1mac4: ethernet@e6000 { + cell-index = <3>; + compatible = "fsl,fman-memac"; + reg = <0xe6000 0x1000>; + fsl,port-handles = <&fman0_rx3 &fman0_tx3>; + ptimer-handle = <&ptp_timer0>; + }; + + mdio@e7000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xe7000 0x1000>; + }; + + fman0_rx4: port@8c000 { + cell-index = <4>; + compatible = "fsl,fman-port-1g-rx"; + reg = <0x8c000 0x1000>; + }; + + fman0_tx4: port@ac000 { + cell-index = <4>; + compatible = "fsl,fman-port-1g-tx"; + reg = <0xac000 0x1000>; + }; + + fm1mac5: ethernet@e8000 { + cell-index = <4>; + compatible = "fsl,fman-memac"; + reg = <0xe8000 0x1000>; + fsl,port-handles = <&fman0_rx4 &fman0_tx4>; + ptimer-handle = <&ptp_timer0>; + }; + + mdio@e9000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xe9000 0x1000>; + }; + + fman0_rx5: port@8d000 { + cell-index = <5>; + compatible = "fsl,fman-port-1g-rx"; + reg = <0x8d000 0x1000>; + }; + + fman0_tx5: port@ad000 { + cell-index = <5>; + compatible = "fsl,fman-port-1g-tx"; + reg = <0xad000 0x1000>; + }; + + fm1mac6: ethernet@ea000 { + cell-index = <5>; + compatible = "fsl,fman-memac"; + reg = <0xea000 0x1000>; + fsl,port-handles = <&fman0_rx5 &fman0_tx5>; + ptimer-handle = <&ptp_timer0>; + }; + + mdio@eb000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xeb000 0x1000>; + }; + + fman0_10g_rx0: port@90000 { + cell-index = <0>; + compatible = "fsl,fman-port-10g-rx"; + reg = <0x90000 0x1000>; + }; + + fman0_10g_tx0: port@b0000 { + cell-index = <0>; + compatible = "fsl,fman-port-10g-tx"; + reg = <0xb0000 0x1000>; + fsl,qman-channel-id = <0x800>; + }; + + fm1mac9: ethernet@f0000 { + cell-index = <0>; + compatible = "fsl,fman-memac"; + reg = <0xf0000 0x1000>; + fsl,port-handles = <&fman0_10g_rx0 &fman0_10g_tx0>; + }; + + mdio@f1000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,fman-memac-mdio"; + reg = <0xf1000 0x1000>; + }; + + ptp_timer0: rtc@fe000 { + compatible = "fsl,fman-rtc"; + reg = <0xfe000 0x1000>; + }; + }; + dspi0: dspi@2100000 { compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi"; #address-cells = <1>; @@ -522,4 +849,138 @@ }; }; + fsl,dpaa { + compatible = "fsl,ls1043a-dpaa", "simple-bus", "fsl,dpaa"; + ethernet@0 { + compatible = "fsl,dpa-ethernet"; + fsl,fman-mac = <&fm1mac1>; + }; + ethernet@1 { + compatible = "fsl,dpa-ethernet"; + fsl,fman-mac = <&fm1mac2>; + }; + ethernet@2 { + compatible = "fsl,dpa-ethernet"; + fsl,fman-mac = <&fm1mac3>; + }; + ethernet@3 { + compatible = "fsl,dpa-ethernet"; + fsl,fman-mac = <&fm1mac4>; + }; + ethernet@4 { + compatible = "fsl,dpa-ethernet"; + fsl,fman-mac = <&fm1mac5>; + }; + ethernet@5 { + compatible = "fsl,dpa-ethernet"; + fsl,fman-mac = <&fm1mac6>; + }; + ethernet@8 { + compatible = "fsl,dpa-ethernet"; + fsl,fman-mac = <&fm1mac9>; + }; + }; + + qportals: qman-portals@500000000 { + ranges = <0x0 0x5 0x00000000 0x8000000>; + }; + bportals: bman-portals@508000000 { + ranges = <0x0 0x5 0x08000000 0x8000000>; + }; + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + bman_fbpr: bman-fbpr { + 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>; + }; + }; +}; + +&fman0 { + /* offline - 1 */ + port@82000 { + fsl,qman-channel-id = <0x809>; + }; + + /* tx - 10g - 2 */ + port@a8000 { + fsl,qman-channel-id = <0x802>; + }; + /* tx - 10g - 3 */ + port@a9000 { + fsl,qman-channel-id = <0x803>; + }; + /* tx - 1g - 2 */ + port@aa000 { + fsl,qman-channel-id = <0x804>; + }; + /* tx - 1g - 3 */ + port@ab000 { + fsl,qman-channel-id = <0x805>; + }; + /* tx - 1g - 4 */ + port@ac000 { + fsl,qman-channel-id = <0x806>; + }; + /* tx - 1g - 5 */ + port@ad000 { + fsl,qman-channel-id = <0x807>; + }; + /* tx - 10g - 0 */ + port@b0000 { + fsl,qman-channel-id = <0x800>; + }; + /* tx - 10g - 1 */ + port@b1000 { + fsl,qman-channel-id = <0x801>; + }; + /* offline - 2 */ + port@83000 { + fsl,qman-channel-id = <0x80a>; + }; + /* offline - 3 */ + port@84000 { + fsl,qman-channel-id = <0x80b>; + }; + /* offline - 4 */ + port@85000 { + fsl,qman-channel-id = <0x80c>; + }; + /* offline - 5 */ + port@86000 { + fsl,qman-channel-id = <0x80d>; + }; + /* offline - 6 */ + port@87000 { + fsl,qman-channel-id = <0x80e>; + }; +}; + +&bman_fbpr { + compatible = "fsl,bman-fbpr"; + 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>; +}; + +/include/ "qoriq-qman1-portals.dtsi" +/include/ "qoriq-bman1-portals.dtsi" --- /dev/null +++ b/arch/arm64/boot/dts/freescale/qoriq-bman1-portals.dtsi @@ -0,0 +1,104 @@ +/* + * QorIQ BMan Portal device tree stub for 10 portals + * + * Copyright 2011-2016 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. + */ + +&bportals { + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + bportal0: bman-portal@0 { + cell-index = <0>; + compatible = "fsl,bman-portal"; + reg = <0x0 0x4000 0x4000000 0x4000>; + interrupts = <0 173 0x4>; + }; + bportal1: bman-portal@10000 { + cell-index = <1>; + compatible = "fsl,bman-portal"; + reg = <0x10000 0x4000 0x4010000 0x4000>; + interrupts = <0 175 0x4>; + }; + bportal2: bman-portal@20000 { + cell-index = <2>; + compatible = "fsl,bman-portal"; + reg = <0x20000 0x4000 0x4020000 0x4000>; + interrupts = <0 177 0x4>; + }; + bportal3: bman-portal@30000 { + cell-index = <3>; + compatible = "fsl,bman-portal"; + reg = <0x30000 0x4000 0x4030000 0x4000>; + interrupts = <0 179 0x4>; + }; + bportal4: bman-portal@40000 { + cell-index = <4>; + compatible = "fsl,bman-portal"; + reg = <0x40000 0x4000 0x4040000 0x4000>; + interrupts = <0 181 0x4>; + }; + bportal5: bman-portal@50000 { + cell-index = <5>; + compatible = "fsl,bman-portal"; + reg = <0x50000 0x4000 0x4050000 0x4000>; + interrupts = <0 183 0x4>; + }; + bportal6: bman-portal@60000 { + cell-index = <6>; + compatible = "fsl,bman-portal"; + reg = <0x60000 0x4000 0x4060000 0x4000>; + interrupts = <0 185 0x4>; + }; + bportal7: bman-portal@70000 { + cell-index = <7>; + compatible = "fsl,bman-portal"; + reg = <0x70000 0x4000 0x4070000 0x4000>; + interrupts = <0 187 0x4>; + }; + bportal8: bman-portal@80000 { + cell-index = <8>; + compatible = "fsl,bman-portal"; + reg = <0x80000 0x4000 0x4080000 0x4000>; + interrupts = <0 189 0x4>; + }; +/* bportal9: bman-portal@90000 { + cell-index = <9>; + compatible = "fsl,bman-portal"; + reg = <0x90000 0x4000 0x4090000 0x4000>; + interrupts = <0 191 0x4>; + }; */ + bman-bpids@0 { + compatible = "fsl,bpid-range"; + fsl,bpid-range = <32 32>; + }; + +}; --- /dev/null +++ b/arch/arm64/boot/dts/freescale/qoriq-qman1-portals.dtsi @@ -0,0 +1,136 @@ +/* + * QorIQ QMan Portal device tree stub for 10 portals & 15 pool channels + * + * Copyright 2011-2016 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. + */ +&qportals { + + #address-cells = <1>; + #size-cells = <1>; + compatible = "simple-bus"; + qportal0: qman-portal@0 { + cell-index = <0>; + compatible = "fsl,qman-portal"; + reg = <0x0 0x4000 0x4000000 0x4000>; + interrupts = <0 172 0x4>; + fsl,qman-channel-id = <0x0>; + }; + + qportal1: qman-portal@10000 { + cell-index = <1>; + compatible = "fsl,qman-portal"; + reg = <0x10000 0x4000 0x4010000 0x4000>; + interrupts = <0 174 0x4>; + fsl,qman-channel-id = <1>; + }; + + qportal2: qman-portal@20000 { + cell-index = <2>; + compatible = "fsl,qman-portal"; + reg = <0x20000 0x4000 0x4020000 0x4000>; + interrupts = <0 176 0x4>; + fsl,qman-channel-id = <2>; + }; + + qportal3: qman-portal@30000 { + cell-index = <3>; + compatible = "fsl,qman-portal"; + reg = <0x30000 0x4000 0x4030000 0x4000>; + interrupts = <0 178 0x4>; + fsl,qman-channel-id = <3>; + }; + + qportal4: qman-portal@40000 { + cell-index = <4>; + compatible = "fsl,qman-portal"; + reg = <0x40000 0x4000 0x4040000 0x4000>; + interrupts = <0 180 0x4>; + fsl,qman-channel-id = <4>; + }; + + qportal5: qman-portal@50000 { + cell-index = <5>; + compatible = "fsl,qman-portal"; + reg = <0x50000 0x4000 0x4050000 0x4000>; + interrupts = <0 182 0x4>; + fsl,qman-channel-id = <5>; + }; + + qportal6: qman-portal@60000 { + cell-index = <6>; + compatible = "fsl,qman-portal"; + reg = <0x60000 0x4000 0x4060000 0x4000>; + interrupts = <0 184 0x4>; + fsl,qman-channel-id = <6>; + }; + + qportal7: qman-portal@70000 { + cell-index = <7>; + compatible = "fsl,qman-portal"; + reg = <0x70000 0x4000 0x4070000 0x4000>; + interrupts = <0 186 0x4>; + fsl,qman-channel-id = <7>; + }; + + qportal8: qman-portal@80000 { + cell-index = <8>; + compatible = "fsl,qman-portal"; + reg = <0x80000 0x4000 0x4080000 0x4000>; + interrupts = <0 188 0x4>; + fsl,qman-channel-id = <8>; + }; + +/* qportal9: qman-portal@90000 { + cell-index = <9>; + compatible = "fsl,qman-portal"; + reg = <0x90000 0x4000 0x4090000 0x4000>; + interrupts = <0 190 0x4>; + fsl,qman-channel-id = <9>; + }; */ + + qman-fqids@0 { + compatible = "fsl,fqid-range"; + fsl,fqid-range = <256 256>; + }; + qman-fqids@1 { + compatible = "fsl,fqid-range"; + fsl,fqid-range = <32768 32768>; + }; + qman-pools@0 { + compatible = "fsl,pool-channel-range"; + fsl,pool-channel-range = <0x401 0xf>; + }; + qman-cgrids@0 { + compatible = "fsl,cgrid-range"; + fsl,cgrid-range = <0 256>; + }; + +}; \ No newline at end of file