summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuimin She <huimin.she@enea.com>2015-12-08 15:49:43 +0100
committerNora Björklund <nora.bjorklund@enea.com>2015-12-09 15:29:10 +0100
commitc870e67a87ac4d8fe7ee2e4a458503058b397795 (patch)
tree78ba063645b15ed9413c65faaa05f87aee517c97
parentb5dbf2cbd4a0d6395ebc82999bda1981c8cd3f0a (diff)
downloadmeta-enea-bsp-ppc-c870e67a87ac4d8fe7ee2e4a458503058b397795.tar.gz
kernel: add device tree for t4240rdb
A device tree (dts) is added for USDPAA support on t4240rdb. In the default USDPAA dts, all the ethernet interfaces are dedicated to USDPAA, so that they are not visible to Linux kernel. This brings difficulty for development, such as nfs booting and ssh login. In the new dts, one ethernet interface is reserved for Linux kernel network stack, and the others are for USDPAA. Signed-off-by: Huimin She <huimin.she@enea.com> Signed-off-by: Nora Björklund <nora.bjorklund@enea.com>
-rw-r--r--recipes-kernel/linux/files/dts/t4240rdb-usdpaa-enea.dts207
-rw-r--r--recipes-kernel/linux/linux-qoriq-common.inc8
2 files changed, 215 insertions, 0 deletions
diff --git a/recipes-kernel/linux/files/dts/t4240rdb-usdpaa-enea.dts b/recipes-kernel/linux/files/dts/t4240rdb-usdpaa-enea.dts
new file mode 100644
index 0000000..d267a50
--- /dev/null
+++ b/recipes-kernel/linux/files/dts/t4240rdb-usdpaa-enea.dts
@@ -0,0 +1,207 @@
1/*
2 * T4240RDB USDPAA Device Tree Source
3 *
4 * Copyright 2014 Freescale Semiconductor Inc.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met:
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * * Neither the name of Freescale Semiconductor nor the
14 * names of its contributors may be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 *
18 * ALTERNATIVELY, this software may be distributed under the terms of the
19 * GNU General Public License ("GPL") as published by the Free Software
20 * Foundation, either version 2 of that License or (at your option) any
21 * later version.
22 *
23 * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
24 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26 * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
27 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
30 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 */
34
35/include/ "t4240rdb.dts"
36
37/ {
38 /* NB: "bpool-ethernet-seeds" is not set to avoid buffer seeding,
39 * because apps seed these pools with buffers allocated at
40 * run-time.
41 * HOWEVER, the kernel driver requires the buffer-size so
42 * "fsl,bpool-ethernet-cfg" is set. It also mis-interprets
43 * things if the base-address is zero (hence the 0xdeadbeef
44 * values).
45 */
46 bp7: buffer-pool@7 {
47 compatible = "fsl,t4240-bpool", "fsl,bpool";
48 fsl,bpid = <7>;
49 fsl,bpool-ethernet-cfg = <0 0 0 192 0 0xdeadbeef>;
50 fsl,bpool-thresholds = <0x400 0xc00 0x0 0x0>;
51 };
52 bp8: buffer-pool@8 {
53 compatible = "fsl,t4240-bpool", "fsl,bpool";
54 fsl,bpid = <8>;
55 fsl,bpool-ethernet-cfg = <0 0 0 576 0 0xabbaf00d>;
56 fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
57 };
58 bp9: buffer-pool@9 {
59 compatible = "fsl,t4240-bpool", "fsl,bpool";
60 fsl,bpid = <9>;
61 fsl,bpool-ethernet-cfg = <0 0 0 1728 0 0xfeedabba>;
62 fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
63 };
64
65 bp10: buffer-pool@10 {
66 compatible = "fsl,t4240-bpool", "fsl,bpool";
67 fsl,bpid = <10>;
68 fsl,bpool-thresholds = <0x10 0x30 0x0 0x0>;
69 };
70 bp11: buffer-pool@11 {
71 compatible = "fsl,t4240-bpool", "fsl,bpool";
72 fsl,bpid = <11>;
73 fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
74 };
75 bp12: buffer-pool@12 {
76 compatible = "fsl,t4240-bpool", "fsl,bpool";
77 fsl,bpid = <12>;
78 fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
79 };
80 bp13: buffer-pool@13 {
81 compatible = "fsl,t4240-bpool", "fsl,bpool", "fsl,bpool-ethernet-seeds";
82 fsl,bpid = <13>;
83 fsl,bpool-ethernet-cfg = <0 2048 0 1728 0 0>;
84 fsl,bpool-thresholds = <0x100 0x300 0x0 0x0>;
85 };
86
87 chosen {
88 dpaa-extended-args {
89 fman0-extd-args {
90 cell-index = <0x0>;
91 compatible = "fsl,fman-extended-args";
92 dma-aid-mode = "port";
93 fman0_oh3-extd-args {
94 cell-index = <0x2>;
95 compatible = "fsl,fman-port-op-extended-args";
96 vsp-window = <0x8 0x0>;
97 };
98 fman0_oh4-extd-args {
99 cell-index = <0x3>;
100 compatible = "fsl,fman-port-op-extended-args";
101 vsp-window = <0x8 0x0>;
102 };
103 };
104 };
105 };
106
107 fsl,dpaa {
108
109 /* ethernet@0 will be used as a normal Linux ethernet that
110 * interfaces to the kernel network stack. All others will be
111 * dedicated for use by usdpaa */
112
113 ethernet@1 {
114 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
115 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
116 fsl,qman-frame-queues-rx = <0x52 1 0x53 1>;
117 fsl,qman-frame-queues-tx = <0x72 1 0x73 1>;
118 };
119 ethernet@2 {
120 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
121 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
122 fsl,qman-frame-queues-rx = <0x54 1 0x55 1>;
123 fsl,qman-frame-queues-tx = <0x74 1 0x75 1>;
124 };
125 ethernet@3 {
126 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
127 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
128 fsl,qman-frame-queues-rx = <0x56 1 0x57 1>;
129 fsl,qman-frame-queues-tx = <0x76 1 0x77 1>;
130 };
131 ethernet@6 {
132 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
133 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
134 fsl,qman-frame-queues-rx = <0x5c 1 0x5d 1>;
135 fsl,qman-frame-queues-tx = <0x7c 1 0x7d 1>;
136 };
137 ethernet@7 {
138 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
139 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
140 fsl,qman-frame-queues-rx = <0x5e 1 0x5f 1>;
141 fsl,qman-frame-queues-tx = <0x7e 1 0x7f 1>;
142 };
143 ethernet@8 {
144 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
145 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
146 fsl,qman-frame-queues-rx = <0x60 1 0x61 1>;
147 fsl,qman-frame-queues-tx = <0x80 1 0x81 1>;
148 };
149 ethernet@9 {
150 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
151 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
152 fsl,qman-frame-queues-rx = <0x62 1 0x63 1>;
153 fsl,qman-frame-queues-tx = <0x82 1 0x83 1>;
154 };
155 ethernet@10 {
156 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
157 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
158 fsl,qman-frame-queues-rx = <0x64 1 0x65 1>;
159 fsl,qman-frame-queues-tx = <0x84 1 0x85 1>;
160 };
161 ethernet@11 {
162 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
163 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
164 fsl,qman-frame-queues-rx = <0x66 1 0x67 1>;
165 fsl,qman-frame-queues-tx = <0x86 1 0x87 1>;
166 };
167 ethernet@14 {
168 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
169 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
170 fsl,qman-frame-queues-rx = <0x6c 1 0x6d 1>;
171 fsl,qman-frame-queues-tx = <0x8c 1 0x8d 1>;
172 };
173 ethernet@15 {
174 compatible = "fsl,t4240-dpa-ethernet-init", "fsl,dpa-ethernet-init";
175 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
176 fsl,qman-frame-queues-rx = <0x6e 1 0x6f 1>;
177 fsl,qman-frame-queues-tx = <0x8e 1 0x8f 1>;
178 };
179 ethernet@16 {
180 compatible = "fsl,t4240-dpa-ethernet-generic", "fsl,dpa-ethernet-generic";
181 fsl,qman-frame-queues-tx = <0x92 1>;
182 fsl,oh-ports = <&oh3 &oh4>;
183 local-mac-address = [00 11 22 33 44 66];
184 };
185
186 dpa-fman0-oh@2 {
187 compatible = "fsl,dpa-oh";
188 /* Define frame queues for the OH port*/
189 /* <OH Rx error, OH Rx default> */
190 fsl,qman-frame-queues-oh = <0x90 1 0x91 1>;
191 fsl,fman-oh-port = <&fman0_oh2>;
192 };
193 oh3: dpa-fman0-oh@3 {
194 compatible = "fsl,dpa-oh";
195 fsl,bman-buffer-pools = <&bp13>;
196 fsl,qman-frame-queues-oh = <0x96 1 0x97 1>;
197 fsl,fman-oh-port = <&fman0_oh3>;
198 };
199 oh4: dpa-fman0-oh@4 {
200 compatible = "fsl,dpa-oh";
201 fsl,bman-buffer-pools = <&bp7 &bp8 &bp9>;
202 fsl,qman-frame-queues-oh = <0x94 1 0x95 1>;
203 fsl,fman-oh-port = <&fman0_oh4>;
204 };
205
206 };
207};
diff --git a/recipes-kernel/linux/linux-qoriq-common.inc b/recipes-kernel/linux/linux-qoriq-common.inc
index aa1e6ea..d2fecca 100644
--- a/recipes-kernel/linux/linux-qoriq-common.inc
+++ b/recipes-kernel/linux/linux-qoriq-common.inc
@@ -7,6 +7,8 @@ SRC_URI += "file://b4860-hard_irq_disable-bug.patch \
7 file://powerpc-fsl-booke64-Set-vmemmap_psize-to-4K.patch \ 7 file://powerpc-fsl-booke64-Set-vmemmap_psize-to-4K.patch \
8 " 8 "
9 9
10SRC_URI_append_t4240rdb-64b = " file://dts/t4240rdb-usdpaa-enea.dts"
11
10ENEA_KERNEL_FRAGMENTS += "\ 12ENEA_KERNEL_FRAGMENTS += "\
11 cfg/00013-localversion.cfg \ 13 cfg/00013-localversion.cfg \
12 cfg/00006-with_modules.cfg \ 14 cfg/00006-with_modules.cfg \
@@ -37,6 +39,8 @@ ENEA_KERNEL_FRAGMENTS_append_p2020rdb=" \
37DELTA_KERNEL_DEFCONFIG += " ${ENEA_KERNEL_FRAGMENTS} \ 39DELTA_KERNEL_DEFCONFIG += " ${ENEA_KERNEL_FRAGMENTS} \
38 " 40 "
39 41
42KERNEL_DEVICETREE_append_t4240rdb-64b = " t4240rdb-usdpaa-enea.dtb"
43
40require recipes-kernel/linux/pramfs-3.12.inc 44require recipes-kernel/linux/pramfs-3.12.inc
41 45
42do_unpack_append() { 46do_unpack_append() {
@@ -53,3 +57,7 @@ do_unpack_append() {
53 except OSError as e: 57 except OSError as e:
54 bb.error("Directory not copied. Error: %s" % e) 58 bb.error("Directory not copied. Error: %s" % e)
55} 59}
60
61do_configure_prepend_t4240rdb-64b() {
62 cp ${WORKDIR}/dts/t4240rdb-usdpaa-enea.dts ${S}/arch/powerpc/boot/dts/
63}