diff options
author | Adrian Dudau <adrian.dudau@enea.com> | 2017-11-28 10:51:28 +0100 |
---|---|---|
committer | Martin Borg <martin.borg@enea.com> | 2017-11-28 11:51:54 +0100 |
commit | 13c865cfd032aaae9d615c21ae4571894b9b284a (patch) | |
tree | 4463814ff73103ae69738345be4c5487a0c221b5 | |
parent | 7e2de939bf139467709164b9425221cbfed27b53 (diff) | |
download | meta-enea-bsp-arm-13c865cfd032aaae9d615c21ae4571894b9b284a.tar.gz |
Drop unsupported machines and kernels
The cn8304 and ls1021aiot machines and their associated kernels are not
supported anymore.
Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
Signed-off-by: Martin Borg <martin.borg@enea.com>
53 files changed, 0 insertions, 13291 deletions
diff --git a/conf/machine/cn8304.conf b/conf/machine/cn8304.conf deleted file mode 100644 index be5687d..0000000 --- a/conf/machine/cn8304.conf +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | #@TYPE: Machine | ||
2 | #@NAME: Cavium CN8304 machine | ||
3 | #@DESCRIPTION: Cavium CN8304 processor based on OCTEON TX, ARMv8.1 architecture | ||
4 | |||
5 | require conf/machine/include/arm/arch-armv8.inc | ||
6 | |||
7 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-cavium" | ||
8 | |||
9 | SERIAL_CONSOLES = "115200;ttyAMA0" | ||
10 | KERNEL_IMAGETYPE = "Image" | ||
diff --git a/conf/machine/ls1021aiot.conf b/conf/machine/ls1021aiot.conf deleted file mode 100644 index a802a4a..0000000 --- a/conf/machine/ls1021aiot.conf +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | #@TYPE: Machine | ||
2 | #@NAME: Freescale LS1021A-IoT board | ||
3 | #@SOC: ls102xa | ||
4 | #@DESCRIPTION: Machine configuration for running LS1021A-IoT in 32-bit mode | ||
5 | |||
6 | require conf/machine/include/qoriq-arm.inc | ||
7 | require conf/machine/include/tune-cortexa7.inc | ||
8 | |||
9 | MACHINEOVERRIDES =. "ls102xa:" | ||
10 | |||
11 | QE_UCODE="iram_Type_A_LS1021a_r1.0.bin" | ||
12 | |||
13 | KERNEL_DEVICETREE ?= "ls1021aiot.dtb" | ||
14 | |||
15 | IMAGE_FSTYPES += "tar.gz" | ||
16 | |||
17 | SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyEHV0 115200;ttyLP0 115200;ttyAMA0" | ||
18 | SERIAL_CONSOLES_CHECK ?= "${SERIAL_CONSOLES}" | ||
19 | USE_VT ?= "0" | ||
diff --git a/recipes-kernel/linux/linux-cavium-dev_4.9.bb b/recipes-kernel/linux/linux-cavium-dev_4.9.bb deleted file mode 100644 index c5b6075..0000000 --- a/recipes-kernel/linux/linux-cavium-dev_4.9.bb +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | require linux-cavium_4.9.inc | ||
2 | |||
3 | # Debug tools support | ||
4 | KERNEL_FEATURES_append = " features/debug/debug_kernel_y.scc" | ||
5 | KERNEL_FEATURES_append = " features/kgdb/kgdb_y.scc" | ||
6 | KERNEL_FEATURES_append = " features/lttng/lttng_y.scc" | ||
7 | KERNEL_FEATURES_append = " features/latencytop/latencytop_y.scc" | ||
8 | KERNEL_FEATURES_append = " features/perf/perf_y.scc" | ||
9 | KERNEL_FEATURES_append = " features/systemtap/systemtap_y.scc" | ||
diff --git a/recipes-kernel/linux/linux-cavium-guest_4.9.bb b/recipes-kernel/linux/linux-cavium-guest_4.9.bb deleted file mode 100644 index 2851845..0000000 --- a/recipes-kernel/linux/linux-cavium-guest_4.9.bb +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | require linux-cavium_4.9.inc | ||
diff --git a/recipes-kernel/linux/linux-cavium/0001-openvswitch-fixed-kernel-crash.patch b/recipes-kernel/linux/linux-cavium/0001-openvswitch-fixed-kernel-crash.patch deleted file mode 100644 index ba631ea..0000000 --- a/recipes-kernel/linux/linux-cavium/0001-openvswitch-fixed-kernel-crash.patch +++ /dev/null | |||
@@ -1,241 +0,0 @@ | |||
1 | From 65693212754e9f97d29504219327ce4807780c48 Mon Sep 17 00:00:00 2001 | ||
2 | From: Dragos Motrea <Dragos.Motrea@enea.com> | ||
3 | Date: Tue, 24 Oct 2017 13:10:10 +0200 | ||
4 | Subject: [meta-enea-bsp-arm][cavium-4.9][LXCR-8050][PATCHv1 1/1] openvswitch: | ||
5 | fixed kernel crash | ||
6 | |||
7 | Inserting the openvswitch.ko is causing a kernel crash in | ||
8 | __percpu_counter_sum function. Applying this patch will replace the percpu | ||
9 | counter API with the atomic operations for fragmentation mem accounting. | ||
10 | The atomic operations should be used on architecture with many CPUs. | ||
11 | |||
12 | The revert is made in kernel upstream by the commit: | ||
13 | fb452a1aa3fd4034d7999e309c5466ff2d7005aa | ||
14 | |||
15 | Upstream-Status: Backport | ||
16 | |||
17 | Signed-off-by: Dragos Motrea <Dragos.Motrea@enea.com> | ||
18 | --- | ||
19 | include/net/inet_frag.h | 40 ++++++++------------------------- | ||
20 | net/ieee802154/6lowpan/reassembly.c | 12 +++------- | ||
21 | net/ipv4/inet_fragment.c | 4 +--- | ||
22 | net/ipv4/ip_fragment.c | 15 ++++--------- | ||
23 | net/ipv6/netfilter/nf_conntrack_reasm.c | 12 +++------- | ||
24 | net/ipv6/reassembly.c | 12 +++------- | ||
25 | 6 files changed, 23 insertions(+), 72 deletions(-) | ||
26 | |||
27 | diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h | ||
28 | index 909972a..38beec0 100644 | ||
29 | --- a/include/net/inet_frag.h | ||
30 | +++ b/include/net/inet_frag.h | ||
31 | @@ -1,14 +1,9 @@ | ||
32 | #ifndef __NET_FRAG_H__ | ||
33 | #define __NET_FRAG_H__ | ||
34 | |||
35 | -#include <linux/percpu_counter.h> | ||
36 | - | ||
37 | struct netns_frags { | ||
38 | - /* The percpu_counter "mem" need to be cacheline aligned. | ||
39 | - * mem.count must not share cacheline with other writers | ||
40 | - */ | ||
41 | - struct percpu_counter mem ____cacheline_aligned_in_smp; | ||
42 | - | ||
43 | + /* Keep atomic mem on separate cachelines in structs that include it */ | ||
44 | + atomic_t mem ____cacheline_aligned_in_smp; | ||
45 | /* sysctls */ | ||
46 | int timeout; | ||
47 | int high_thresh; | ||
48 | @@ -108,13 +103,9 @@ struct inet_frags { | ||
49 | int inet_frags_init(struct inet_frags *); | ||
50 | void inet_frags_fini(struct inet_frags *); | ||
51 | |||
52 | -static inline int inet_frags_init_net(struct netns_frags *nf) | ||
53 | -{ | ||
54 | - return percpu_counter_init(&nf->mem, 0, GFP_KERNEL); | ||
55 | -} | ||
56 | -static inline void inet_frags_uninit_net(struct netns_frags *nf) | ||
57 | +static inline void inet_frags_init_net(struct netns_frags *nf) | ||
58 | { | ||
59 | - percpu_counter_destroy(&nf->mem); | ||
60 | + atomic_set(&nf->mem, 0); | ||
61 | } | ||
62 | |||
63 | void inet_frags_exit_net(struct netns_frags *nf, struct inet_frags *f); | ||
64 | @@ -140,37 +131,24 @@ static inline bool inet_frag_evicting(struct inet_frag_queue *q) | ||
65 | |||
66 | /* Memory Tracking Functions. */ | ||
67 | |||
68 | -/* The default percpu_counter batch size is not big enough to scale to | ||
69 | - * fragmentation mem acct sizes. | ||
70 | - * The mem size of a 64K fragment is approx: | ||
71 | - * (44 fragments * 2944 truesize) + frag_queue struct(200) = 129736 bytes | ||
72 | - */ | ||
73 | -static unsigned int frag_percpu_counter_batch = 130000; | ||
74 | - | ||
75 | static inline int frag_mem_limit(struct netns_frags *nf) | ||
76 | { | ||
77 | - return percpu_counter_read(&nf->mem); | ||
78 | + return atomic_read(&nf->mem); | ||
79 | } | ||
80 | |||
81 | static inline void sub_frag_mem_limit(struct netns_frags *nf, int i) | ||
82 | { | ||
83 | - __percpu_counter_add(&nf->mem, -i, frag_percpu_counter_batch); | ||
84 | + atomic_sub(i, &nf->mem); | ||
85 | } | ||
86 | |||
87 | static inline void add_frag_mem_limit(struct netns_frags *nf, int i) | ||
88 | { | ||
89 | - __percpu_counter_add(&nf->mem, i, frag_percpu_counter_batch); | ||
90 | + atomic_add(i, &nf->mem); | ||
91 | } | ||
92 | |||
93 | -static inline unsigned int sum_frag_mem_limit(struct netns_frags *nf) | ||
94 | +static inline int sum_frag_mem_limit(struct netns_frags *nf) | ||
95 | { | ||
96 | - unsigned int res; | ||
97 | - | ||
98 | - local_bh_disable(); | ||
99 | - res = percpu_counter_sum_positive(&nf->mem); | ||
100 | - local_bh_enable(); | ||
101 | - | ||
102 | - return res; | ||
103 | + return atomic_read(&nf->mem); | ||
104 | } | ||
105 | |||
106 | /* RFC 3168 support : | ||
107 | diff --git a/net/ieee802154/6lowpan/reassembly.c b/net/ieee802154/6lowpan/reassembly.c | ||
108 | index 30d875d..fb28a06 100644 | ||
109 | --- a/net/ieee802154/6lowpan/reassembly.c | ||
110 | +++ b/net/ieee802154/6lowpan/reassembly.c | ||
111 | @@ -580,21 +580,15 @@ static int __net_init lowpan_frags_init_net(struct net *net) | ||
112 | { | ||
113 | struct netns_ieee802154_lowpan *ieee802154_lowpan = | ||
114 | net_ieee802154_lowpan(net); | ||
115 | - int res; | ||
116 | |||
117 | ieee802154_lowpan->frags.high_thresh = IPV6_FRAG_HIGH_THRESH; | ||
118 | ieee802154_lowpan->frags.low_thresh = IPV6_FRAG_LOW_THRESH; | ||
119 | ieee802154_lowpan->frags.timeout = IPV6_FRAG_TIMEOUT; | ||
120 | |||
121 | - res = inet_frags_init_net(&ieee802154_lowpan->frags); | ||
122 | - if (res) | ||
123 | - return res; | ||
124 | - res = lowpan_frags_ns_sysctl_register(net); | ||
125 | - if (res) | ||
126 | - inet_frags_uninit_net(&ieee802154_lowpan->frags); | ||
127 | - return res; | ||
128 | -} | ||
129 | + inet_frags_init_net(&ieee802154_lowpan->frags); | ||
130 | |||
131 | + return lowpan_frags_ns_sysctl_register(net); | ||
132 | +} | ||
133 | static void __net_exit lowpan_frags_exit_net(struct net *net) | ||
134 | { | ||
135 | struct netns_ieee802154_lowpan *ieee802154_lowpan = | ||
136 | diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c | ||
137 | index b5e9317..631c0d0 100644 | ||
138 | --- a/net/ipv4/inet_fragment.c | ||
139 | +++ b/net/ipv4/inet_fragment.c | ||
140 | @@ -234,10 +234,8 @@ evict_again: | ||
141 | cond_resched(); | ||
142 | |||
143 | if (read_seqretry(&f->rnd_seqlock, seq) || | ||
144 | - percpu_counter_sum(&nf->mem)) | ||
145 | + sum_frag_mem_limit(nf)) | ||
146 | goto evict_again; | ||
147 | - | ||
148 | - percpu_counter_destroy(&nf->mem); | ||
149 | } | ||
150 | EXPORT_SYMBOL(inet_frags_exit_net); | ||
151 | |||
152 | diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c | ||
153 | index bbe7f72..0f0d89e 100644 | ||
154 | --- a/net/ipv4/ip_fragment.c | ||
155 | +++ b/net/ipv4/ip_fragment.c | ||
156 | @@ -835,8 +835,6 @@ static void __init ip4_frags_ctl_register(void) | ||
157 | |||
158 | static int __net_init ipv4_frags_init_net(struct net *net) | ||
159 | { | ||
160 | - int res; | ||
161 | - | ||
162 | /* Fragment cache limits. | ||
163 | * | ||
164 | * The fragment memory accounting code, (tries to) account for | ||
165 | @@ -861,16 +859,11 @@ static int __net_init ipv4_frags_init_net(struct net *net) | ||
166 | net->ipv4.frags.timeout = IP_FRAG_TIME; | ||
167 | |||
168 | net->ipv4.frags.max_dist = 64; | ||
169 | - | ||
170 | - res = inet_frags_init_net(&net->ipv4.frags); | ||
171 | - if (res) | ||
172 | - return res; | ||
173 | - res = ip4_frags_ns_ctl_register(net); | ||
174 | - if (res) | ||
175 | - inet_frags_uninit_net(&net->ipv4.frags); | ||
176 | - return res; | ||
177 | + | ||
178 | + inet_frags_init_net(&net->ipv4.frags); | ||
179 | + | ||
180 | + return ip4_frags_ns_ctl_register(net); | ||
181 | } | ||
182 | - | ||
183 | static void __net_exit ipv4_frags_exit_net(struct net *net) | ||
184 | { | ||
185 | ip4_frags_ns_ctl_unregister(net); | ||
186 | diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c | ||
187 | index 9948b5c..8734e2c 100644 | ||
188 | --- a/net/ipv6/netfilter/nf_conntrack_reasm.c | ||
189 | +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c | ||
190 | @@ -621,18 +621,12 @@ EXPORT_SYMBOL_GPL(nf_ct_frag6_gather); | ||
191 | |||
192 | static int nf_ct_net_init(struct net *net) | ||
193 | { | ||
194 | - int res; | ||
195 | - | ||
196 | net->nf_frag.frags.high_thresh = IPV6_FRAG_HIGH_THRESH; | ||
197 | net->nf_frag.frags.low_thresh = IPV6_FRAG_LOW_THRESH; | ||
198 | net->nf_frag.frags.timeout = IPV6_FRAG_TIMEOUT; | ||
199 | - res = inet_frags_init_net(&net->nf_frag.frags); | ||
200 | - if (res) | ||
201 | - return res; | ||
202 | - res = nf_ct_frag6_sysctl_register(net); | ||
203 | - if (res) | ||
204 | - inet_frags_uninit_net(&net->nf_frag.frags); | ||
205 | - return res; | ||
206 | + | ||
207 | + inet_frags_init_net(&net->nf_frag.frags); | ||
208 | + return nf_ct_frag6_sysctl_register(net); | ||
209 | } | ||
210 | |||
211 | static void nf_ct_net_exit(struct net *net) | ||
212 | diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c | ||
213 | index 3815e85..fe67cf4 100644 | ||
214 | --- a/net/ipv6/reassembly.c | ||
215 | +++ b/net/ipv6/reassembly.c | ||
216 | @@ -709,19 +709,13 @@ static void ip6_frags_sysctl_unregister(void) | ||
217 | |||
218 | static int __net_init ipv6_frags_init_net(struct net *net) | ||
219 | { | ||
220 | - int res; | ||
221 | - | ||
222 | net->ipv6.frags.high_thresh = IPV6_FRAG_HIGH_THRESH; | ||
223 | net->ipv6.frags.low_thresh = IPV6_FRAG_LOW_THRESH; | ||
224 | net->ipv6.frags.timeout = IPV6_FRAG_TIMEOUT; | ||
225 | |||
226 | - res = inet_frags_init_net(&net->ipv6.frags); | ||
227 | - if (res) | ||
228 | - return res; | ||
229 | - res = ip6_frags_ns_sysctl_register(net); | ||
230 | - if (res) | ||
231 | - inet_frags_uninit_net(&net->ipv6.frags); | ||
232 | - return res; | ||
233 | + inet_frags_init_net(&net->ipv6.frags); | ||
234 | + | ||
235 | + return ip6_frags_ns_sysctl_register(net); | ||
236 | } | ||
237 | |||
238 | static void __net_exit ipv6_frags_exit_net(struct net *net) | ||
239 | -- | ||
240 | 2.7.4 | ||
241 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2016-10154.patch b/recipes-kernel/linux/linux-cavium/CVE-2016-10154.patch deleted file mode 100644 index ddbeb77..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2016-10154.patch +++ /dev/null | |||
@@ -1,100 +0,0 @@ | |||
1 | From 7aa58e7ad53bd9536aa49a18ccd0778c728bf57d Mon Sep 17 00:00:00 2001 | ||
2 | From: Andy Lutomirski <luto@kernel.org> | ||
3 | Date: Mon, 12 Dec 2016 12:54:37 -0800 | ||
4 | Subject: [PATCH] cifs: Fix smbencrypt() to stop pointing a scatterlist at the | ||
5 | stack | ||
6 | |||
7 | commit 06deeec77a5a689cc94b21a8a91a76e42176685d upstream. | ||
8 | |||
9 | smbencrypt() points a scatterlist to the stack, which is breaks if | ||
10 | CONFIG_VMAP_STACK=y. | ||
11 | |||
12 | Fix it by switching to crypto_cipher_encrypt_one(). The new code | ||
13 | should be considerably faster as an added benefit. | ||
14 | |||
15 | This code is nearly identical to some code that Eric Biggers | ||
16 | suggested. | ||
17 | |||
18 | CVE: CVE-2016-10154 | ||
19 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
20 | |||
21 | Reported-by: Eric Biggers <ebiggers3@gmail.com> | ||
22 | Signed-off-by: Andy Lutomirski <luto@kernel.org> | ||
23 | Acked-by: Jeff Layton <jlayton@redhat.com> | ||
24 | Signed-off-by: Steve French <smfrench@gmail.com> | ||
25 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
26 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
27 | --- | ||
28 | fs/cifs/smbencrypt.c | 40 ++++++++-------------------------------- | ||
29 | 1 file changed, 8 insertions(+), 32 deletions(-) | ||
30 | |||
31 | diff --git a/fs/cifs/smbencrypt.c b/fs/cifs/smbencrypt.c | ||
32 | index 699b786..c12bffe 100644 | ||
33 | --- a/fs/cifs/smbencrypt.c | ||
34 | +++ b/fs/cifs/smbencrypt.c | ||
35 | @@ -23,7 +23,7 @@ | ||
36 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
37 | */ | ||
38 | |||
39 | -#include <crypto/skcipher.h> | ||
40 | +#include <linux/crypto.h> | ||
41 | #include <linux/module.h> | ||
42 | #include <linux/slab.h> | ||
43 | #include <linux/fs.h> | ||
44 | @@ -69,46 +69,22 @@ | ||
45 | static int | ||
46 | smbhash(unsigned char *out, const unsigned char *in, unsigned char *key) | ||
47 | { | ||
48 | - int rc; | ||
49 | unsigned char key2[8]; | ||
50 | - struct crypto_skcipher *tfm_des; | ||
51 | - struct scatterlist sgin, sgout; | ||
52 | - struct skcipher_request *req; | ||
53 | + struct crypto_cipher *tfm_des; | ||
54 | |||
55 | str_to_key(key, key2); | ||
56 | |||
57 | - tfm_des = crypto_alloc_skcipher("ecb(des)", 0, CRYPTO_ALG_ASYNC); | ||
58 | + tfm_des = crypto_alloc_cipher("des", 0, 0); | ||
59 | if (IS_ERR(tfm_des)) { | ||
60 | - rc = PTR_ERR(tfm_des); | ||
61 | - cifs_dbg(VFS, "could not allocate des crypto API\n"); | ||
62 | - goto smbhash_err; | ||
63 | - } | ||
64 | - | ||
65 | - req = skcipher_request_alloc(tfm_des, GFP_KERNEL); | ||
66 | - if (!req) { | ||
67 | - rc = -ENOMEM; | ||
68 | cifs_dbg(VFS, "could not allocate des crypto API\n"); | ||
69 | - goto smbhash_free_skcipher; | ||
70 | + return PTR_ERR(tfm_des); | ||
71 | } | ||
72 | |||
73 | - crypto_skcipher_setkey(tfm_des, key2, 8); | ||
74 | - | ||
75 | - sg_init_one(&sgin, in, 8); | ||
76 | - sg_init_one(&sgout, out, 8); | ||
77 | + crypto_cipher_setkey(tfm_des, key2, 8); | ||
78 | + crypto_cipher_encrypt_one(tfm_des, out, in); | ||
79 | + crypto_free_cipher(tfm_des); | ||
80 | |||
81 | - skcipher_request_set_callback(req, 0, NULL, NULL); | ||
82 | - skcipher_request_set_crypt(req, &sgin, &sgout, 8, NULL); | ||
83 | - | ||
84 | - rc = crypto_skcipher_encrypt(req); | ||
85 | - if (rc) | ||
86 | - cifs_dbg(VFS, "could not encrypt crypt key rc: %d\n", rc); | ||
87 | - | ||
88 | - skcipher_request_free(req); | ||
89 | - | ||
90 | -smbhash_free_skcipher: | ||
91 | - crypto_free_skcipher(tfm_des); | ||
92 | -smbhash_err: | ||
93 | - return rc; | ||
94 | + return 0; | ||
95 | } | ||
96 | |||
97 | static int | ||
98 | -- | ||
99 | 1.9.1 | ||
100 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2016-10208.patch b/recipes-kernel/linux/linux-cavium/CVE-2016-10208.patch deleted file mode 100644 index c3ab284..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2016-10208.patch +++ /dev/null | |||
@@ -1,74 +0,0 @@ | |||
1 | From 13e6ef99d23b05807e7f8a72f45e3d8260b61570 Mon Sep 17 00:00:00 2001 | ||
2 | From: Eryu Guan <guaneryu@gmail.com> | ||
3 | Date: Thu, 1 Dec 2016 15:08:37 -0500 | ||
4 | Subject: [PATCH] ext4: validate s_first_meta_bg at mount time | ||
5 | |||
6 | commit 3a4b77cd47bb837b8557595ec7425f281f2ca1fe upstream. | ||
7 | |||
8 | Ralf Spenneberg reported that he hit a kernel crash when mounting a | ||
9 | modified ext4 image. And it turns out that kernel crashed when | ||
10 | calculating fs overhead (ext4_calculate_overhead()), this is because | ||
11 | the image has very large s_first_meta_bg (debug code shows it's | ||
12 | 842150400), and ext4 overruns the memory in count_overhead() when | ||
13 | setting bitmap buffer, which is PAGE_SIZE. | ||
14 | |||
15 | ext4_calculate_overhead(): | ||
16 | buf = get_zeroed_page(GFP_NOFS); <=== PAGE_SIZE buffer | ||
17 | blks = count_overhead(sb, i, buf); | ||
18 | |||
19 | count_overhead(): | ||
20 | for (j = ext4_bg_num_gdb(sb, grp); j > 0; j--) { <=== j = 842150400 | ||
21 | ext4_set_bit(EXT4_B2C(sbi, s++), buf); <=== buffer overrun | ||
22 | count++; | ||
23 | } | ||
24 | |||
25 | This can be reproduced easily for me by this script: | ||
26 | |||
27 | #!/bin/bash | ||
28 | rm -f fs.img | ||
29 | mkdir -p /mnt/ext4 | ||
30 | fallocate -l 16M fs.img | ||
31 | mke2fs -t ext4 -O bigalloc,meta_bg,^resize_inode -F fs.img | ||
32 | debugfs -w -R "ssv first_meta_bg 842150400" fs.img | ||
33 | mount -o loop fs.img /mnt/ext4 | ||
34 | |||
35 | Fix it by validating s_first_meta_bg first at mount time, and | ||
36 | refusing to mount if its value exceeds the largest possible meta_bg | ||
37 | number. | ||
38 | |||
39 | CVE: CVE-2016-10208 | ||
40 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
41 | |||
42 | Reported-by: Ralf Spenneberg <ralf@os-t.de> | ||
43 | Signed-off-by: Eryu Guan <guaneryu@gmail.com> | ||
44 | Signed-off-by: Theodore Ts'o <tytso@mit.edu> | ||
45 | Reviewed-by: Andreas Dilger <adilger@dilger.ca> | ||
46 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
47 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
48 | --- | ||
49 | fs/ext4/super.c | 9 +++++++++ | ||
50 | 1 file changed, 9 insertions(+) | ||
51 | |||
52 | diff --git a/fs/ext4/super.c b/fs/ext4/super.c | ||
53 | index 478630a..bbc316d 100644 | ||
54 | --- a/fs/ext4/super.c | ||
55 | +++ b/fs/ext4/super.c | ||
56 | @@ -3827,6 +3827,15 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) | ||
57 | (EXT4_MAX_BLOCK_FILE_PHYS / EXT4_BLOCKS_PER_GROUP(sb))); | ||
58 | db_count = (sbi->s_groups_count + EXT4_DESC_PER_BLOCK(sb) - 1) / | ||
59 | EXT4_DESC_PER_BLOCK(sb); | ||
60 | + if (ext4_has_feature_meta_bg(sb)) { | ||
61 | + if (le32_to_cpu(es->s_first_meta_bg) >= db_count) { | ||
62 | + ext4_msg(sb, KERN_WARNING, | ||
63 | + "first meta block group too large: %u " | ||
64 | + "(group descriptor block count %u)", | ||
65 | + le32_to_cpu(es->s_first_meta_bg), db_count); | ||
66 | + goto failed_mount; | ||
67 | + } | ||
68 | + } | ||
69 | sbi->s_group_desc = ext4_kvmalloc(db_count * | ||
70 | sizeof(struct buffer_head *), | ||
71 | GFP_KERNEL); | ||
72 | -- | ||
73 | 1.9.1 | ||
74 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-1000364.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-1000364.patch deleted file mode 100644 index a25dd45..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-1000364.patch +++ /dev/null | |||
@@ -1,939 +0,0 @@ | |||
1 | From cfc0eb403816c5c4f9667d959de5e22789b5421e Mon Sep 17 00:00:00 2001 | ||
2 | From: Hugh Dickins <hughd@google.com> | ||
3 | Date: Mon, 19 Jun 2017 04:03:24 -0700 | ||
4 | Subject: [PATCH] mm: larger stack guard gap, between vmas | ||
5 | |||
6 | commit 1be7107fbe18eed3e319a6c3e83c78254b693acb upstream. | ||
7 | |||
8 | Stack guard page is a useful feature to reduce a risk of stack smashing | ||
9 | into a different mapping. We have been using a single page gap which | ||
10 | is sufficient to prevent having stack adjacent to a different mapping. | ||
11 | But this seems to be insufficient in the light of the stack usage in | ||
12 | userspace. E.g. glibc uses as large as 64kB alloca() in many commonly | ||
13 | used functions. Others use constructs liks gid_t buffer[NGROUPS_MAX] | ||
14 | which is 256kB or stack strings with MAX_ARG_STRLEN. | ||
15 | |||
16 | This will become especially dangerous for suid binaries and the default | ||
17 | no limit for the stack size limit because those applications can be | ||
18 | tricked to consume a large portion of the stack and a single glibc call | ||
19 | could jump over the guard page. These attacks are not theoretical, | ||
20 | unfortunatelly. | ||
21 | |||
22 | Make those attacks less probable by increasing the stack guard gap | ||
23 | to 1MB (on systems with 4k pages; but make it depend on the page size | ||
24 | because systems with larger base pages might cap stack allocations in | ||
25 | the PAGE_SIZE units) which should cover larger alloca() and VLA stack | ||
26 | allocations. It is obviously not a full fix because the problem is | ||
27 | somehow inherent, but it should reduce attack space a lot. | ||
28 | |||
29 | One could argue that the gap size should be configurable from userspace, | ||
30 | but that can be done later when somebody finds that the new 1MB is wrong | ||
31 | for some special case applications. For now, add a kernel command line | ||
32 | option (stack_guard_gap) to specify the stack gap size (in page units). | ||
33 | |||
34 | Implementation wise, first delete all the old code for stack guard page: | ||
35 | because although we could get away with accounting one extra page in a | ||
36 | stack vma, accounting a larger gap can break userspace - case in point, | ||
37 | a program run with "ulimit -S -v 20000" failed when the 1MB gap was | ||
38 | counted for RLIMIT_AS; similar problems could come with RLIMIT_MLOCK | ||
39 | and strict non-overcommit mode. | ||
40 | |||
41 | Instead of keeping gap inside the stack vma, maintain the stack guard | ||
42 | gap as a gap between vmas: using vm_start_gap() in place of vm_start | ||
43 | (or vm_end_gap() in place of vm_end if VM_GROWSUP) in just those few | ||
44 | places which need to respect the gap - mainly arch_get_unmapped_area(), | ||
45 | and and the vma tree's subtree_gap support for that. | ||
46 | |||
47 | CVE: CVE-2017-1000364 | ||
48 | Upstream-Status: Backport [backport from https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.50&id=cfc0eb403816c5c4f9667d959de5e22789b5421e] | ||
49 | |||
50 | Original-patch-by: Oleg Nesterov <oleg@redhat.com> | ||
51 | Original-patch-by: Michal Hocko <mhocko@suse.com> | ||
52 | Signed-off-by: Hugh Dickins <hughd@google.com> | ||
53 | Acked-by: Michal Hocko <mhocko@suse.com> | ||
54 | Tested-by: Helge Deller <deller@gmx.de> # parisc | ||
55 | Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> | ||
56 | [wt: backport to 4.11: adjust context] | ||
57 | [wt: backport to 4.9: adjust context ; kernel doc was not in admin-guide] | ||
58 | Signed-off-by: Willy Tarreau <w@1wt.eu> | ||
59 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
60 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
61 | --- | ||
62 | Documentation/kernel-parameters.txt | 7 ++ | ||
63 | arch/arc/mm/mmap.c | 2 +- | ||
64 | arch/arm/mm/mmap.c | 4 +- | ||
65 | arch/frv/mm/elf-fdpic.c | 2 +- | ||
66 | arch/mips/mm/mmap.c | 2 +- | ||
67 | arch/parisc/kernel/sys_parisc.c | 15 ++-- | ||
68 | arch/powerpc/mm/hugetlbpage-radix.c | 2 +- | ||
69 | arch/powerpc/mm/mmap.c | 4 +- | ||
70 | arch/powerpc/mm/slice.c | 2 +- | ||
71 | arch/s390/mm/mmap.c | 4 +- | ||
72 | arch/sh/mm/mmap.c | 4 +- | ||
73 | arch/sparc/kernel/sys_sparc_64.c | 4 +- | ||
74 | arch/sparc/mm/hugetlbpage.c | 2 +- | ||
75 | arch/tile/mm/hugetlbpage.c | 2 +- | ||
76 | arch/x86/kernel/sys_x86_64.c | 4 +- | ||
77 | arch/x86/mm/hugetlbpage.c | 2 +- | ||
78 | arch/xtensa/kernel/syscall.c | 2 +- | ||
79 | fs/hugetlbfs/inode.c | 2 +- | ||
80 | fs/proc/task_mmu.c | 4 - | ||
81 | include/linux/mm.h | 53 ++++++------- | ||
82 | mm/gup.c | 5 -- | ||
83 | mm/memory.c | 38 --------- | ||
84 | mm/mmap.c | 149 +++++++++++++++++++++--------------- | ||
85 | 23 files changed, 152 insertions(+), 163 deletions(-) | ||
86 | |||
87 | diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt | ||
88 | index a6fadef..86a6746 100644 | ||
89 | --- a/Documentation/kernel-parameters.txt | ||
90 | +++ b/Documentation/kernel-parameters.txt | ||
91 | @@ -3932,6 +3932,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | ||
92 | spia_pedr= | ||
93 | spia_peddr= | ||
94 | |||
95 | + stack_guard_gap= [MM] | ||
96 | + override the default stack gap protection. The value | ||
97 | + is in page units and it defines how many pages prior | ||
98 | + to (for stacks growing down) resp. after (for stacks | ||
99 | + growing up) the main stack are reserved for no other | ||
100 | + mapping. Default value is 256 pages. | ||
101 | + | ||
102 | stacktrace [FTRACE] | ||
103 | Enabled the stack tracer on boot up. | ||
104 | |||
105 | diff --git a/arch/arc/mm/mmap.c b/arch/arc/mm/mmap.c | ||
106 | index 2e06d56..cf4ae69 100644 | ||
107 | --- a/arch/arc/mm/mmap.c | ||
108 | +++ b/arch/arc/mm/mmap.c | ||
109 | @@ -64,7 +64,7 @@ | ||
110 | |||
111 | vma = find_vma(mm, addr); | ||
112 | if (TASK_SIZE - len >= addr && | ||
113 | - (!vma || addr + len <= vma->vm_start)) | ||
114 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
115 | return addr; | ||
116 | } | ||
117 | |||
118 | diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c | ||
119 | index 66353ca..641334e 100644 | ||
120 | --- a/arch/arm/mm/mmap.c | ||
121 | +++ b/arch/arm/mm/mmap.c | ||
122 | @@ -89,7 +89,7 @@ static unsigned long mmap_base(unsigned long rnd) | ||
123 | |||
124 | vma = find_vma(mm, addr); | ||
125 | if (TASK_SIZE - len >= addr && | ||
126 | - (!vma || addr + len <= vma->vm_start)) | ||
127 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
128 | return addr; | ||
129 | } | ||
130 | |||
131 | @@ -140,7 +140,7 @@ static unsigned long mmap_base(unsigned long rnd) | ||
132 | addr = PAGE_ALIGN(addr); | ||
133 | vma = find_vma(mm, addr); | ||
134 | if (TASK_SIZE - len >= addr && | ||
135 | - (!vma || addr + len <= vma->vm_start)) | ||
136 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
137 | return addr; | ||
138 | } | ||
139 | |||
140 | diff --git a/arch/frv/mm/elf-fdpic.c b/arch/frv/mm/elf-fdpic.c | ||
141 | index 836f1470..efa59f1 100644 | ||
142 | --- a/arch/frv/mm/elf-fdpic.c | ||
143 | +++ b/arch/frv/mm/elf-fdpic.c | ||
144 | @@ -74,7 +74,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi | ||
145 | addr = PAGE_ALIGN(addr); | ||
146 | vma = find_vma(current->mm, addr); | ||
147 | if (TASK_SIZE - len >= addr && | ||
148 | - (!vma || addr + len <= vma->vm_start)) | ||
149 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
150 | goto success; | ||
151 | } | ||
152 | |||
153 | diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c | ||
154 | index d08ea3f..a44052c 100644 | ||
155 | --- a/arch/mips/mm/mmap.c | ||
156 | +++ b/arch/mips/mm/mmap.c | ||
157 | @@ -92,7 +92,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp, | ||
158 | |||
159 | vma = find_vma(mm, addr); | ||
160 | if (TASK_SIZE - len >= addr && | ||
161 | - (!vma || addr + len <= vma->vm_start)) | ||
162 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
163 | return addr; | ||
164 | } | ||
165 | |||
166 | diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c | ||
167 | index 0a393a0..1d7691f 100644 | ||
168 | --- a/arch/parisc/kernel/sys_parisc.c | ||
169 | +++ b/arch/parisc/kernel/sys_parisc.c | ||
170 | @@ -88,7 +88,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, | ||
171 | unsigned long len, unsigned long pgoff, unsigned long flags) | ||
172 | { | ||
173 | struct mm_struct *mm = current->mm; | ||
174 | - struct vm_area_struct *vma; | ||
175 | + struct vm_area_struct *vma, *prev; | ||
176 | unsigned long task_size = TASK_SIZE; | ||
177 | int do_color_align, last_mmap; | ||
178 | struct vm_unmapped_area_info info; | ||
179 | @@ -115,9 +115,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, | ||
180 | else | ||
181 | addr = PAGE_ALIGN(addr); | ||
182 | |||
183 | - vma = find_vma(mm, addr); | ||
184 | + vma = find_vma_prev(mm, addr, &prev); | ||
185 | if (task_size - len >= addr && | ||
186 | - (!vma || addr + len <= vma->vm_start)) | ||
187 | + (!vma || addr + len <= vm_start_gap(vma)) && | ||
188 | + (!prev || addr >= vm_end_gap(prev))) | ||
189 | goto found_addr; | ||
190 | } | ||
191 | |||
192 | @@ -141,7 +142,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, | ||
193 | const unsigned long len, const unsigned long pgoff, | ||
194 | const unsigned long flags) | ||
195 | { | ||
196 | - struct vm_area_struct *vma; | ||
197 | + struct vm_area_struct *vma, *prev; | ||
198 | struct mm_struct *mm = current->mm; | ||
199 | unsigned long addr = addr0; | ||
200 | int do_color_align, last_mmap; | ||
201 | @@ -175,9 +176,11 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, | ||
202 | addr = COLOR_ALIGN(addr, last_mmap, pgoff); | ||
203 | else | ||
204 | addr = PAGE_ALIGN(addr); | ||
205 | - vma = find_vma(mm, addr); | ||
206 | + | ||
207 | + vma = find_vma_prev(mm, addr, &prev); | ||
208 | if (TASK_SIZE - len >= addr && | ||
209 | - (!vma || addr + len <= vma->vm_start)) | ||
210 | + (!vma || addr + len <= vm_start_gap(vma)) && | ||
211 | + (!prev || addr >= vm_end_gap(prev))) | ||
212 | goto found_addr; | ||
213 | } | ||
214 | |||
215 | diff --git a/arch/powerpc/mm/hugetlbpage-radix.c b/arch/powerpc/mm/hugetlbpage-radix.c | ||
216 | index 35254a6..a2b2d97 100644 | ||
217 | --- a/arch/powerpc/mm/hugetlbpage-radix.c | ||
218 | +++ b/arch/powerpc/mm/hugetlbpage-radix.c | ||
219 | @@ -65,7 +65,7 @@ void radix__flush_hugetlb_tlb_range(struct vm_area_struct *vma, unsigned long st | ||
220 | addr = ALIGN(addr, huge_page_size(h)); | ||
221 | vma = find_vma(mm, addr); | ||
222 | if (TASK_SIZE - len >= addr && | ||
223 | - (!vma || addr + len <= vma->vm_start)) | ||
224 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
225 | return addr; | ||
226 | } | ||
227 | /* | ||
228 | diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c | ||
229 | index 2f1e443..5bc2845 100644 | ||
230 | --- a/arch/powerpc/mm/mmap.c | ||
231 | +++ b/arch/powerpc/mm/mmap.c | ||
232 | @@ -106,7 +106,7 @@ static inline unsigned long mmap_base(unsigned long rnd) | ||
233 | addr = PAGE_ALIGN(addr); | ||
234 | vma = find_vma(mm, addr); | ||
235 | if (TASK_SIZE - len >= addr && addr >= mmap_min_addr && | ||
236 | - (!vma || addr + len <= vma->vm_start)) | ||
237 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
238 | return addr; | ||
239 | } | ||
240 | |||
241 | @@ -142,7 +142,7 @@ static inline unsigned long mmap_base(unsigned long rnd) | ||
242 | addr = PAGE_ALIGN(addr); | ||
243 | vma = find_vma(mm, addr); | ||
244 | if (TASK_SIZE - len >= addr && addr >= mmap_min_addr && | ||
245 | - (!vma || addr + len <= vma->vm_start)) | ||
246 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
247 | return addr; | ||
248 | } | ||
249 | |||
250 | diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c | ||
251 | index 2b27458..c4d5c9c 100644 | ||
252 | --- a/arch/powerpc/mm/slice.c | ||
253 | +++ b/arch/powerpc/mm/slice.c | ||
254 | @@ -105,7 +105,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr, | ||
255 | if ((mm->task_size - len) < addr) | ||
256 | return 0; | ||
257 | vma = find_vma(mm, addr); | ||
258 | - return (!vma || (addr + len) <= vma->vm_start); | ||
259 | + return (!vma || (addr + len) <= vm_start_gap(vma)); | ||
260 | } | ||
261 | |||
262 | static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice) | ||
263 | diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c | ||
264 | index eb9df28..812368f 100644 | ||
265 | --- a/arch/s390/mm/mmap.c | ||
266 | +++ b/arch/s390/mm/mmap.c | ||
267 | @@ -98,7 +98,7 @@ static inline unsigned long mmap_base(unsigned long rnd) | ||
268 | addr = PAGE_ALIGN(addr); | ||
269 | vma = find_vma(mm, addr); | ||
270 | if (TASK_SIZE - len >= addr && addr >= mmap_min_addr && | ||
271 | - (!vma || addr + len <= vma->vm_start)) | ||
272 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
273 | return addr; | ||
274 | } | ||
275 | |||
276 | @@ -136,7 +136,7 @@ static inline unsigned long mmap_base(unsigned long rnd) | ||
277 | addr = PAGE_ALIGN(addr); | ||
278 | vma = find_vma(mm, addr); | ||
279 | if (TASK_SIZE - len >= addr && addr >= mmap_min_addr && | ||
280 | - (!vma || addr + len <= vma->vm_start)) | ||
281 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
282 | return addr; | ||
283 | } | ||
284 | |||
285 | diff --git a/arch/sh/mm/mmap.c b/arch/sh/mm/mmap.c | ||
286 | index 6777177..7df7d59 100644 | ||
287 | --- a/arch/sh/mm/mmap.c | ||
288 | +++ b/arch/sh/mm/mmap.c | ||
289 | @@ -63,7 +63,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, | ||
290 | |||
291 | vma = find_vma(mm, addr); | ||
292 | if (TASK_SIZE - len >= addr && | ||
293 | - (!vma || addr + len <= vma->vm_start)) | ||
294 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
295 | return addr; | ||
296 | } | ||
297 | |||
298 | @@ -113,7 +113,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, | ||
299 | |||
300 | vma = find_vma(mm, addr); | ||
301 | if (TASK_SIZE - len >= addr && | ||
302 | - (!vma || addr + len <= vma->vm_start)) | ||
303 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
304 | return addr; | ||
305 | } | ||
306 | |||
307 | diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c | ||
308 | index fe8b8ee..02e05e2 100644 | ||
309 | --- a/arch/sparc/kernel/sys_sparc_64.c | ||
310 | +++ b/arch/sparc/kernel/sys_sparc_64.c | ||
311 | @@ -118,7 +118,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi | ||
312 | |||
313 | vma = find_vma(mm, addr); | ||
314 | if (task_size - len >= addr && | ||
315 | - (!vma || addr + len <= vma->vm_start)) | ||
316 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
317 | return addr; | ||
318 | } | ||
319 | |||
320 | @@ -181,7 +181,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi | ||
321 | |||
322 | vma = find_vma(mm, addr); | ||
323 | if (task_size - len >= addr && | ||
324 | - (!vma || addr + len <= vma->vm_start)) | ||
325 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
326 | return addr; | ||
327 | } | ||
328 | |||
329 | diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c | ||
330 | index 988acc8b..58cde8d 100644 | ||
331 | --- a/arch/sparc/mm/hugetlbpage.c | ||
332 | +++ b/arch/sparc/mm/hugetlbpage.c | ||
333 | @@ -116,7 +116,7 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp, | ||
334 | addr = ALIGN(addr, HPAGE_SIZE); | ||
335 | vma = find_vma(mm, addr); | ||
336 | if (task_size - len >= addr && | ||
337 | - (!vma || addr + len <= vma->vm_start)) | ||
338 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
339 | return addr; | ||
340 | } | ||
341 | if (mm->get_unmapped_area == arch_get_unmapped_area) | ||
342 | diff --git a/arch/tile/mm/hugetlbpage.c b/arch/tile/mm/hugetlbpage.c | ||
343 | index 77ceaa3..67508b2 100644 | ||
344 | --- a/arch/tile/mm/hugetlbpage.c | ||
345 | +++ b/arch/tile/mm/hugetlbpage.c | ||
346 | @@ -232,7 +232,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, | ||
347 | addr = ALIGN(addr, huge_page_size(h)); | ||
348 | vma = find_vma(mm, addr); | ||
349 | if (TASK_SIZE - len >= addr && | ||
350 | - (!vma || addr + len <= vma->vm_start)) | ||
351 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
352 | return addr; | ||
353 | } | ||
354 | if (current->mm->get_unmapped_area == arch_get_unmapped_area) | ||
355 | diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c | ||
356 | index a55ed63..1119414 100644 | ||
357 | --- a/arch/x86/kernel/sys_x86_64.c | ||
358 | +++ b/arch/x86/kernel/sys_x86_64.c | ||
359 | @@ -140,7 +140,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin, | ||
360 | addr = PAGE_ALIGN(addr); | ||
361 | vma = find_vma(mm, addr); | ||
362 | if (end - len >= addr && | ||
363 | - (!vma || addr + len <= vma->vm_start)) | ||
364 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
365 | return addr; | ||
366 | } | ||
367 | |||
368 | @@ -183,7 +183,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin, | ||
369 | addr = PAGE_ALIGN(addr); | ||
370 | vma = find_vma(mm, addr); | ||
371 | if (TASK_SIZE - len >= addr && | ||
372 | - (!vma || addr + len <= vma->vm_start)) | ||
373 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
374 | return addr; | ||
375 | } | ||
376 | |||
377 | diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c | ||
378 | index 2ae8584..fe342e8 100644 | ||
379 | --- a/arch/x86/mm/hugetlbpage.c | ||
380 | +++ b/arch/x86/mm/hugetlbpage.c | ||
381 | @@ -144,7 +144,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file, | ||
382 | addr = ALIGN(addr, huge_page_size(h)); | ||
383 | vma = find_vma(mm, addr); | ||
384 | if (TASK_SIZE - len >= addr && | ||
385 | - (!vma || addr + len <= vma->vm_start)) | ||
386 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
387 | return addr; | ||
388 | } | ||
389 | if (mm->get_unmapped_area == arch_get_unmapped_area) | ||
390 | diff --git a/arch/xtensa/kernel/syscall.c b/arch/xtensa/kernel/syscall.c | ||
391 | index 83cf496..3aaaae1 100644 | ||
392 | --- a/arch/xtensa/kernel/syscall.c | ||
393 | +++ b/arch/xtensa/kernel/syscall.c | ||
394 | @@ -87,7 +87,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, | ||
395 | /* At this point: (!vmm || addr < vmm->vm_end). */ | ||
396 | if (TASK_SIZE - len < addr) | ||
397 | return -ENOMEM; | ||
398 | - if (!vmm || addr + len <= vmm->vm_start) | ||
399 | + if (!vmm || addr + len <= vm_start_gap(vmm)) | ||
400 | return addr; | ||
401 | addr = vmm->vm_end; | ||
402 | if (flags & MAP_SHARED) | ||
403 | diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c | ||
404 | index 4fb7b10..704fa0b 100644 | ||
405 | --- a/fs/hugetlbfs/inode.c | ||
406 | +++ b/fs/hugetlbfs/inode.c | ||
407 | @@ -191,7 +191,7 @@ static int hugetlbfs_file_mmap(struct file *file, struct vm_area_struct *vma) | ||
408 | addr = ALIGN(addr, huge_page_size(h)); | ||
409 | vma = find_vma(mm, addr); | ||
410 | if (TASK_SIZE - len >= addr && | ||
411 | - (!vma || addr + len <= vma->vm_start)) | ||
412 | + (!vma || addr + len <= vm_start_gap(vma))) | ||
413 | return addr; | ||
414 | } | ||
415 | |||
416 | diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c | ||
417 | index b1517b6..5138e78 100644 | ||
418 | --- a/fs/proc/task_mmu.c | ||
419 | +++ b/fs/proc/task_mmu.c | ||
420 | @@ -299,11 +299,7 @@ static int is_stack(struct proc_maps_private *priv, | ||
421 | |||
422 | /* We don't show the stack guard page in /proc/maps */ | ||
423 | start = vma->vm_start; | ||
424 | - if (stack_guard_page_start(vma, start)) | ||
425 | - start += PAGE_SIZE; | ||
426 | end = vma->vm_end; | ||
427 | - if (stack_guard_page_end(vma, end)) | ||
428 | - end -= PAGE_SIZE; | ||
429 | |||
430 | seq_setwidth(m, 25 + sizeof(void *) * 6 - 1); | ||
431 | seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ", | ||
432 | diff --git a/include/linux/mm.h b/include/linux/mm.h | ||
433 | index 0b5b2e4..6c9e1ad 100644 | ||
434 | --- a/include/linux/mm.h | ||
435 | +++ b/include/linux/mm.h | ||
436 | @@ -1356,39 +1356,11 @@ void account_page_cleaned(struct page *page, struct address_space *mapping, | ||
437 | |||
438 | int get_cmdline(struct task_struct *task, char *buffer, int buflen); | ||
439 | |||
440 | -/* Is the vma a continuation of the stack vma above it? */ | ||
441 | -static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr) | ||
442 | -{ | ||
443 | - return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN); | ||
444 | -} | ||
445 | - | ||
446 | static inline bool vma_is_anonymous(struct vm_area_struct *vma) | ||
447 | { | ||
448 | return !vma->vm_ops; | ||
449 | } | ||
450 | |||
451 | -static inline int stack_guard_page_start(struct vm_area_struct *vma, | ||
452 | - unsigned long addr) | ||
453 | -{ | ||
454 | - return (vma->vm_flags & VM_GROWSDOWN) && | ||
455 | - (vma->vm_start == addr) && | ||
456 | - !vma_growsdown(vma->vm_prev, addr); | ||
457 | -} | ||
458 | - | ||
459 | -/* Is the vma a continuation of the stack vma below it? */ | ||
460 | -static inline int vma_growsup(struct vm_area_struct *vma, unsigned long addr) | ||
461 | -{ | ||
462 | - return vma && (vma->vm_start == addr) && (vma->vm_flags & VM_GROWSUP); | ||
463 | -} | ||
464 | - | ||
465 | -static inline int stack_guard_page_end(struct vm_area_struct *vma, | ||
466 | - unsigned long addr) | ||
467 | -{ | ||
468 | - return (vma->vm_flags & VM_GROWSUP) && | ||
469 | - (vma->vm_end == addr) && | ||
470 | - !vma_growsup(vma->vm_next, addr); | ||
471 | -} | ||
472 | - | ||
473 | int vma_is_stack_for_current(struct vm_area_struct *vma); | ||
474 | |||
475 | extern unsigned long move_page_tables(struct vm_area_struct *vma, | ||
476 | @@ -2127,6 +2099,7 @@ void page_cache_async_readahead(struct address_space *mapping, | ||
477 | pgoff_t offset, | ||
478 | unsigned long size); | ||
479 | |||
480 | +extern unsigned long stack_guard_gap; | ||
481 | /* Generic expand stack which grows the stack according to GROWS{UP,DOWN} */ | ||
482 | extern int expand_stack(struct vm_area_struct *vma, unsigned long address); | ||
483 | |||
484 | @@ -2155,6 +2128,30 @@ static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * m | ||
485 | return vma; | ||
486 | } | ||
487 | |||
488 | +static inline unsigned long vm_start_gap(struct vm_area_struct *vma) | ||
489 | +{ | ||
490 | + unsigned long vm_start = vma->vm_start; | ||
491 | + | ||
492 | + if (vma->vm_flags & VM_GROWSDOWN) { | ||
493 | + vm_start -= stack_guard_gap; | ||
494 | + if (vm_start > vma->vm_start) | ||
495 | + vm_start = 0; | ||
496 | + } | ||
497 | + return vm_start; | ||
498 | +} | ||
499 | + | ||
500 | +static inline unsigned long vm_end_gap(struct vm_area_struct *vma) | ||
501 | +{ | ||
502 | + unsigned long vm_end = vma->vm_end; | ||
503 | + | ||
504 | + if (vma->vm_flags & VM_GROWSUP) { | ||
505 | + vm_end += stack_guard_gap; | ||
506 | + if (vm_end < vma->vm_end) | ||
507 | + vm_end = -PAGE_SIZE; | ||
508 | + } | ||
509 | + return vm_end; | ||
510 | +} | ||
511 | + | ||
512 | static inline unsigned long vma_pages(struct vm_area_struct *vma) | ||
513 | { | ||
514 | return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; | ||
515 | diff --git a/mm/gup.c b/mm/gup.c | ||
516 | index ec4f827..c63a034 100644 | ||
517 | --- a/mm/gup.c | ||
518 | +++ b/mm/gup.c | ||
519 | @@ -370,11 +370,6 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma, | ||
520 | /* mlock all present pages, but do not fault in new pages */ | ||
521 | if ((*flags & (FOLL_POPULATE | FOLL_MLOCK)) == FOLL_MLOCK) | ||
522 | return -ENOENT; | ||
523 | - /* For mm_populate(), just skip the stack guard page. */ | ||
524 | - if ((*flags & FOLL_POPULATE) && | ||
525 | - (stack_guard_page_start(vma, address) || | ||
526 | - stack_guard_page_end(vma, address + PAGE_SIZE))) | ||
527 | - return -ENOENT; | ||
528 | if (*flags & FOLL_WRITE) | ||
529 | fault_flags |= FAULT_FLAG_WRITE; | ||
530 | if (*flags & FOLL_REMOTE) | ||
531 | diff --git a/mm/memory.c b/mm/memory.c | ||
532 | index cbb1e5e..e6a5a1f 100644 | ||
533 | --- a/mm/memory.c | ||
534 | +++ b/mm/memory.c | ||
535 | @@ -2699,40 +2699,6 @@ int do_swap_page(struct fault_env *fe, pte_t orig_pte) | ||
536 | } | ||
537 | |||
538 | /* | ||
539 | - * This is like a special single-page "expand_{down|up}wards()", | ||
540 | - * except we must first make sure that 'address{-|+}PAGE_SIZE' | ||
541 | - * doesn't hit another vma. | ||
542 | - */ | ||
543 | -static inline int check_stack_guard_page(struct vm_area_struct *vma, unsigned long address) | ||
544 | -{ | ||
545 | - address &= PAGE_MASK; | ||
546 | - if ((vma->vm_flags & VM_GROWSDOWN) && address == vma->vm_start) { | ||
547 | - struct vm_area_struct *prev = vma->vm_prev; | ||
548 | - | ||
549 | - /* | ||
550 | - * Is there a mapping abutting this one below? | ||
551 | - * | ||
552 | - * That's only ok if it's the same stack mapping | ||
553 | - * that has gotten split.. | ||
554 | - */ | ||
555 | - if (prev && prev->vm_end == address) | ||
556 | - return prev->vm_flags & VM_GROWSDOWN ? 0 : -ENOMEM; | ||
557 | - | ||
558 | - return expand_downwards(vma, address - PAGE_SIZE); | ||
559 | - } | ||
560 | - if ((vma->vm_flags & VM_GROWSUP) && address + PAGE_SIZE == vma->vm_end) { | ||
561 | - struct vm_area_struct *next = vma->vm_next; | ||
562 | - | ||
563 | - /* As VM_GROWSDOWN but s/below/above/ */ | ||
564 | - if (next && next->vm_start == address + PAGE_SIZE) | ||
565 | - return next->vm_flags & VM_GROWSUP ? 0 : -ENOMEM; | ||
566 | - | ||
567 | - return expand_upwards(vma, address + PAGE_SIZE); | ||
568 | - } | ||
569 | - return 0; | ||
570 | -} | ||
571 | - | ||
572 | -/* | ||
573 | * We enter with non-exclusive mmap_sem (to exclude vma changes, | ||
574 | * but allow concurrent faults), and pte mapped but not yet locked. | ||
575 | * We return with mmap_sem still held, but pte unmapped and unlocked. | ||
576 | @@ -2748,10 +2714,6 @@ static int do_anonymous_page(struct fault_env *fe) | ||
577 | if (vma->vm_flags & VM_SHARED) | ||
578 | return VM_FAULT_SIGBUS; | ||
579 | |||
580 | - /* Check if we need to add a guard page to the stack */ | ||
581 | - if (check_stack_guard_page(vma, fe->address) < 0) | ||
582 | - return VM_FAULT_SIGSEGV; | ||
583 | - | ||
584 | /* | ||
585 | * Use pte_alloc() instead of pte_alloc_map(). We can't run | ||
586 | * pte_offset_map() on pmds where a huge pmd might be created | ||
587 | diff --git a/mm/mmap.c b/mm/mmap.c | ||
588 | index 1af87c1..26542b3 100644 | ||
589 | --- a/mm/mmap.c | ||
590 | +++ b/mm/mmap.c | ||
591 | @@ -183,6 +183,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) | ||
592 | unsigned long retval; | ||
593 | unsigned long newbrk, oldbrk; | ||
594 | struct mm_struct *mm = current->mm; | ||
595 | + struct vm_area_struct *next; | ||
596 | unsigned long min_brk; | ||
597 | bool populate; | ||
598 | |||
599 | @@ -228,7 +229,8 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) | ||
600 | } | ||
601 | |||
602 | /* Check against existing mmap mappings. */ | ||
603 | - if (find_vma_intersection(mm, oldbrk, newbrk+PAGE_SIZE)) | ||
604 | + next = find_vma(mm, oldbrk); | ||
605 | + if (next && newbrk + PAGE_SIZE > vm_start_gap(next)) | ||
606 | goto out; | ||
607 | |||
608 | /* Ok, looks good - let it rip. */ | ||
609 | @@ -251,10 +253,22 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) | ||
610 | |||
611 | static long vma_compute_subtree_gap(struct vm_area_struct *vma) | ||
612 | { | ||
613 | - unsigned long max, subtree_gap; | ||
614 | - max = vma->vm_start; | ||
615 | - if (vma->vm_prev) | ||
616 | - max -= vma->vm_prev->vm_end; | ||
617 | + unsigned long max, prev_end, subtree_gap; | ||
618 | + | ||
619 | + /* | ||
620 | + * Note: in the rare case of a VM_GROWSDOWN above a VM_GROWSUP, we | ||
621 | + * allow two stack_guard_gaps between them here, and when choosing | ||
622 | + * an unmapped area; whereas when expanding we only require one. | ||
623 | + * That's a little inconsistent, but keeps the code here simpler. | ||
624 | + */ | ||
625 | + max = vm_start_gap(vma); | ||
626 | + if (vma->vm_prev) { | ||
627 | + prev_end = vm_end_gap(vma->vm_prev); | ||
628 | + if (max > prev_end) | ||
629 | + max -= prev_end; | ||
630 | + else | ||
631 | + max = 0; | ||
632 | + } | ||
633 | if (vma->vm_rb.rb_left) { | ||
634 | subtree_gap = rb_entry(vma->vm_rb.rb_left, | ||
635 | struct vm_area_struct, vm_rb)->rb_subtree_gap; | ||
636 | @@ -350,7 +364,7 @@ static void validate_mm(struct mm_struct *mm) | ||
637 | anon_vma_unlock_read(anon_vma); | ||
638 | } | ||
639 | |||
640 | - highest_address = vma->vm_end; | ||
641 | + highest_address = vm_end_gap(vma); | ||
642 | vma = vma->vm_next; | ||
643 | i++; | ||
644 | } | ||
645 | @@ -539,7 +553,7 @@ void __vma_link_rb(struct mm_struct *mm, struct vm_area_struct *vma, | ||
646 | if (vma->vm_next) | ||
647 | vma_gap_update(vma->vm_next); | ||
648 | else | ||
649 | - mm->highest_vm_end = vma->vm_end; | ||
650 | + mm->highest_vm_end = vm_end_gap(vma); | ||
651 | |||
652 | /* | ||
653 | * vma->vm_prev wasn't known when we followed the rbtree to find the | ||
654 | @@ -854,7 +868,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, | ||
655 | vma_gap_update(vma); | ||
656 | if (end_changed) { | ||
657 | if (!next) | ||
658 | - mm->highest_vm_end = end; | ||
659 | + mm->highest_vm_end = vm_end_gap(vma); | ||
660 | else if (!adjust_next) | ||
661 | vma_gap_update(next); | ||
662 | } | ||
663 | @@ -939,7 +953,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, | ||
664 | * mm->highest_vm_end doesn't need any update | ||
665 | * in remove_next == 1 case. | ||
666 | */ | ||
667 | - VM_WARN_ON(mm->highest_vm_end != end); | ||
668 | + VM_WARN_ON(mm->highest_vm_end != vm_end_gap(vma)); | ||
669 | } | ||
670 | } | ||
671 | if (insert && file) | ||
672 | @@ -1783,7 +1797,7 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info) | ||
673 | |||
674 | while (true) { | ||
675 | /* Visit left subtree if it looks promising */ | ||
676 | - gap_end = vma->vm_start; | ||
677 | + gap_end = vm_start_gap(vma); | ||
678 | if (gap_end >= low_limit && vma->vm_rb.rb_left) { | ||
679 | struct vm_area_struct *left = | ||
680 | rb_entry(vma->vm_rb.rb_left, | ||
681 | @@ -1794,7 +1808,7 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info) | ||
682 | } | ||
683 | } | ||
684 | |||
685 | - gap_start = vma->vm_prev ? vma->vm_prev->vm_end : 0; | ||
686 | + gap_start = vma->vm_prev ? vm_end_gap(vma->vm_prev) : 0; | ||
687 | check_current: | ||
688 | /* Check if current node has a suitable gap */ | ||
689 | if (gap_start > high_limit) | ||
690 | @@ -1821,8 +1835,8 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info) | ||
691 | vma = rb_entry(rb_parent(prev), | ||
692 | struct vm_area_struct, vm_rb); | ||
693 | if (prev == vma->vm_rb.rb_left) { | ||
694 | - gap_start = vma->vm_prev->vm_end; | ||
695 | - gap_end = vma->vm_start; | ||
696 | + gap_start = vm_end_gap(vma->vm_prev); | ||
697 | + gap_end = vm_start_gap(vma); | ||
698 | goto check_current; | ||
699 | } | ||
700 | } | ||
701 | @@ -1886,7 +1900,7 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) | ||
702 | |||
703 | while (true) { | ||
704 | /* Visit right subtree if it looks promising */ | ||
705 | - gap_start = vma->vm_prev ? vma->vm_prev->vm_end : 0; | ||
706 | + gap_start = vma->vm_prev ? vm_end_gap(vma->vm_prev) : 0; | ||
707 | if (gap_start <= high_limit && vma->vm_rb.rb_right) { | ||
708 | struct vm_area_struct *right = | ||
709 | rb_entry(vma->vm_rb.rb_right, | ||
710 | @@ -1899,7 +1913,7 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) | ||
711 | |||
712 | check_current: | ||
713 | /* Check if current node has a suitable gap */ | ||
714 | - gap_end = vma->vm_start; | ||
715 | + gap_end = vm_start_gap(vma); | ||
716 | if (gap_end < low_limit) | ||
717 | return -ENOMEM; | ||
718 | if (gap_start <= high_limit && gap_end - gap_start >= length) | ||
719 | @@ -1925,7 +1939,7 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) | ||
720 | struct vm_area_struct, vm_rb); | ||
721 | if (prev == vma->vm_rb.rb_right) { | ||
722 | gap_start = vma->vm_prev ? | ||
723 | - vma->vm_prev->vm_end : 0; | ||
724 | + vm_end_gap(vma->vm_prev) : 0; | ||
725 | goto check_current; | ||
726 | } | ||
727 | } | ||
728 | @@ -1963,7 +1977,7 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) | ||
729 | unsigned long len, unsigned long pgoff, unsigned long flags) | ||
730 | { | ||
731 | struct mm_struct *mm = current->mm; | ||
732 | - struct vm_area_struct *vma; | ||
733 | + struct vm_area_struct *vma, *prev; | ||
734 | struct vm_unmapped_area_info info; | ||
735 | |||
736 | if (len > TASK_SIZE - mmap_min_addr) | ||
737 | @@ -1974,9 +1988,10 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) | ||
738 | |||
739 | if (addr) { | ||
740 | addr = PAGE_ALIGN(addr); | ||
741 | - vma = find_vma(mm, addr); | ||
742 | + vma = find_vma_prev(mm, addr, &prev); | ||
743 | if (TASK_SIZE - len >= addr && addr >= mmap_min_addr && | ||
744 | - (!vma || addr + len <= vma->vm_start)) | ||
745 | + (!vma || addr + len <= vm_start_gap(vma)) && | ||
746 | + (!prev || addr >= vm_end_gap(prev))) | ||
747 | return addr; | ||
748 | } | ||
749 | |||
750 | @@ -1999,7 +2014,7 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) | ||
751 | const unsigned long len, const unsigned long pgoff, | ||
752 | const unsigned long flags) | ||
753 | { | ||
754 | - struct vm_area_struct *vma; | ||
755 | + struct vm_area_struct *vma, *prev; | ||
756 | struct mm_struct *mm = current->mm; | ||
757 | unsigned long addr = addr0; | ||
758 | struct vm_unmapped_area_info info; | ||
759 | @@ -2014,9 +2029,10 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) | ||
760 | /* requesting a specific address */ | ||
761 | if (addr) { | ||
762 | addr = PAGE_ALIGN(addr); | ||
763 | - vma = find_vma(mm, addr); | ||
764 | + vma = find_vma_prev(mm, addr, &prev); | ||
765 | if (TASK_SIZE - len >= addr && addr >= mmap_min_addr && | ||
766 | - (!vma || addr + len <= vma->vm_start)) | ||
767 | + (!vma || addr + len <= vm_start_gap(vma)) && | ||
768 | + (!prev || addr >= vm_end_gap(prev))) | ||
769 | return addr; | ||
770 | } | ||
771 | |||
772 | @@ -2151,21 +2167,19 @@ struct vm_area_struct * | ||
773 | * update accounting. This is shared with both the | ||
774 | * grow-up and grow-down cases. | ||
775 | */ | ||
776 | -static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, unsigned long grow) | ||
777 | +static int acct_stack_growth(struct vm_area_struct *vma, | ||
778 | + unsigned long size, unsigned long grow) | ||
779 | { | ||
780 | struct mm_struct *mm = vma->vm_mm; | ||
781 | struct rlimit *rlim = current->signal->rlim; | ||
782 | - unsigned long new_start, actual_size; | ||
783 | + unsigned long new_start; | ||
784 | |||
785 | /* address space limit tests */ | ||
786 | if (!may_expand_vm(mm, vma->vm_flags, grow)) | ||
787 | return -ENOMEM; | ||
788 | |||
789 | /* Stack limit test */ | ||
790 | - actual_size = size; | ||
791 | - if (size && (vma->vm_flags & (VM_GROWSUP | VM_GROWSDOWN))) | ||
792 | - actual_size -= PAGE_SIZE; | ||
793 | - if (actual_size > READ_ONCE(rlim[RLIMIT_STACK].rlim_cur)) | ||
794 | + if (size > READ_ONCE(rlim[RLIMIT_STACK].rlim_cur)) | ||
795 | return -ENOMEM; | ||
796 | |||
797 | /* mlock limit tests */ | ||
798 | @@ -2203,17 +2217,30 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns | ||
799 | int expand_upwards(struct vm_area_struct *vma, unsigned long address) | ||
800 | { | ||
801 | struct mm_struct *mm = vma->vm_mm; | ||
802 | + struct vm_area_struct *next; | ||
803 | + unsigned long gap_addr; | ||
804 | int error = 0; | ||
805 | |||
806 | if (!(vma->vm_flags & VM_GROWSUP)) | ||
807 | return -EFAULT; | ||
808 | |||
809 | /* Guard against wrapping around to address 0. */ | ||
810 | - if (address < PAGE_ALIGN(address+4)) | ||
811 | - address = PAGE_ALIGN(address+4); | ||
812 | - else | ||
813 | + address &= PAGE_MASK; | ||
814 | + address += PAGE_SIZE; | ||
815 | + if (!address) | ||
816 | return -ENOMEM; | ||
817 | |||
818 | + /* Enforce stack_guard_gap */ | ||
819 | + gap_addr = address + stack_guard_gap; | ||
820 | + if (gap_addr < address) | ||
821 | + return -ENOMEM; | ||
822 | + next = vma->vm_next; | ||
823 | + if (next && next->vm_start < gap_addr) { | ||
824 | + if (!(next->vm_flags & VM_GROWSUP)) | ||
825 | + return -ENOMEM; | ||
826 | + /* Check that both stack segments have the same anon_vma? */ | ||
827 | + } | ||
828 | + | ||
829 | /* We must make sure the anon_vma is allocated. */ | ||
830 | if (unlikely(anon_vma_prepare(vma))) | ||
831 | return -ENOMEM; | ||
832 | @@ -2257,7 +2284,7 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) | ||
833 | if (vma->vm_next) | ||
834 | vma_gap_update(vma->vm_next); | ||
835 | else | ||
836 | - mm->highest_vm_end = address; | ||
837 | + mm->highest_vm_end = vm_end_gap(vma); | ||
838 | spin_unlock(&mm->page_table_lock); | ||
839 | |||
840 | perf_event_mmap(vma); | ||
841 | @@ -2278,6 +2305,8 @@ int expand_downwards(struct vm_area_struct *vma, | ||
842 | unsigned long address) | ||
843 | { | ||
844 | struct mm_struct *mm = vma->vm_mm; | ||
845 | + struct vm_area_struct *prev; | ||
846 | + unsigned long gap_addr; | ||
847 | int error; | ||
848 | |||
849 | address &= PAGE_MASK; | ||
850 | @@ -2285,6 +2314,17 @@ int expand_downwards(struct vm_area_struct *vma, | ||
851 | if (error) | ||
852 | return error; | ||
853 | |||
854 | + /* Enforce stack_guard_gap */ | ||
855 | + gap_addr = address - stack_guard_gap; | ||
856 | + if (gap_addr > address) | ||
857 | + return -ENOMEM; | ||
858 | + prev = vma->vm_prev; | ||
859 | + if (prev && prev->vm_end > gap_addr) { | ||
860 | + if (!(prev->vm_flags & VM_GROWSDOWN)) | ||
861 | + return -ENOMEM; | ||
862 | + /* Check that both stack segments have the same anon_vma? */ | ||
863 | + } | ||
864 | + | ||
865 | /* We must make sure the anon_vma is allocated. */ | ||
866 | if (unlikely(anon_vma_prepare(vma))) | ||
867 | return -ENOMEM; | ||
868 | @@ -2339,28 +2379,25 @@ int expand_downwards(struct vm_area_struct *vma, | ||
869 | return error; | ||
870 | } | ||
871 | |||
872 | -/* | ||
873 | - * Note how expand_stack() refuses to expand the stack all the way to | ||
874 | - * abut the next virtual mapping, *unless* that mapping itself is also | ||
875 | - * a stack mapping. We want to leave room for a guard page, after all | ||
876 | - * (the guard page itself is not added here, that is done by the | ||
877 | - * actual page faulting logic) | ||
878 | - * | ||
879 | - * This matches the behavior of the guard page logic (see mm/memory.c: | ||
880 | - * check_stack_guard_page()), which only allows the guard page to be | ||
881 | - * removed under these circumstances. | ||
882 | - */ | ||
883 | +/* enforced gap between the expanding stack and other mappings. */ | ||
884 | +unsigned long stack_guard_gap = 256UL<<PAGE_SHIFT; | ||
885 | + | ||
886 | +static int __init cmdline_parse_stack_guard_gap(char *p) | ||
887 | +{ | ||
888 | + unsigned long val; | ||
889 | + char *endptr; | ||
890 | + | ||
891 | + val = simple_strtoul(p, &endptr, 10); | ||
892 | + if (!*endptr) | ||
893 | + stack_guard_gap = val << PAGE_SHIFT; | ||
894 | + | ||
895 | + return 0; | ||
896 | +} | ||
897 | +__setup("stack_guard_gap=", cmdline_parse_stack_guard_gap); | ||
898 | + | ||
899 | #ifdef CONFIG_STACK_GROWSUP | ||
900 | int expand_stack(struct vm_area_struct *vma, unsigned long address) | ||
901 | { | ||
902 | - struct vm_area_struct *next; | ||
903 | - | ||
904 | - address &= PAGE_MASK; | ||
905 | - next = vma->vm_next; | ||
906 | - if (next && next->vm_start == address + PAGE_SIZE) { | ||
907 | - if (!(next->vm_flags & VM_GROWSUP)) | ||
908 | - return -ENOMEM; | ||
909 | - } | ||
910 | return expand_upwards(vma, address); | ||
911 | } | ||
912 | |||
913 | @@ -2382,14 +2419,6 @@ struct vm_area_struct * | ||
914 | #else | ||
915 | int expand_stack(struct vm_area_struct *vma, unsigned long address) | ||
916 | { | ||
917 | - struct vm_area_struct *prev; | ||
918 | - | ||
919 | - address &= PAGE_MASK; | ||
920 | - prev = vma->vm_prev; | ||
921 | - if (prev && prev->vm_end == address) { | ||
922 | - if (!(prev->vm_flags & VM_GROWSDOWN)) | ||
923 | - return -ENOMEM; | ||
924 | - } | ||
925 | return expand_downwards(vma, address); | ||
926 | } | ||
927 | |||
928 | @@ -2487,7 +2516,7 @@ static void unmap_region(struct mm_struct *mm, | ||
929 | vma->vm_prev = prev; | ||
930 | vma_gap_update(vma); | ||
931 | } else | ||
932 | - mm->highest_vm_end = prev ? prev->vm_end : 0; | ||
933 | + mm->highest_vm_end = prev ? vm_end_gap(prev) : 0; | ||
934 | tail_vma->vm_next = NULL; | ||
935 | |||
936 | /* Kill the cache */ | ||
937 | -- | ||
938 | 1.9.1 | ||
939 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-11176.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-11176.patch deleted file mode 100644 index a6bc539..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-11176.patch +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | From f991af3daabaecff34684fd51fac80319d1baad1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Cong Wang <xiyou.wangcong@gmail.com> | ||
3 | Date: Sun, 9 Jul 2017 13:19:55 -0700 | ||
4 | Subject: mqueue: fix a use-after-free in sys_mq_notify() | ||
5 | |||
6 | The retry logic for netlink_attachskb() inside sys_mq_notify() | ||
7 | is nasty and vulnerable: | ||
8 | |||
9 | 1) The sock refcnt is already released when retry is needed | ||
10 | 2) The fd is controllable by user-space because we already | ||
11 | release the file refcnt | ||
12 | |||
13 | so we when retry but the fd has been just closed by user-space | ||
14 | during this small window, we end up calling netlink_detachskb() | ||
15 | on the error path which releases the sock again, later when | ||
16 | the user-space closes this socket a use-after-free could be | ||
17 | triggered. | ||
18 | |||
19 | Setting 'sock' to NULL here should be sufficient to fix it. | ||
20 | CVE: CVE-2017-11176 | ||
21 | Upstream-Status: Backport [from: https://git.kernel.org/linus/f991af3daabaecff34684fd51fac80319d1baad1] | ||
22 | |||
23 | Reported-by: GeneBlue <geneblue.mail@gmail.com> | ||
24 | Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> | ||
25 | Cc: Andrew Morton <akpm@linux-foundation.org> | ||
26 | Cc: Manfred Spraul <manfred@colorfullife.com> | ||
27 | Cc: stable@kernel.org | ||
28 | Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> | ||
29 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
30 | --- | ||
31 | ipc/mqueue.c | 4 +++- | ||
32 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
33 | |||
34 | diff --git a/ipc/mqueue.c b/ipc/mqueue.c | ||
35 | index c9ff943..eb1391b 100644 | ||
36 | --- a/ipc/mqueue.c | ||
37 | +++ b/ipc/mqueue.c | ||
38 | @@ -1270,8 +1270,10 @@ retry: | ||
39 | |||
40 | timeo = MAX_SCHEDULE_TIMEOUT; | ||
41 | ret = netlink_attachskb(sock, nc, &timeo, NULL); | ||
42 | - if (ret == 1) | ||
43 | + if (ret == 1) { | ||
44 | + sock = NULL; | ||
45 | goto retry; | ||
46 | + } | ||
47 | if (ret) { | ||
48 | sock = NULL; | ||
49 | nc = NULL; | ||
50 | -- | ||
51 | cgit v1.1 | ||
52 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-5551.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-5551.patch deleted file mode 100644 index 3865b5a..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-5551.patch +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | From 782b361c93062f083bbc9a78928498218f950399 Mon Sep 17 00:00:00 2001 | ||
2 | From: Gu Zheng <guzheng1@huawei.com> | ||
3 | Date: Mon, 9 Jan 2017 09:34:48 +0800 | ||
4 | Subject: [PATCH] tmpfs: clear S_ISGID when setting posix ACLs | ||
5 | |||
6 | commit 497de07d89c1410d76a15bec2bb41f24a2a89f31 upstream. | ||
7 | |||
8 | This change was missed the tmpfs modification in In CVE-2016-7097 | ||
9 | commit 073931017b49 ("posix_acl: Clear SGID bit when setting | ||
10 | file permissions") | ||
11 | It can test by xfstest generic/375, which failed to clear | ||
12 | setgid bit in the following test case on tmpfs: | ||
13 | |||
14 | touch $testfile | ||
15 | chown 100:100 $testfile | ||
16 | chmod 2755 $testfile | ||
17 | _runas -u 100 -g 101 -- setfacl -m u::rwx,g::rwx,o::rwx $testfile | ||
18 | |||
19 | CVE: CVE-2017-5551 | ||
20 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
21 | |||
22 | Signed-off-by: Gu Zheng <guzheng1@huawei.com> | ||
23 | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> | ||
24 | Cc: Brad Spengler <spender@grsecurity.net> | ||
25 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
26 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
27 | --- | ||
28 | fs/posix_acl.c | 9 ++++----- | ||
29 | 1 file changed, 4 insertions(+), 5 deletions(-) | ||
30 | |||
31 | diff --git a/fs/posix_acl.c b/fs/posix_acl.c | ||
32 | index 5955220..c9d48dc 100644 | ||
33 | --- a/fs/posix_acl.c | ||
34 | +++ b/fs/posix_acl.c | ||
35 | @@ -922,11 +922,10 @@ int simple_set_acl(struct inode *inode, struct posix_acl *acl, int type) | ||
36 | int error; | ||
37 | |||
38 | if (type == ACL_TYPE_ACCESS) { | ||
39 | - error = posix_acl_equiv_mode(acl, &inode->i_mode); | ||
40 | - if (error < 0) | ||
41 | - return 0; | ||
42 | - if (error == 0) | ||
43 | - acl = NULL; | ||
44 | + error = posix_acl_update_mode(inode, | ||
45 | + &inode->i_mode, &acl); | ||
46 | + if (error) | ||
47 | + return error; | ||
48 | } | ||
49 | |||
50 | inode->i_ctime = current_time(inode); | ||
51 | -- | ||
52 | 1.9.1 | ||
53 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-5577.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-5577.patch deleted file mode 100644 index e50e108..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-5577.patch +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | From cfba2a001d0e36905016bb4f87fc47245c944c36 Mon Sep 17 00:00:00 2001 | ||
2 | From: Eric Anholt <eric@anholt.net> | ||
3 | Date: Tue, 17 Jan 2017 21:58:06 +1100 | ||
4 | Subject: [PATCH] drm/vc4: Return -EINVAL on the overflow checks failing. | ||
5 | |||
6 | commit 6b8ac63847bc2f958dd93c09edc941a0118992d9 upstream. | ||
7 | |||
8 | By failing to set the errno, we'd continue on to trying to set up the | ||
9 | RCL, and then oops on trying to dereference the tile_bo that binning | ||
10 | validation should have set up. | ||
11 | |||
12 | CVE: CVE-2017-5577 | ||
13 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
14 | |||
15 | Reported-by: Ingo Molnar <mingo@kernel.org> | ||
16 | Signed-off-by: Eric Anholt <eric@anholt.net> | ||
17 | Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.") | ||
18 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
19 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
20 | --- | ||
21 | drivers/gpu/drm/vc4/vc4_gem.c | 1 + | ||
22 | 1 file changed, 1 insertion(+) | ||
23 | |||
24 | diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c | ||
25 | index 39ef674..18e3717 100644 | ||
26 | --- a/drivers/gpu/drm/vc4/vc4_gem.c | ||
27 | +++ b/drivers/gpu/drm/vc4/vc4_gem.c | ||
28 | @@ -601,6 +601,7 @@ struct vc4_hang_state { | ||
29 | sizeof(struct vc4_shader_state)) || | ||
30 | temp_size < exec_size) { | ||
31 | DRM_ERROR("overflow in exec arguments\n"); | ||
32 | + ret = -EINVAL; | ||
33 | goto fail; | ||
34 | } | ||
35 | |||
36 | -- | ||
37 | 1.9.1 | ||
38 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-5669.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-5669.patch deleted file mode 100644 index 7dcd09a..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-5669.patch +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
1 | From 270e84a1e6effd6c0c6e9b13b196b5fdaa392954 Mon Sep 17 00:00:00 2001 | ||
2 | From: Davidlohr Bueso <dave@stgolabs.net> | ||
3 | Date: Mon, 27 Feb 2017 14:28:24 -0800 | ||
4 | Subject: [PATCH] ipc/shm: Fix shmat mmap nil-page protection | ||
5 | |||
6 | commit 95e91b831f87ac8e1f8ed50c14d709089b4e01b8 upstream. | ||
7 | |||
8 | The issue is described here, with a nice testcase: | ||
9 | |||
10 | https://bugzilla.kernel.org/show_bug.cgi?id=192931 | ||
11 | |||
12 | The problem is that shmat() calls do_mmap_pgoff() with MAP_FIXED, and | ||
13 | the address rounded down to 0. For the regular mmap case, the | ||
14 | protection mentioned above is that the kernel gets to generate the | ||
15 | address -- arch_get_unmapped_area() will always check for MAP_FIXED and | ||
16 | return that address. So by the time we do security_mmap_addr(0) things | ||
17 | get funky for shmat(). | ||
18 | |||
19 | The testcase itself shows that while a regular user crashes, root will | ||
20 | not have a problem attaching a nil-page. There are two possible fixes | ||
21 | to this. The first, and which this patch does, is to simply allow root | ||
22 | to crash as well -- this is also regular mmap behavior, ie when hacking | ||
23 | up the testcase and adding mmap(... |MAP_FIXED). While this approach | ||
24 | is the safer option, the second alternative is to ignore SHM_RND if the | ||
25 | rounded address is 0, thus only having MAP_SHARED flags. This makes the | ||
26 | behavior of shmat() identical to the mmap() case. The downside of this | ||
27 | is obviously user visible, but does make sense in that it maintains | ||
28 | semantics after the round-down wrt 0 address and mmap. | ||
29 | |||
30 | Passes shm related ltp tests. | ||
31 | |||
32 | CVE: CVE-2017-5669 | ||
33 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
34 | |||
35 | Link: http://lkml.kernel.org/r/1486050195-18629-1-git-send-email-dave@stgolabs.net | ||
36 | Signed-off-by: Davidlohr Bueso <dbueso@suse.de> | ||
37 | Reported-by: Gareth Evans <gareth.evans@contextis.co.uk> | ||
38 | Cc: Manfred Spraul <manfred@colorfullife.com> | ||
39 | Cc: Michael Kerrisk <mtk.manpages@googlemail.com> | ||
40 | Signed-off-by: Andrew Morton <akpm@linux-foundation.org> | ||
41 | Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> | ||
42 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
43 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
44 | --- | ||
45 | ipc/shm.c | 13 +++++++++---- | ||
46 | 1 file changed, 9 insertions(+), 4 deletions(-) | ||
47 | |||
48 | diff --git a/ipc/shm.c b/ipc/shm.c | ||
49 | index dbac886..e2072ae 100644 | ||
50 | --- a/ipc/shm.c | ||
51 | +++ b/ipc/shm.c | ||
52 | @@ -1085,8 +1085,8 @@ static int shmctl_nolock(struct ipc_namespace *ns, int shmid, | ||
53 | * "raddr" thing points to kernel space, and there has to be a wrapper around | ||
54 | * this. | ||
55 | */ | ||
56 | -long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, | ||
57 | - unsigned long shmlba) | ||
58 | +long do_shmat(int shmid, char __user *shmaddr, int shmflg, | ||
59 | + ulong *raddr, unsigned long shmlba) | ||
60 | { | ||
61 | struct shmid_kernel *shp; | ||
62 | unsigned long addr; | ||
63 | @@ -1107,8 +1107,13 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr, | ||
64 | goto out; | ||
65 | else if ((addr = (ulong)shmaddr)) { | ||
66 | if (addr & (shmlba - 1)) { | ||
67 | - if (shmflg & SHM_RND) | ||
68 | - addr &= ~(shmlba - 1); /* round down */ | ||
69 | + /* | ||
70 | + * Round down to the nearest multiple of shmlba. | ||
71 | + * For sane do_mmap_pgoff() parameters, avoid | ||
72 | + * round downs that trigger nil-page and MAP_FIXED. | ||
73 | + */ | ||
74 | + if ((shmflg & SHM_RND) && addr >= shmlba) | ||
75 | + addr &= ~(shmlba - 1); | ||
76 | else | ||
77 | #ifndef __ARCH_FORCE_SHMLBA | ||
78 | if (addr & ~PAGE_MASK) | ||
79 | -- | ||
80 | 1.9.1 | ||
81 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-5970.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-5970.patch deleted file mode 100644 index ddfcca1..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-5970.patch +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | From f5b54446630a973e1f27b68599366bbd0ac53066 Mon Sep 17 00:00:00 2001 | ||
2 | From: Eric Dumazet <edumazet@google.com> | ||
3 | Date: Sat, 4 Feb 2017 11:16:52 -0800 | ||
4 | Subject: [PATCH] ipv4: keep skb->dst around in presence of IP options | ||
5 | |||
6 | [ Upstream commit 34b2cef20f19c87999fff3da4071e66937db9644 ] | ||
7 | |||
8 | Andrey Konovalov got crashes in __ip_options_echo() when a NULL skb->dst | ||
9 | is accessed. | ||
10 | |||
11 | ipv4_pktinfo_prepare() should not drop the dst if (evil) IP options | ||
12 | are present. | ||
13 | |||
14 | We could refine the test to the presence of ts_needtime or srr, | ||
15 | but IP options are not often used, so let's be conservative. | ||
16 | |||
17 | Thanks to syzkaller team for finding this bug. | ||
18 | |||
19 | CVE: CVE-2017-5970 | ||
20 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
21 | |||
22 | Fixes: d826eb14ecef ("ipv4: PKTINFO doesnt need dst reference") | ||
23 | Signed-off-by: Eric Dumazet <edumazet@google.com> | ||
24 | Reported-by: Andrey Konovalov <andreyknvl@google.com> | ||
25 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
26 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
27 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
28 | --- | ||
29 | net/ipv4/ip_sockglue.c | 9 ++++++++- | ||
30 | 1 file changed, 8 insertions(+), 1 deletion(-) | ||
31 | |||
32 | diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c | ||
33 | index f226f408..65336f3 100644 | ||
34 | --- a/net/ipv4/ip_sockglue.c | ||
35 | +++ b/net/ipv4/ip_sockglue.c | ||
36 | @@ -1215,7 +1215,14 @@ void ipv4_pktinfo_prepare(const struct sock *sk, struct sk_buff *skb) | ||
37 | pktinfo->ipi_ifindex = 0; | ||
38 | pktinfo->ipi_spec_dst.s_addr = 0; | ||
39 | } | ||
40 | - skb_dst_drop(skb); | ||
41 | + /* We need to keep the dst for __ip_options_echo() | ||
42 | + * We could restrict the test to opt.ts_needtime || opt.srr, | ||
43 | + * but the following is good enough as IP options are not often used. | ||
44 | + */ | ||
45 | + if (unlikely(IPCB(skb)->opt.optlen)) | ||
46 | + skb_dst_force(skb); | ||
47 | + else | ||
48 | + skb_dst_drop(skb); | ||
49 | } | ||
50 | |||
51 | int ip_setsockopt(struct sock *sk, int level, | ||
52 | -- | ||
53 | 1.9.1 | ||
54 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-5986.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-5986.patch deleted file mode 100644 index 6750cd5..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-5986.patch +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | From 00eff2ebbd229758e90659907724c14dd5a18339 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> | ||
3 | Date: Mon, 6 Feb 2017 18:10:31 -0200 | ||
4 | Subject: [PATCH] sctp: avoid BUG_ON on sctp_wait_for_sndbuf | ||
5 | |||
6 | [ Upstream commit 2dcab598484185dea7ec22219c76dcdd59e3cb90 ] | ||
7 | |||
8 | Alexander Popov reported that an application may trigger a BUG_ON in | ||
9 | sctp_wait_for_sndbuf if the socket tx buffer is full, a thread is | ||
10 | waiting on it to queue more data and meanwhile another thread peels off | ||
11 | the association being used by the first thread. | ||
12 | |||
13 | This patch replaces the BUG_ON call with a proper error handling. It | ||
14 | will return -EPIPE to the original sendmsg call, similarly to what would | ||
15 | have been done if the association wasn't found in the first place. | ||
16 | |||
17 | CVE: CVE-2017-5986 | ||
18 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
19 | |||
20 | Acked-by: Alexander Popov <alex.popov@linux.com> | ||
21 | Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> | ||
22 | Reviewed-by: Xin Long <lucien.xin@gmail.com> | ||
23 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
24 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
25 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
26 | --- | ||
27 | net/sctp/socket.c | 3 ++- | ||
28 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
29 | |||
30 | diff --git a/net/sctp/socket.c b/net/sctp/socket.c | ||
31 | index ca12aa3..6cbe5bd 100644 | ||
32 | --- a/net/sctp/socket.c | ||
33 | +++ b/net/sctp/socket.c | ||
34 | @@ -7427,7 +7427,8 @@ static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p, | ||
35 | */ | ||
36 | release_sock(sk); | ||
37 | current_timeo = schedule_timeout(current_timeo); | ||
38 | - BUG_ON(sk != asoc->base.sk); | ||
39 | + if (sk != asoc->base.sk) | ||
40 | + goto do_error; | ||
41 | lock_sock(sk); | ||
42 | |||
43 | *timeo_p = current_timeo; | ||
44 | -- | ||
45 | 1.9.1 | ||
46 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-6214.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-6214.patch deleted file mode 100644 index 640ed5c..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-6214.patch +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | From 0f895f51a831d73ce24158534784aba5b2a72a9e Mon Sep 17 00:00:00 2001 | ||
2 | From: Eric Dumazet <edumazet@google.com> | ||
3 | Date: Fri, 3 Feb 2017 14:59:38 -0800 | ||
4 | Subject: [PATCH] tcp: avoid infinite loop in tcp_splice_read() | ||
5 | |||
6 | [ Upstream commit ccf7abb93af09ad0868ae9033d1ca8108bdaec82 ] | ||
7 | |||
8 | Splicing from TCP socket is vulnerable when a packet with URG flag is | ||
9 | received and stored into receive queue. | ||
10 | |||
11 | __tcp_splice_read() returns 0, and sk_wait_data() immediately | ||
12 | returns since there is the problematic skb in queue. | ||
13 | |||
14 | This is a nice way to burn cpu (aka infinite loop) and trigger | ||
15 | soft lockups. | ||
16 | |||
17 | Again, this gem was found by syzkaller tool. | ||
18 | |||
19 | CVE: CVE-2017-6214 | ||
20 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
21 | |||
22 | Fixes: 9c55e01c0cc8 ("[TCP]: Splice receive support.") | ||
23 | Signed-off-by: Eric Dumazet <edumazet@google.com> | ||
24 | Reported-by: Dmitry Vyukov <dvyukov@google.com> | ||
25 | Cc: Willy Tarreau <w@1wt.eu> | ||
26 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
27 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
28 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
29 | --- | ||
30 | net/ipv4/tcp.c | 6 ++++++ | ||
31 | 1 file changed, 6 insertions(+) | ||
32 | |||
33 | diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c | ||
34 | index 814af89..6a90a0e 100644 | ||
35 | --- a/net/ipv4/tcp.c | ||
36 | +++ b/net/ipv4/tcp.c | ||
37 | @@ -772,6 +772,12 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos, | ||
38 | ret = -EAGAIN; | ||
39 | break; | ||
40 | } | ||
41 | + /* if __tcp_splice_read() got nothing while we have | ||
42 | + * an skb in receive queue, we do not want to loop. | ||
43 | + * This might happen with URG data. | ||
44 | + */ | ||
45 | + if (!skb_queue_empty(&sk->sk_receive_queue)) | ||
46 | + break; | ||
47 | sk_wait_data(sk, &timeo, NULL); | ||
48 | if (signal_pending(current)) { | ||
49 | ret = sock_intr_errno(timeo); | ||
50 | -- | ||
51 | 1.9.1 | ||
52 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-6345.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-6345.patch deleted file mode 100644 index b0ac548..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-6345.patch +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | From 42b52783a59cc706c71cdc7096edce4a6f086fd3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Eric Dumazet <edumazet@google.com> | ||
3 | Date: Sun, 12 Feb 2017 14:03:52 -0800 | ||
4 | Subject: [PATCH] net/llc: avoid BUG_ON() in skb_orphan() | ||
5 | |||
6 | [ Upstream commit 8b74d439e1697110c5e5c600643e823eb1dd0762 ] | ||
7 | |||
8 | It seems nobody used LLC since linux-3.12. | ||
9 | |||
10 | Fortunately fuzzers like syzkaller still know how to run this code, | ||
11 | otherwise it would be no fun. | ||
12 | |||
13 | Setting skb->sk without skb->destructor leads to all kinds of | ||
14 | bugs, we now prefer to be very strict about it. | ||
15 | |||
16 | Ideally here we would use skb_set_owner() but this helper does not exist yet, | ||
17 | only CAN seems to have a private helper for that. | ||
18 | |||
19 | CVE: CVE-2017-6345 | ||
20 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
21 | |||
22 | Fixes: 376c7311bdb6 ("net: add a temporary sanity check in skb_orphan()") | ||
23 | Signed-off-by: Eric Dumazet <edumazet@google.com> | ||
24 | Reported-by: Andrey Konovalov <andreyknvl@google.com> | ||
25 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
26 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
27 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
28 | --- | ||
29 | net/llc/llc_conn.c | 3 +++ | ||
30 | net/llc/llc_sap.c | 3 +++ | ||
31 | 2 files changed, 6 insertions(+) | ||
32 | |||
33 | diff --git a/net/llc/llc_conn.c b/net/llc/llc_conn.c | ||
34 | index 3e821da..8bc5a1b 100644 | ||
35 | --- a/net/llc/llc_conn.c | ||
36 | +++ b/net/llc/llc_conn.c | ||
37 | @@ -821,7 +821,10 @@ void llc_conn_handler(struct llc_sap *sap, struct sk_buff *skb) | ||
38 | * another trick required to cope with how the PROCOM state | ||
39 | * machine works. -acme | ||
40 | */ | ||
41 | + skb_orphan(skb); | ||
42 | + sock_hold(sk); | ||
43 | skb->sk = sk; | ||
44 | + skb->destructor = sock_efree; | ||
45 | } | ||
46 | if (!sock_owned_by_user(sk)) | ||
47 | llc_conn_rcv(sk, skb); | ||
48 | diff --git a/net/llc/llc_sap.c b/net/llc/llc_sap.c | ||
49 | index d0e1e80..5404d0d 100644 | ||
50 | --- a/net/llc/llc_sap.c | ||
51 | +++ b/net/llc/llc_sap.c | ||
52 | @@ -290,7 +290,10 @@ static void llc_sap_rcv(struct llc_sap *sap, struct sk_buff *skb, | ||
53 | |||
54 | ev->type = LLC_SAP_EV_TYPE_PDU; | ||
55 | ev->reason = 0; | ||
56 | + skb_orphan(skb); | ||
57 | + sock_hold(sk); | ||
58 | skb->sk = sk; | ||
59 | + skb->destructor = sock_efree; | ||
60 | llc_sap_state_process(sap, skb); | ||
61 | } | ||
62 | |||
63 | -- | ||
64 | 1.9.1 | ||
65 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-6348.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-6348.patch deleted file mode 100644 index 5e355ae..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-6348.patch +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | From c2219da51664451149350e47321aa0fcf72a8b8f Mon Sep 17 00:00:00 2001 | ||
2 | From: "David S. Miller" <davem@davemloft.net> | ||
3 | Date: Fri, 17 Feb 2017 16:19:39 -0500 | ||
4 | Subject: [PATCH] irda: Fix lockdep annotations in hashbin_delete(). | ||
5 | |||
6 | [ Upstream commit 4c03b862b12f980456f9de92db6d508a4999b788 ] | ||
7 | |||
8 | A nested lock depth was added to the hasbin_delete() code but it | ||
9 | doesn't actually work some well and results in tons of lockdep splats. | ||
10 | |||
11 | Fix the code instead to properly drop the lock around the operation | ||
12 | and just keep peeking the head of the hashbin queue. | ||
13 | |||
14 | CVE: CVE-2017-6348 | ||
15 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
16 | |||
17 | Reported-by: Dmitry Vyukov <dvyukov@google.com> | ||
18 | Tested-by: Dmitry Vyukov <dvyukov@google.com> | ||
19 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
20 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
21 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
22 | --- | ||
23 | net/irda/irqueue.c | 34 ++++++++++++++++------------------ | ||
24 | 1 file changed, 16 insertions(+), 18 deletions(-) | ||
25 | |||
26 | diff --git a/net/irda/irqueue.c b/net/irda/irqueue.c | ||
27 | index acbe61c..160dc89 100644 | ||
28 | --- a/net/irda/irqueue.c | ||
29 | +++ b/net/irda/irqueue.c | ||
30 | @@ -383,9 +383,6 @@ hashbin_t *hashbin_new(int type) | ||
31 | * for deallocating this structure if it's complex. If not the user can | ||
32 | * just supply kfree, which should take care of the job. | ||
33 | */ | ||
34 | -#ifdef CONFIG_LOCKDEP | ||
35 | -static int hashbin_lock_depth = 0; | ||
36 | -#endif | ||
37 | int hashbin_delete( hashbin_t* hashbin, FREE_FUNC free_func) | ||
38 | { | ||
39 | irda_queue_t* queue; | ||
40 | @@ -396,22 +393,27 @@ int hashbin_delete( hashbin_t* hashbin, FREE_FUNC free_func) | ||
41 | IRDA_ASSERT(hashbin->magic == HB_MAGIC, return -1;); | ||
42 | |||
43 | /* Synchronize */ | ||
44 | - if ( hashbin->hb_type & HB_LOCK ) { | ||
45 | - spin_lock_irqsave_nested(&hashbin->hb_spinlock, flags, | ||
46 | - hashbin_lock_depth++); | ||
47 | - } | ||
48 | + if (hashbin->hb_type & HB_LOCK) | ||
49 | + spin_lock_irqsave(&hashbin->hb_spinlock, flags); | ||
50 | |||
51 | /* | ||
52 | * Free the entries in the hashbin, TODO: use hashbin_clear when | ||
53 | * it has been shown to work | ||
54 | */ | ||
55 | for (i = 0; i < HASHBIN_SIZE; i ++ ) { | ||
56 | - queue = dequeue_first((irda_queue_t**) &hashbin->hb_queue[i]); | ||
57 | - while (queue ) { | ||
58 | - if (free_func) | ||
59 | - (*free_func)(queue); | ||
60 | - queue = dequeue_first( | ||
61 | - (irda_queue_t**) &hashbin->hb_queue[i]); | ||
62 | + while (1) { | ||
63 | + queue = dequeue_first((irda_queue_t**) &hashbin->hb_queue[i]); | ||
64 | + | ||
65 | + if (!queue) | ||
66 | + break; | ||
67 | + | ||
68 | + if (free_func) { | ||
69 | + if (hashbin->hb_type & HB_LOCK) | ||
70 | + spin_unlock_irqrestore(&hashbin->hb_spinlock, flags); | ||
71 | + free_func(queue); | ||
72 | + if (hashbin->hb_type & HB_LOCK) | ||
73 | + spin_lock_irqsave(&hashbin->hb_spinlock, flags); | ||
74 | + } | ||
75 | } | ||
76 | } | ||
77 | |||
78 | @@ -420,12 +422,8 @@ int hashbin_delete( hashbin_t* hashbin, FREE_FUNC free_func) | ||
79 | hashbin->magic = ~HB_MAGIC; | ||
80 | |||
81 | /* Release lock */ | ||
82 | - if ( hashbin->hb_type & HB_LOCK) { | ||
83 | + if (hashbin->hb_type & HB_LOCK) | ||
84 | spin_unlock_irqrestore(&hashbin->hb_spinlock, flags); | ||
85 | -#ifdef CONFIG_LOCKDEP | ||
86 | - hashbin_lock_depth--; | ||
87 | -#endif | ||
88 | - } | ||
89 | |||
90 | /* | ||
91 | * Free the hashbin structure | ||
92 | -- | ||
93 | 1.9.1 | ||
94 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-6353.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-6353.patch deleted file mode 100644 index 3ff4dc7..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-6353.patch +++ /dev/null | |||
@@ -1,73 +0,0 @@ | |||
1 | From 35b9d61ea910c1ebd4652b32cc7d713f6689b4f4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> | ||
3 | Date: Thu, 23 Feb 2017 09:31:18 -0300 | ||
4 | Subject: [PATCH] sctp: deny peeloff operation on asocs with threads sleeping | ||
5 | on it | ||
6 | |||
7 | commit dfcb9f4f99f1e9a49e43398a7bfbf56927544af1 upstream. | ||
8 | |||
9 | commit 2dcab5984841 ("sctp: avoid BUG_ON on sctp_wait_for_sndbuf") | ||
10 | attempted to avoid a BUG_ON call when the association being used for a | ||
11 | sendmsg() is blocked waiting for more sndbuf and another thread did a | ||
12 | peeloff operation on such asoc, moving it to another socket. | ||
13 | |||
14 | As Ben Hutchings noticed, then in such case it would return without | ||
15 | locking back the socket and would cause two unlocks in a row. | ||
16 | |||
17 | Further analysis also revealed that it could allow a double free if the | ||
18 | application managed to peeloff the asoc that is created during the | ||
19 | sendmsg call, because then sctp_sendmsg() would try to free the asoc | ||
20 | that was created only for that call. | ||
21 | |||
22 | This patch takes another approach. It will deny the peeloff operation | ||
23 | if there is a thread sleeping on the asoc, so this situation doesn't | ||
24 | exist anymore. This avoids the issues described above and also honors | ||
25 | the syscalls that are already being handled (it can be multiple sendmsg | ||
26 | calls). | ||
27 | |||
28 | Joint work with Xin Long. | ||
29 | |||
30 | CVE: CVE-2017-6353 | ||
31 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
32 | |||
33 | Fixes: 2dcab5984841 ("sctp: avoid BUG_ON on sctp_wait_for_sndbuf") | ||
34 | Cc: Alexander Popov <alex.popov@linux.com> | ||
35 | Cc: Ben Hutchings <ben@decadent.org.uk> | ||
36 | Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> | ||
37 | Signed-off-by: Xin Long <lucien.xin@gmail.com> | ||
38 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
39 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
40 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
41 | --- | ||
42 | net/sctp/socket.c | 8 ++++++-- | ||
43 | 1 file changed, 6 insertions(+), 2 deletions(-) | ||
44 | |||
45 | diff --git a/net/sctp/socket.c b/net/sctp/socket.c | ||
46 | index 6cbe5bd..6734420 100644 | ||
47 | --- a/net/sctp/socket.c | ||
48 | +++ b/net/sctp/socket.c | ||
49 | @@ -4735,6 +4735,12 @@ int sctp_do_peeloff(struct sock *sk, sctp_assoc_t id, struct socket **sockp) | ||
50 | if (!asoc) | ||
51 | return -EINVAL; | ||
52 | |||
53 | + /* If there is a thread waiting on more sndbuf space for | ||
54 | + * sending on this asoc, it cannot be peeled. | ||
55 | + */ | ||
56 | + if (waitqueue_active(&asoc->wait)) | ||
57 | + return -EBUSY; | ||
58 | + | ||
59 | /* An association cannot be branched off from an already peeled-off | ||
60 | * socket, nor is this supported for tcp style sockets. | ||
61 | */ | ||
62 | @@ -7427,8 +7433,6 @@ static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p, | ||
63 | */ | ||
64 | release_sock(sk); | ||
65 | current_timeo = schedule_timeout(current_timeo); | ||
66 | - if (sk != asoc->base.sk) | ||
67 | - goto do_error; | ||
68 | lock_sock(sk); | ||
69 | |||
70 | *timeo_p = current_timeo; | ||
71 | -- | ||
72 | 1.9.1 | ||
73 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-7487.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-7487.patch deleted file mode 100644 index 41849fe..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-7487.patch +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | From ee0d8d8482345ff97a75a7d747efc309f13b0d80 Mon Sep 17 00:00:00 2001 | ||
2 | From: Dan Carpenter <dan.carpenter@oracle.com> | ||
3 | Date: Tue, 2 May 2017 13:58:53 +0300 | ||
4 | Subject: [PATCH] ipx: call ipxitf_put() in ioctl error path | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | We should call ipxitf_put() if the copy_to_user() fails. | ||
10 | |||
11 | CVE: CVE-2017-7487 | ||
12 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.50&id=820adccd0e3be9bdd2384ca8fc4712108cfdf28b] | ||
13 | |||
14 | Reported-by: 李强 <liqiang6-s@360.cn> | ||
15 | Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> | ||
16 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
17 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
18 | --- | ||
19 | net/ipx/af_ipx.c | 5 ++--- | ||
20 | 1 file changed, 2 insertions(+), 3 deletions(-) | ||
21 | |||
22 | diff --git a/net/ipx/af_ipx.c b/net/ipx/af_ipx.c | ||
23 | index 8a9219ff2e77e..fa31ef29e3fa0 100644 | ||
24 | --- a/net/ipx/af_ipx.c | ||
25 | +++ b/net/ipx/af_ipx.c | ||
26 | @@ -1168,11 +1168,10 @@ static int ipxitf_ioctl(unsigned int cmd, void __user *arg) | ||
27 | sipx->sipx_network = ipxif->if_netnum; | ||
28 | memcpy(sipx->sipx_node, ipxif->if_node, | ||
29 | sizeof(sipx->sipx_node)); | ||
30 | - rc = -EFAULT; | ||
31 | + rc = 0; | ||
32 | if (copy_to_user(arg, &ifr, sizeof(ifr))) | ||
33 | - break; | ||
34 | + rc = -EFAULT; | ||
35 | ipxitf_put(ipxif); | ||
36 | - rc = 0; | ||
37 | break; | ||
38 | } | ||
39 | case SIOCAIPXITFCRT: | ||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-7618.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-7618.patch deleted file mode 100644 index 14198be..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-7618.patch +++ /dev/null | |||
@@ -1,238 +0,0 @@ | |||
1 | From c10479591869177ae7ac0570b54ace6fbdeb57c2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Herbert Xu <herbert@gondor.apana.org.au> | ||
3 | Date: Mon, 10 Apr 2017 17:27:57 +0800 | ||
4 | Subject: [PATCH] crypto: ahash - Fix EINPROGRESS notification callback | ||
5 | |||
6 | commit ef0579b64e93188710d48667cb5e014926af9f1b upstream. | ||
7 | |||
8 | The ahash API modifies the request's callback function in order | ||
9 | to clean up after itself in some corner cases (unaligned final | ||
10 | and missing finup). | ||
11 | |||
12 | When the request is complete ahash will restore the original | ||
13 | callback and everything is fine. However, when the request gets | ||
14 | an EBUSY on a full queue, an EINPROGRESS callback is made while | ||
15 | the request is still ongoing. | ||
16 | |||
17 | In this case the ahash API will incorrectly call its own callback. | ||
18 | |||
19 | This patch fixes the problem by creating a temporary request | ||
20 | object on the stack which is used to relay EINPROGRESS back to | ||
21 | the original completion function. | ||
22 | |||
23 | This patch also adds code to preserve the original flags value. | ||
24 | |||
25 | CVE: CVE-2017-7618 | ||
26 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.51&id=c10479591869177ae7ac0570b54ace6fbdeb57c2] | ||
27 | |||
28 | Fixes: ab6bf4e5e5e4 ("crypto: hash - Fix the pointer voodoo in...") | ||
29 | Reported-by: Sabrina Dubroca <sd@queasysnail.net> | ||
30 | Tested-by: Sabrina Dubroca <sd@queasysnail.net> | ||
31 | Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> | ||
32 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
33 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
34 | --- | ||
35 | crypto/ahash.c | 79 ++++++++++++++++++++++++++---------------- | ||
36 | include/crypto/internal/hash.h | 10 ++++++ | ||
37 | 2 files changed, 60 insertions(+), 29 deletions(-) | ||
38 | |||
39 | diff --git a/crypto/ahash.c b/crypto/ahash.c | ||
40 | index 2ce8bcb..cce0268 100644 | ||
41 | --- a/crypto/ahash.c | ||
42 | +++ b/crypto/ahash.c | ||
43 | @@ -31,6 +31,7 @@ struct ahash_request_priv { | ||
44 | crypto_completion_t complete; | ||
45 | void *data; | ||
46 | u8 *result; | ||
47 | + u32 flags; | ||
48 | void *ubuf[] CRYPTO_MINALIGN_ATTR; | ||
49 | }; | ||
50 | |||
51 | @@ -252,6 +253,8 @@ static int ahash_save_req(struct ahash_request *req, crypto_completion_t cplt) | ||
52 | priv->result = req->result; | ||
53 | priv->complete = req->base.complete; | ||
54 | priv->data = req->base.data; | ||
55 | + priv->flags = req->base.flags; | ||
56 | + | ||
57 | /* | ||
58 | * WARNING: We do not backup req->priv here! The req->priv | ||
59 | * is for internal use of the Crypto API and the | ||
60 | @@ -266,38 +269,44 @@ static int ahash_save_req(struct ahash_request *req, crypto_completion_t cplt) | ||
61 | return 0; | ||
62 | } | ||
63 | |||
64 | -static void ahash_restore_req(struct ahash_request *req) | ||
65 | +static void ahash_restore_req(struct ahash_request *req, int err) | ||
66 | { | ||
67 | struct ahash_request_priv *priv = req->priv; | ||
68 | |||
69 | + if (!err) | ||
70 | + memcpy(priv->result, req->result, | ||
71 | + crypto_ahash_digestsize(crypto_ahash_reqtfm(req))); | ||
72 | + | ||
73 | /* Restore the original crypto request. */ | ||
74 | req->result = priv->result; | ||
75 | - req->base.complete = priv->complete; | ||
76 | - req->base.data = priv->data; | ||
77 | + | ||
78 | + ahash_request_set_callback(req, priv->flags, | ||
79 | + priv->complete, priv->data); | ||
80 | req->priv = NULL; | ||
81 | |||
82 | /* Free the req->priv.priv from the ADJUSTED request. */ | ||
83 | kzfree(priv); | ||
84 | } | ||
85 | |||
86 | -static void ahash_op_unaligned_finish(struct ahash_request *req, int err) | ||
87 | +static void ahash_notify_einprogress(struct ahash_request *req) | ||
88 | { | ||
89 | struct ahash_request_priv *priv = req->priv; | ||
90 | + struct crypto_async_request oreq; | ||
91 | |||
92 | - if (err == -EINPROGRESS) | ||
93 | - return; | ||
94 | - | ||
95 | - if (!err) | ||
96 | - memcpy(priv->result, req->result, | ||
97 | - crypto_ahash_digestsize(crypto_ahash_reqtfm(req))); | ||
98 | + oreq.data = priv->data; | ||
99 | |||
100 | - ahash_restore_req(req); | ||
101 | + priv->complete(&oreq, -EINPROGRESS); | ||
102 | } | ||
103 | |||
104 | static void ahash_op_unaligned_done(struct crypto_async_request *req, int err) | ||
105 | { | ||
106 | struct ahash_request *areq = req->data; | ||
107 | |||
108 | + if (err == -EINPROGRESS) { | ||
109 | + ahash_notify_einprogress(areq); | ||
110 | + return; | ||
111 | + } | ||
112 | + | ||
113 | /* | ||
114 | * Restore the original request, see ahash_op_unaligned() for what | ||
115 | * goes where. | ||
116 | @@ -308,7 +317,7 @@ static void ahash_op_unaligned_done(struct crypto_async_request *req, int err) | ||
117 | */ | ||
118 | |||
119 | /* First copy req->result into req->priv.result */ | ||
120 | - ahash_op_unaligned_finish(areq, err); | ||
121 | + ahash_restore_req(areq, err); | ||
122 | |||
123 | /* Complete the ORIGINAL request. */ | ||
124 | areq->base.complete(&areq->base, err); | ||
125 | @@ -324,7 +333,12 @@ static int ahash_op_unaligned(struct ahash_request *req, | ||
126 | return err; | ||
127 | |||
128 | err = op(req); | ||
129 | - ahash_op_unaligned_finish(req, err); | ||
130 | + if (err == -EINPROGRESS || | ||
131 | + (err == -EBUSY && (ahash_request_flags(req) & | ||
132 | + CRYPTO_TFM_REQ_MAY_BACKLOG))) | ||
133 | + return err; | ||
134 | + | ||
135 | + ahash_restore_req(req, err); | ||
136 | |||
137 | return err; | ||
138 | } | ||
139 | @@ -359,25 +373,14 @@ int crypto_ahash_digest(struct ahash_request *req) | ||
140 | } | ||
141 | EXPORT_SYMBOL_GPL(crypto_ahash_digest); | ||
142 | |||
143 | -static void ahash_def_finup_finish2(struct ahash_request *req, int err) | ||
144 | +static void ahash_def_finup_done2(struct crypto_async_request *req, int err) | ||
145 | { | ||
146 | - struct ahash_request_priv *priv = req->priv; | ||
147 | + struct ahash_request *areq = req->data; | ||
148 | |||
149 | if (err == -EINPROGRESS) | ||
150 | return; | ||
151 | |||
152 | - if (!err) | ||
153 | - memcpy(priv->result, req->result, | ||
154 | - crypto_ahash_digestsize(crypto_ahash_reqtfm(req))); | ||
155 | - | ||
156 | - ahash_restore_req(req); | ||
157 | -} | ||
158 | - | ||
159 | -static void ahash_def_finup_done2(struct crypto_async_request *req, int err) | ||
160 | -{ | ||
161 | - struct ahash_request *areq = req->data; | ||
162 | - | ||
163 | - ahash_def_finup_finish2(areq, err); | ||
164 | + ahash_restore_req(areq, err); | ||
165 | |||
166 | areq->base.complete(&areq->base, err); | ||
167 | } | ||
168 | @@ -388,11 +391,15 @@ static int ahash_def_finup_finish1(struct ahash_request *req, int err) | ||
169 | goto out; | ||
170 | |||
171 | req->base.complete = ahash_def_finup_done2; | ||
172 | - req->base.flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; | ||
173 | + | ||
174 | err = crypto_ahash_reqtfm(req)->final(req); | ||
175 | + if (err == -EINPROGRESS || | ||
176 | + (err == -EBUSY && (ahash_request_flags(req) & | ||
177 | + CRYPTO_TFM_REQ_MAY_BACKLOG))) | ||
178 | + return err; | ||
179 | |||
180 | out: | ||
181 | - ahash_def_finup_finish2(req, err); | ||
182 | + ahash_restore_req(req, err); | ||
183 | return err; | ||
184 | } | ||
185 | |||
186 | @@ -400,7 +407,16 @@ static void ahash_def_finup_done1(struct crypto_async_request *req, int err) | ||
187 | { | ||
188 | struct ahash_request *areq = req->data; | ||
189 | |||
190 | + if (err == -EINPROGRESS) { | ||
191 | + ahash_notify_einprogress(areq); | ||
192 | + return; | ||
193 | + } | ||
194 | + | ||
195 | + areq->base.flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP; | ||
196 | + | ||
197 | err = ahash_def_finup_finish1(areq, err); | ||
198 | + if (areq->priv) | ||
199 | + return; | ||
200 | |||
201 | areq->base.complete(&areq->base, err); | ||
202 | } | ||
203 | @@ -415,6 +431,11 @@ static int ahash_def_finup(struct ahash_request *req) | ||
204 | return err; | ||
205 | |||
206 | err = tfm->update(req); | ||
207 | + if (err == -EINPROGRESS || | ||
208 | + (err == -EBUSY && (ahash_request_flags(req) & | ||
209 | + CRYPTO_TFM_REQ_MAY_BACKLOG))) | ||
210 | + return err; | ||
211 | + | ||
212 | return ahash_def_finup_finish1(req, err); | ||
213 | } | ||
214 | |||
215 | diff --git a/include/crypto/internal/hash.h b/include/crypto/internal/hash.h | ||
216 | index 1d4f365..f6d9af3e 100644 | ||
217 | --- a/include/crypto/internal/hash.h | ||
218 | +++ b/include/crypto/internal/hash.h | ||
219 | @@ -166,6 +166,16 @@ static inline struct ahash_instance *ahash_alloc_instance( | ||
220 | return crypto_alloc_instance2(name, alg, ahash_instance_headroom()); | ||
221 | } | ||
222 | |||
223 | +static inline void ahash_request_complete(struct ahash_request *req, int err) | ||
224 | +{ | ||
225 | + req->base.complete(&req->base, err); | ||
226 | +} | ||
227 | + | ||
228 | +static inline u32 ahash_request_flags(struct ahash_request *req) | ||
229 | +{ | ||
230 | + return req->base.flags; | ||
231 | +} | ||
232 | + | ||
233 | static inline struct crypto_ahash *crypto_spawn_ahash( | ||
234 | struct crypto_ahash_spawn *spawn) | ||
235 | { | ||
236 | -- | ||
237 | 1.9.1 | ||
238 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-7645.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-7645.patch deleted file mode 100644 index 2852f41..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-7645.patch +++ /dev/null | |||
@@ -1,109 +0,0 @@ | |||
1 | From fc6445df466f37291a70937642068bda78802a5b Mon Sep 17 00:00:00 2001 | ||
2 | From: "J. Bruce Fields" <bfields@redhat.com> | ||
3 | Date: Fri, 21 Apr 2017 16:10:18 -0400 | ||
4 | Subject: [PATCH] nfsd: check for oversized NFSv2/v3 arguments | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | commit e6838a29ecb484c97e4efef9429643b9851fba6e upstream. | ||
10 | |||
11 | A client can append random data to the end of an NFSv2 or NFSv3 RPC call | ||
12 | without our complaining; we'll just stop parsing at the end of the | ||
13 | expected data and ignore the rest. | ||
14 | |||
15 | Encoded arguments and replies are stored together in an array of pages, | ||
16 | and if a call is too large it could leave inadequate space for the | ||
17 | reply. This is normally OK because NFS RPC's typically have either | ||
18 | short arguments and long replies (like READ) or long arguments and short | ||
19 | replies (like WRITE). But a client that sends an incorrectly long reply | ||
20 | can violate those assumptions. This was observed to cause crashes. | ||
21 | |||
22 | Also, several operations increment rq_next_page in the decode routine | ||
23 | before checking the argument size, which can leave rq_next_page pointing | ||
24 | well past the end of the page array, causing trouble later in | ||
25 | svc_free_pages. | ||
26 | |||
27 | So, following a suggestion from Neil Brown, add a central check to | ||
28 | enforce our expectation that no NFSv2/v3 call has both a large call and | ||
29 | a large reply. | ||
30 | |||
31 | As followup we may also want to rewrite the encoding routines to check | ||
32 | more carefully that they aren't running off the end of the page array. | ||
33 | |||
34 | We may also consider rejecting calls that have any extra garbage | ||
35 | appended. That would be safer, and within our rights by spec, but given | ||
36 | the age of our server and the NFS protocol, and the fact that we've | ||
37 | never enforced this before, we may need to balance that against the | ||
38 | possibility of breaking some oddball client. | ||
39 | |||
40 | CVE: CVE-2017-7645 | ||
41 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.51&id=fc6445df466f37291a70937642068bda78802a5b] | ||
42 | |||
43 | Reported-by: Tuomas Haanpää <thaan@synopsys.com> | ||
44 | Reported-by: Ari Kauppi <ari@synopsys.com> | ||
45 | Reviewed-by: NeilBrown <neilb@suse.com> | ||
46 | Signed-off-by: J. Bruce Fields <bfields@redhat.com> | ||
47 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
48 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
49 | --- | ||
50 | fs/nfsd/nfssvc.c | 36 ++++++++++++++++++++++++++++++++++++ | ||
51 | 1 file changed, 36 insertions(+) | ||
52 | |||
53 | diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c | ||
54 | index a2b65fc..1645b97 100644 | ||
55 | --- a/fs/nfsd/nfssvc.c | ||
56 | +++ b/fs/nfsd/nfssvc.c | ||
57 | @@ -733,6 +733,37 @@ static __be32 map_new_errors(u32 vers, __be32 nfserr) | ||
58 | return nfserr; | ||
59 | } | ||
60 | |||
61 | +/* | ||
62 | + * A write procedure can have a large argument, and a read procedure can | ||
63 | + * have a large reply, but no NFSv2 or NFSv3 procedure has argument and | ||
64 | + * reply that can both be larger than a page. The xdr code has taken | ||
65 | + * advantage of this assumption to be a sloppy about bounds checking in | ||
66 | + * some cases. Pending a rewrite of the NFSv2/v3 xdr code to fix that | ||
67 | + * problem, we enforce these assumptions here: | ||
68 | + */ | ||
69 | +static bool nfs_request_too_big(struct svc_rqst *rqstp, | ||
70 | + struct svc_procedure *proc) | ||
71 | +{ | ||
72 | + /* | ||
73 | + * The ACL code has more careful bounds-checking and is not | ||
74 | + * susceptible to this problem: | ||
75 | + */ | ||
76 | + if (rqstp->rq_prog != NFS_PROGRAM) | ||
77 | + return false; | ||
78 | + /* | ||
79 | + * Ditto NFSv4 (which can in theory have argument and reply both | ||
80 | + * more than a page): | ||
81 | + */ | ||
82 | + if (rqstp->rq_vers >= 4) | ||
83 | + return false; | ||
84 | + /* The reply will be small, we're OK: */ | ||
85 | + if (proc->pc_xdrressize > 0 && | ||
86 | + proc->pc_xdrressize < XDR_QUADLEN(PAGE_SIZE)) | ||
87 | + return false; | ||
88 | + | ||
89 | + return rqstp->rq_arg.len > PAGE_SIZE; | ||
90 | +} | ||
91 | + | ||
92 | int | ||
93 | nfsd_dispatch(struct svc_rqst *rqstp, __be32 *statp) | ||
94 | { | ||
95 | @@ -745,6 +776,11 @@ static __be32 map_new_errors(u32 vers, __be32 nfserr) | ||
96 | rqstp->rq_vers, rqstp->rq_proc); | ||
97 | proc = rqstp->rq_procinfo; | ||
98 | |||
99 | + if (nfs_request_too_big(rqstp, proc)) { | ||
100 | + dprintk("nfsd: NFSv%d argument too large\n", rqstp->rq_vers); | ||
101 | + *statp = rpc_garbage_args; | ||
102 | + return 1; | ||
103 | + } | ||
104 | /* | ||
105 | * Give the xdr decoder a chance to change this if it wants | ||
106 | * (necessary in the NFSv4.0 compound case) | ||
107 | -- | ||
108 | 1.9.1 | ||
109 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-8062.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-8062.patch deleted file mode 100644 index eab23f2..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-8062.patch +++ /dev/null | |||
@@ -1,440 +0,0 @@ | |||
1 | From 06996254a605913cd7c1927d0e8a89b5138e110d Mon Sep 17 00:00:00 2001 | ||
2 | From: Jonathan McDowell <noodles@earth.li> | ||
3 | Date: Wed, 15 Feb 2017 18:29:15 -0200 | ||
4 | Subject: [PATCH] dw2102: don't do DMA on stack | ||
5 | |||
6 | commit 606142af57dad981b78707234cfbd15f9f7b7125 upstream. | ||
7 | |||
8 | On Kernel 4.9, WARNINGs about doing DMA on stack are hit at | ||
9 | the dw2102 driver: one in su3000_power_ctrl() and the other in tt_s2_4600_frontend_attach(). | ||
10 | |||
11 | Both were due to the use of buffers on the stack as parameters to | ||
12 | dvb_usb_generic_rw() and the resulting attempt to do DMA with them. | ||
13 | |||
14 | The device was non-functional as a result. | ||
15 | |||
16 | So, switch this driver over to use a buffer within the device state | ||
17 | structure, as has been done with other DVB-USB drivers. | ||
18 | |||
19 | Tested with TechnoTrend TT-connect S2-4600. | ||
20 | |||
21 | CVE: CVE-2017-8062 | ||
22 | Upstream-Status: Backport [from kernel.org longterm 4.9.52] | ||
23 | |||
24 | [mchehab@osg.samsung.com: fixed a warning at su3000_i2c_transfer() that | ||
25 | state var were dereferenced before check 'd'] | ||
26 | Signed-off-by: Jonathan McDowell <noodles@earth.li> | ||
27 | Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> | ||
28 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
29 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
30 | --- | ||
31 | drivers/media/usb/dvb-usb/dw2102.c | 244 ++++++++++++++++++++++--------------- | ||
32 | 1 file changed, 145 insertions(+), 99 deletions(-) | ||
33 | |||
34 | diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c | ||
35 | index 2c720cb..c3e6734 100644 | ||
36 | --- a/drivers/media/usb/dvb-usb/dw2102.c | ||
37 | +++ b/drivers/media/usb/dvb-usb/dw2102.c | ||
38 | @@ -68,6 +68,7 @@ | ||
39 | struct dw2102_state { | ||
40 | u8 initialized; | ||
41 | u8 last_lock; | ||
42 | + u8 data[MAX_XFER_SIZE + 4]; | ||
43 | struct i2c_client *i2c_client_demod; | ||
44 | struct i2c_client *i2c_client_tuner; | ||
45 | |||
46 | @@ -662,62 +663,72 @@ static int su3000_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[], | ||
47 | int num) | ||
48 | { | ||
49 | struct dvb_usb_device *d = i2c_get_adapdata(adap); | ||
50 | - u8 obuf[0x40], ibuf[0x40]; | ||
51 | + struct dw2102_state *state; | ||
52 | |||
53 | if (!d) | ||
54 | return -ENODEV; | ||
55 | + | ||
56 | + state = d->priv; | ||
57 | + | ||
58 | if (mutex_lock_interruptible(&d->i2c_mutex) < 0) | ||
59 | return -EAGAIN; | ||
60 | + if (mutex_lock_interruptible(&d->data_mutex) < 0) { | ||
61 | + mutex_unlock(&d->i2c_mutex); | ||
62 | + return -EAGAIN; | ||
63 | + } | ||
64 | |||
65 | switch (num) { | ||
66 | case 1: | ||
67 | switch (msg[0].addr) { | ||
68 | case SU3000_STREAM_CTRL: | ||
69 | - obuf[0] = msg[0].buf[0] + 0x36; | ||
70 | - obuf[1] = 3; | ||
71 | - obuf[2] = 0; | ||
72 | - if (dvb_usb_generic_rw(d, obuf, 3, ibuf, 0, 0) < 0) | ||
73 | + state->data[0] = msg[0].buf[0] + 0x36; | ||
74 | + state->data[1] = 3; | ||
75 | + state->data[2] = 0; | ||
76 | + if (dvb_usb_generic_rw(d, state->data, 3, | ||
77 | + state->data, 0, 0) < 0) | ||
78 | err("i2c transfer failed."); | ||
79 | break; | ||
80 | case DW2102_RC_QUERY: | ||
81 | - obuf[0] = 0x10; | ||
82 | - if (dvb_usb_generic_rw(d, obuf, 1, ibuf, 2, 0) < 0) | ||
83 | + state->data[0] = 0x10; | ||
84 | + if (dvb_usb_generic_rw(d, state->data, 1, | ||
85 | + state->data, 2, 0) < 0) | ||
86 | err("i2c transfer failed."); | ||
87 | - msg[0].buf[1] = ibuf[0]; | ||
88 | - msg[0].buf[0] = ibuf[1]; | ||
89 | + msg[0].buf[1] = state->data[0]; | ||
90 | + msg[0].buf[0] = state->data[1]; | ||
91 | break; | ||
92 | default: | ||
93 | /* always i2c write*/ | ||
94 | - obuf[0] = 0x08; | ||
95 | - obuf[1] = msg[0].addr; | ||
96 | - obuf[2] = msg[0].len; | ||
97 | + state->data[0] = 0x08; | ||
98 | + state->data[1] = msg[0].addr; | ||
99 | + state->data[2] = msg[0].len; | ||
100 | |||
101 | - memcpy(&obuf[3], msg[0].buf, msg[0].len); | ||
102 | + memcpy(&state->data[3], msg[0].buf, msg[0].len); | ||
103 | |||
104 | - if (dvb_usb_generic_rw(d, obuf, msg[0].len + 3, | ||
105 | - ibuf, 1, 0) < 0) | ||
106 | + if (dvb_usb_generic_rw(d, state->data, msg[0].len + 3, | ||
107 | + state->data, 1, 0) < 0) | ||
108 | err("i2c transfer failed."); | ||
109 | |||
110 | } | ||
111 | break; | ||
112 | case 2: | ||
113 | /* always i2c read */ | ||
114 | - obuf[0] = 0x09; | ||
115 | - obuf[1] = msg[0].len; | ||
116 | - obuf[2] = msg[1].len; | ||
117 | - obuf[3] = msg[0].addr; | ||
118 | - memcpy(&obuf[4], msg[0].buf, msg[0].len); | ||
119 | - | ||
120 | - if (dvb_usb_generic_rw(d, obuf, msg[0].len + 4, | ||
121 | - ibuf, msg[1].len + 1, 0) < 0) | ||
122 | + state->data[0] = 0x09; | ||
123 | + state->data[1] = msg[0].len; | ||
124 | + state->data[2] = msg[1].len; | ||
125 | + state->data[3] = msg[0].addr; | ||
126 | + memcpy(&state->data[4], msg[0].buf, msg[0].len); | ||
127 | + | ||
128 | + if (dvb_usb_generic_rw(d, state->data, msg[0].len + 4, | ||
129 | + state->data, msg[1].len + 1, 0) < 0) | ||
130 | err("i2c transfer failed."); | ||
131 | |||
132 | - memcpy(msg[1].buf, &ibuf[1], msg[1].len); | ||
133 | + memcpy(msg[1].buf, &state->data[1], msg[1].len); | ||
134 | break; | ||
135 | default: | ||
136 | warn("more than 2 i2c messages at a time is not handled yet."); | ||
137 | break; | ||
138 | } | ||
139 | + mutex_unlock(&d->data_mutex); | ||
140 | mutex_unlock(&d->i2c_mutex); | ||
141 | return num; | ||
142 | } | ||
143 | @@ -845,17 +856,23 @@ static int su3000_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) | ||
144 | static int su3000_power_ctrl(struct dvb_usb_device *d, int i) | ||
145 | { | ||
146 | struct dw2102_state *state = (struct dw2102_state *)d->priv; | ||
147 | - u8 obuf[] = {0xde, 0}; | ||
148 | + int ret = 0; | ||
149 | |||
150 | info("%s: %d, initialized %d", __func__, i, state->initialized); | ||
151 | |||
152 | if (i && !state->initialized) { | ||
153 | + mutex_lock(&d->data_mutex); | ||
154 | + | ||
155 | + state->data[0] = 0xde; | ||
156 | + state->data[1] = 0; | ||
157 | + | ||
158 | state->initialized = 1; | ||
159 | /* reset board */ | ||
160 | - return dvb_usb_generic_rw(d, obuf, 2, NULL, 0, 0); | ||
161 | + ret = dvb_usb_generic_rw(d, state->data, 2, NULL, 0, 0); | ||
162 | + mutex_unlock(&d->data_mutex); | ||
163 | } | ||
164 | |||
165 | - return 0; | ||
166 | + return ret; | ||
167 | } | ||
168 | |||
169 | static int su3000_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) | ||
170 | @@ -1310,49 +1327,57 @@ static int prof_7500_frontend_attach(struct dvb_usb_adapter *d) | ||
171 | return 0; | ||
172 | } | ||
173 | |||
174 | -static int su3000_frontend_attach(struct dvb_usb_adapter *d) | ||
175 | +static int su3000_frontend_attach(struct dvb_usb_adapter *adap) | ||
176 | { | ||
177 | - u8 obuf[3] = { 0xe, 0x80, 0 }; | ||
178 | - u8 ibuf[] = { 0 }; | ||
179 | + struct dvb_usb_device *d = adap->dev; | ||
180 | + struct dw2102_state *state = d->priv; | ||
181 | + | ||
182 | + mutex_lock(&d->data_mutex); | ||
183 | + | ||
184 | + state->data[0] = 0xe; | ||
185 | + state->data[1] = 0x80; | ||
186 | + state->data[2] = 0; | ||
187 | |||
188 | - if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) | ||
189 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
190 | err("command 0x0e transfer failed."); | ||
191 | |||
192 | - obuf[0] = 0xe; | ||
193 | - obuf[1] = 0x02; | ||
194 | - obuf[2] = 1; | ||
195 | + state->data[0] = 0xe; | ||
196 | + state->data[1] = 0x02; | ||
197 | + state->data[2] = 1; | ||
198 | |||
199 | - if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) | ||
200 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
201 | err("command 0x0e transfer failed."); | ||
202 | msleep(300); | ||
203 | |||
204 | - obuf[0] = 0xe; | ||
205 | - obuf[1] = 0x83; | ||
206 | - obuf[2] = 0; | ||
207 | + state->data[0] = 0xe; | ||
208 | + state->data[1] = 0x83; | ||
209 | + state->data[2] = 0; | ||
210 | |||
211 | - if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) | ||
212 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
213 | err("command 0x0e transfer failed."); | ||
214 | |||
215 | - obuf[0] = 0xe; | ||
216 | - obuf[1] = 0x83; | ||
217 | - obuf[2] = 1; | ||
218 | + state->data[0] = 0xe; | ||
219 | + state->data[1] = 0x83; | ||
220 | + state->data[2] = 1; | ||
221 | |||
222 | - if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) | ||
223 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
224 | err("command 0x0e transfer failed."); | ||
225 | |||
226 | - obuf[0] = 0x51; | ||
227 | + state->data[0] = 0x51; | ||
228 | |||
229 | - if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0) | ||
230 | + if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) | ||
231 | err("command 0x51 transfer failed."); | ||
232 | |||
233 | - d->fe_adap[0].fe = dvb_attach(ds3000_attach, &su3000_ds3000_config, | ||
234 | - &d->dev->i2c_adap); | ||
235 | - if (d->fe_adap[0].fe == NULL) | ||
236 | + mutex_unlock(&d->data_mutex); | ||
237 | + | ||
238 | + adap->fe_adap[0].fe = dvb_attach(ds3000_attach, &su3000_ds3000_config, | ||
239 | + &d->i2c_adap); | ||
240 | + if (adap->fe_adap[0].fe == NULL) | ||
241 | return -EIO; | ||
242 | |||
243 | - if (dvb_attach(ts2020_attach, d->fe_adap[0].fe, | ||
244 | + if (dvb_attach(ts2020_attach, adap->fe_adap[0].fe, | ||
245 | &dw2104_ts2020_config, | ||
246 | - &d->dev->i2c_adap)) { | ||
247 | + &d->i2c_adap)) { | ||
248 | info("Attached DS3000/TS2020!"); | ||
249 | return 0; | ||
250 | } | ||
251 | @@ -1361,47 +1386,55 @@ static int su3000_frontend_attach(struct dvb_usb_adapter *d) | ||
252 | return -EIO; | ||
253 | } | ||
254 | |||
255 | -static int t220_frontend_attach(struct dvb_usb_adapter *d) | ||
256 | +static int t220_frontend_attach(struct dvb_usb_adapter *adap) | ||
257 | { | ||
258 | - u8 obuf[3] = { 0xe, 0x87, 0 }; | ||
259 | - u8 ibuf[] = { 0 }; | ||
260 | + struct dvb_usb_device *d = adap->dev; | ||
261 | + struct dw2102_state *state = d->priv; | ||
262 | + | ||
263 | + mutex_lock(&d->data_mutex); | ||
264 | |||
265 | - if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) | ||
266 | + state->data[0] = 0xe; | ||
267 | + state->data[1] = 0x87; | ||
268 | + state->data[2] = 0x0; | ||
269 | + | ||
270 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
271 | err("command 0x0e transfer failed."); | ||
272 | |||
273 | - obuf[0] = 0xe; | ||
274 | - obuf[1] = 0x86; | ||
275 | - obuf[2] = 1; | ||
276 | + state->data[0] = 0xe; | ||
277 | + state->data[1] = 0x86; | ||
278 | + state->data[2] = 1; | ||
279 | |||
280 | - if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) | ||
281 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
282 | err("command 0x0e transfer failed."); | ||
283 | |||
284 | - obuf[0] = 0xe; | ||
285 | - obuf[1] = 0x80; | ||
286 | - obuf[2] = 0; | ||
287 | + state->data[0] = 0xe; | ||
288 | + state->data[1] = 0x80; | ||
289 | + state->data[2] = 0; | ||
290 | |||
291 | - if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) | ||
292 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
293 | err("command 0x0e transfer failed."); | ||
294 | |||
295 | msleep(50); | ||
296 | |||
297 | - obuf[0] = 0xe; | ||
298 | - obuf[1] = 0x80; | ||
299 | - obuf[2] = 1; | ||
300 | + state->data[0] = 0xe; | ||
301 | + state->data[1] = 0x80; | ||
302 | + state->data[2] = 1; | ||
303 | |||
304 | - if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0) | ||
305 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
306 | err("command 0x0e transfer failed."); | ||
307 | |||
308 | - obuf[0] = 0x51; | ||
309 | + state->data[0] = 0x51; | ||
310 | |||
311 | - if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0) | ||
312 | + if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) | ||
313 | err("command 0x51 transfer failed."); | ||
314 | |||
315 | - d->fe_adap[0].fe = dvb_attach(cxd2820r_attach, &cxd2820r_config, | ||
316 | - &d->dev->i2c_adap, NULL); | ||
317 | - if (d->fe_adap[0].fe != NULL) { | ||
318 | - if (dvb_attach(tda18271_attach, d->fe_adap[0].fe, 0x60, | ||
319 | - &d->dev->i2c_adap, &tda18271_config)) { | ||
320 | + mutex_unlock(&d->data_mutex); | ||
321 | + | ||
322 | + adap->fe_adap[0].fe = dvb_attach(cxd2820r_attach, &cxd2820r_config, | ||
323 | + &d->i2c_adap, NULL); | ||
324 | + if (adap->fe_adap[0].fe != NULL) { | ||
325 | + if (dvb_attach(tda18271_attach, adap->fe_adap[0].fe, 0x60, | ||
326 | + &d->i2c_adap, &tda18271_config)) { | ||
327 | info("Attached TDA18271HD/CXD2820R!"); | ||
328 | return 0; | ||
329 | } | ||
330 | @@ -1411,23 +1444,30 @@ static int t220_frontend_attach(struct dvb_usb_adapter *d) | ||
331 | return -EIO; | ||
332 | } | ||
333 | |||
334 | -static int m88rs2000_frontend_attach(struct dvb_usb_adapter *d) | ||
335 | +static int m88rs2000_frontend_attach(struct dvb_usb_adapter *adap) | ||
336 | { | ||
337 | - u8 obuf[] = { 0x51 }; | ||
338 | - u8 ibuf[] = { 0 }; | ||
339 | + struct dvb_usb_device *d = adap->dev; | ||
340 | + struct dw2102_state *state = d->priv; | ||
341 | + | ||
342 | + mutex_lock(&d->data_mutex); | ||
343 | |||
344 | - if (dvb_usb_generic_rw(d->dev, obuf, 1, ibuf, 1, 0) < 0) | ||
345 | + state->data[0] = 0x51; | ||
346 | + | ||
347 | + if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) | ||
348 | err("command 0x51 transfer failed."); | ||
349 | |||
350 | - d->fe_adap[0].fe = dvb_attach(m88rs2000_attach, &s421_m88rs2000_config, | ||
351 | - &d->dev->i2c_adap); | ||
352 | + mutex_unlock(&d->data_mutex); | ||
353 | |||
354 | - if (d->fe_adap[0].fe == NULL) | ||
355 | + adap->fe_adap[0].fe = dvb_attach(m88rs2000_attach, | ||
356 | + &s421_m88rs2000_config, | ||
357 | + &d->i2c_adap); | ||
358 | + | ||
359 | + if (adap->fe_adap[0].fe == NULL) | ||
360 | return -EIO; | ||
361 | |||
362 | - if (dvb_attach(ts2020_attach, d->fe_adap[0].fe, | ||
363 | + if (dvb_attach(ts2020_attach, adap->fe_adap[0].fe, | ||
364 | &dw2104_ts2020_config, | ||
365 | - &d->dev->i2c_adap)) { | ||
366 | + &d->i2c_adap)) { | ||
367 | info("Attached RS2000/TS2020!"); | ||
368 | return 0; | ||
369 | } | ||
370 | @@ -1440,44 +1480,50 @@ static int tt_s2_4600_frontend_attach(struct dvb_usb_adapter *adap) | ||
371 | { | ||
372 | struct dvb_usb_device *d = adap->dev; | ||
373 | struct dw2102_state *state = d->priv; | ||
374 | - u8 obuf[3] = { 0xe, 0x80, 0 }; | ||
375 | - u8 ibuf[] = { 0 }; | ||
376 | struct i2c_adapter *i2c_adapter; | ||
377 | struct i2c_client *client; | ||
378 | struct i2c_board_info board_info; | ||
379 | struct m88ds3103_platform_data m88ds3103_pdata = {}; | ||
380 | struct ts2020_config ts2020_config = {}; | ||
381 | |||
382 | - if (dvb_usb_generic_rw(d, obuf, 3, ibuf, 1, 0) < 0) | ||
383 | + mutex_lock(&d->data_mutex); | ||
384 | + | ||
385 | + state->data[0] = 0xe; | ||
386 | + state->data[1] = 0x80; | ||
387 | + state->data[2] = 0x0; | ||
388 | + | ||
389 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
390 | err("command 0x0e transfer failed."); | ||
391 | |||
392 | - obuf[0] = 0xe; | ||
393 | - obuf[1] = 0x02; | ||
394 | - obuf[2] = 1; | ||
395 | + state->data[0] = 0xe; | ||
396 | + state->data[1] = 0x02; | ||
397 | + state->data[2] = 1; | ||
398 | |||
399 | - if (dvb_usb_generic_rw(d, obuf, 3, ibuf, 1, 0) < 0) | ||
400 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
401 | err("command 0x0e transfer failed."); | ||
402 | msleep(300); | ||
403 | |||
404 | - obuf[0] = 0xe; | ||
405 | - obuf[1] = 0x83; | ||
406 | - obuf[2] = 0; | ||
407 | + state->data[0] = 0xe; | ||
408 | + state->data[1] = 0x83; | ||
409 | + state->data[2] = 0; | ||
410 | |||
411 | - if (dvb_usb_generic_rw(d, obuf, 3, ibuf, 1, 0) < 0) | ||
412 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
413 | err("command 0x0e transfer failed."); | ||
414 | |||
415 | - obuf[0] = 0xe; | ||
416 | - obuf[1] = 0x83; | ||
417 | - obuf[2] = 1; | ||
418 | + state->data[0] = 0xe; | ||
419 | + state->data[1] = 0x83; | ||
420 | + state->data[2] = 1; | ||
421 | |||
422 | - if (dvb_usb_generic_rw(d, obuf, 3, ibuf, 1, 0) < 0) | ||
423 | + if (dvb_usb_generic_rw(d, state->data, 3, state->data, 1, 0) < 0) | ||
424 | err("command 0x0e transfer failed."); | ||
425 | |||
426 | - obuf[0] = 0x51; | ||
427 | + state->data[0] = 0x51; | ||
428 | |||
429 | - if (dvb_usb_generic_rw(d, obuf, 1, ibuf, 1, 0) < 0) | ||
430 | + if (dvb_usb_generic_rw(d, state->data, 1, state->data, 1, 0) < 0) | ||
431 | err("command 0x51 transfer failed."); | ||
432 | |||
433 | + mutex_unlock(&d->data_mutex); | ||
434 | + | ||
435 | /* attach demod */ | ||
436 | m88ds3103_pdata.clk = 27000000; | ||
437 | m88ds3103_pdata.i2c_wr_max = 33; | ||
438 | -- | ||
439 | 1.9.1 | ||
440 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-8063.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-8063.patch deleted file mode 100644 index 13a1ef0..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-8063.patch +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | From fb00319317c152bf3528df13a54c28bf8c5daa55 Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de> | ||
3 | Date: Sun, 5 Feb 2017 12:57:59 -0200 | ||
4 | Subject: [PATCH] cxusb: Use a dma capable buffer also for reading | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | commit 3f190e3aec212fc8c61e202c51400afa7384d4bc upstream. | ||
10 | |||
11 | Commit 17ce039b4e54 ("[media] cxusb: don't do DMA on stack") | ||
12 | added a kmalloc'ed bounce buffer for writes, but missed to do the same | ||
13 | for reads. As the read only happens after the write is finished, we can | ||
14 | reuse the same buffer. | ||
15 | |||
16 | As dvb_usb_generic_rw handles a read length of 0 by itself, avoid calling | ||
17 | it using the dvb_usb_generic_read wrapper function. | ||
18 | |||
19 | CVE: CVE-2017-8063 | ||
20 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.51&id=fb00319317c152bf3528df13a54c28bf8c5daa55] | ||
21 | |||
22 | Signed-off-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> | ||
23 | Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> | ||
24 | Cc: Ben Hutchings <ben@decadent.org.uk> | ||
25 | Cc: Brad Spengler <spender@grsecurity.net> | ||
26 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
27 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
28 | --- | ||
29 | drivers/media/usb/dvb-usb/cxusb.c | 15 ++++++++------- | ||
30 | 1 file changed, 8 insertions(+), 7 deletions(-) | ||
31 | |||
32 | diff --git a/drivers/media/usb/dvb-usb/cxusb.c b/drivers/media/usb/dvb-usb/cxusb.c | ||
33 | index 2434030..9fd43a3 100644 | ||
34 | --- a/drivers/media/usb/dvb-usb/cxusb.c | ||
35 | +++ b/drivers/media/usb/dvb-usb/cxusb.c | ||
36 | @@ -59,23 +59,24 @@ static int cxusb_ctrl_msg(struct dvb_usb_device *d, | ||
37 | u8 cmd, u8 *wbuf, int wlen, u8 *rbuf, int rlen) | ||
38 | { | ||
39 | struct cxusb_state *st = d->priv; | ||
40 | - int ret, wo; | ||
41 | + int ret; | ||
42 | |||
43 | if (1 + wlen > MAX_XFER_SIZE) { | ||
44 | warn("i2c wr: len=%d is too big!\n", wlen); | ||
45 | return -EOPNOTSUPP; | ||
46 | } | ||
47 | |||
48 | - wo = (rbuf == NULL || rlen == 0); /* write-only */ | ||
49 | + if (rlen > MAX_XFER_SIZE) { | ||
50 | + warn("i2c rd: len=%d is too big!\n", rlen); | ||
51 | + return -EOPNOTSUPP; | ||
52 | + } | ||
53 | |||
54 | mutex_lock(&d->data_mutex); | ||
55 | st->data[0] = cmd; | ||
56 | memcpy(&st->data[1], wbuf, wlen); | ||
57 | - if (wo) | ||
58 | - ret = dvb_usb_generic_write(d, st->data, 1 + wlen); | ||
59 | - else | ||
60 | - ret = dvb_usb_generic_rw(d, st->data, 1 + wlen, | ||
61 | - rbuf, rlen, 0); | ||
62 | + ret = dvb_usb_generic_rw(d, st->data, 1 + wlen, st->data, rlen, 0); | ||
63 | + if (!ret && rbuf && rlen) | ||
64 | + memcpy(rbuf, st->data, rlen); | ||
65 | |||
66 | mutex_unlock(&d->data_mutex); | ||
67 | return ret; | ||
68 | -- | ||
69 | 1.9.1 | ||
70 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-8064.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-8064.patch deleted file mode 100644 index 05cf7a4..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-8064.patch +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | From 1992564156b5dc4ac73418e5b95e1a43f12f3cb1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Arnd Bergmann <arnd@arndb.de> | ||
3 | Date: Thu, 2 Feb 2017 12:36:01 -0200 | ||
4 | Subject: [PATCH] dvb-usb-v2: avoid use-after-free | ||
5 | |||
6 | commit 005145378c9ad7575a01b6ce1ba118fb427f583a upstream. | ||
7 | |||
8 | I ran into a stack frame size warning because of the on-stack copy of | ||
9 | the USB device structure: | ||
10 | |||
11 | drivers/media/usb/dvb-usb-v2/dvb_usb_core.c: In function 'dvb_usbv2_disconnect': | ||
12 | drivers/media/usb/dvb-usb-v2/dvb_usb_core.c:1029:1: error: the frame size of 1104 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] | ||
13 | |||
14 | Copying a device structure like this is wrong for a number of other reasons | ||
15 | too aside from the possible stack overflow. One of them is that the | ||
16 | dev_info() call will print the name of the device later, but AFAICT | ||
17 | we have only copied a pointer to the name earlier and the actual name | ||
18 | has been freed by the time it gets printed. | ||
19 | |||
20 | This removes the on-stack copy of the device and instead copies the | ||
21 | device name using kstrdup(). I'm ignoring the possible failure here | ||
22 | as both printk() and kfree() are able to deal with NULL pointers. | ||
23 | |||
24 | CVE: CVE-2017-8064 | ||
25 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.51&id=1992564156b5dc4ac73418e5b95e1a43f12f3cb1] | ||
26 | |||
27 | Signed-off-by: Arnd Bergmann <arnd@arndb.de> | ||
28 | Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> | ||
29 | Cc: Ben Hutchings <ben@decadent.org.uk> | ||
30 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
31 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
32 | --- | ||
33 | drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | 9 +++++---- | ||
34 | 1 file changed, 5 insertions(+), 4 deletions(-) | ||
35 | |||
36 | diff --git a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | ||
37 | index a8e6624..a9bb2dd 100644 | ||
38 | --- a/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | ||
39 | +++ b/drivers/media/usb/dvb-usb-v2/dvb_usb_core.c | ||
40 | @@ -1013,8 +1013,8 @@ int dvb_usbv2_probe(struct usb_interface *intf, | ||
41 | void dvb_usbv2_disconnect(struct usb_interface *intf) | ||
42 | { | ||
43 | struct dvb_usb_device *d = usb_get_intfdata(intf); | ||
44 | - const char *name = d->name; | ||
45 | - struct device dev = d->udev->dev; | ||
46 | + const char *devname = kstrdup(dev_name(&d->udev->dev), GFP_KERNEL); | ||
47 | + const char *drvname = d->name; | ||
48 | |||
49 | dev_dbg(&d->udev->dev, "%s: bInterfaceNumber=%d\n", __func__, | ||
50 | intf->cur_altsetting->desc.bInterfaceNumber); | ||
51 | @@ -1024,8 +1024,9 @@ void dvb_usbv2_disconnect(struct usb_interface *intf) | ||
52 | |||
53 | dvb_usbv2_exit(d); | ||
54 | |||
55 | - dev_info(&dev, "%s: '%s' successfully deinitialized and disconnected\n", | ||
56 | - KBUILD_MODNAME, name); | ||
57 | + pr_info("%s: '%s:%s' successfully deinitialized and disconnected\n", | ||
58 | + KBUILD_MODNAME, drvname, devname); | ||
59 | + kfree(devname); | ||
60 | } | ||
61 | EXPORT_SYMBOL(dvb_usbv2_disconnect); | ||
62 | |||
63 | -- | ||
64 | 1.9.1 | ||
65 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-8066.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-8066.patch deleted file mode 100644 index 82178b8..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-8066.patch +++ /dev/null | |||
@@ -1,138 +0,0 @@ | |||
1 | From cec7abd27e878e3c83dc9af41ee87a2e9d483ac0 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ethan Zonca <e@ethanzonca.com> | ||
3 | Date: Fri, 24 Feb 2017 11:27:36 -0500 | ||
4 | Subject: [PATCH] can: gs_usb: Don't use stack memory for USB transfers | ||
5 | |||
6 | commit c919a3069c775c1c876bec55e00b2305d5125caa upstream. | ||
7 | |||
8 | Fixes: 05ca5270005c can: gs_usb: add ethtool set_phys_id callback to locate physical device | ||
9 | |||
10 | The gs_usb driver is performing USB transfers using buffers allocated on | ||
11 | the stack. This causes the driver to not function with vmapped stacks. | ||
12 | Instead, allocate memory for the transfer buffers. | ||
13 | |||
14 | CVE: CVE-2017-8066 | ||
15 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.51&id=cec7abd27e878e3c83dc9af41ee87a2e9d483ac0] | ||
16 | |||
17 | Signed-off-by: Ethan Zonca <e@ethanzonca.com> | ||
18 | Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> | ||
19 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
20 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
21 | --- | ||
22 | drivers/net/can/usb/gs_usb.c | 40 +++++++++++++++++++++++++++++----------- | ||
23 | 1 file changed, 29 insertions(+), 11 deletions(-) | ||
24 | |||
25 | diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c | ||
26 | index 77e3cc0..a0dabd4 100644 | ||
27 | --- a/drivers/net/can/usb/gs_usb.c | ||
28 | +++ b/drivers/net/can/usb/gs_usb.c | ||
29 | @@ -908,10 +908,14 @@ static int gs_usb_probe(struct usb_interface *intf, | ||
30 | struct gs_usb *dev; | ||
31 | int rc = -ENOMEM; | ||
32 | unsigned int icount, i; | ||
33 | - struct gs_host_config hconf = { | ||
34 | - .byte_order = 0x0000beef, | ||
35 | - }; | ||
36 | - struct gs_device_config dconf; | ||
37 | + struct gs_host_config *hconf; | ||
38 | + struct gs_device_config *dconf; | ||
39 | + | ||
40 | + hconf = kmalloc(sizeof(*hconf), GFP_KERNEL); | ||
41 | + if (!hconf) | ||
42 | + return -ENOMEM; | ||
43 | + | ||
44 | + hconf->byte_order = 0x0000beef; | ||
45 | |||
46 | /* send host config */ | ||
47 | rc = usb_control_msg(interface_to_usbdev(intf), | ||
48 | @@ -920,16 +924,22 @@ static int gs_usb_probe(struct usb_interface *intf, | ||
49 | USB_DIR_OUT|USB_TYPE_VENDOR|USB_RECIP_INTERFACE, | ||
50 | 1, | ||
51 | intf->altsetting[0].desc.bInterfaceNumber, | ||
52 | - &hconf, | ||
53 | - sizeof(hconf), | ||
54 | + hconf, | ||
55 | + sizeof(*hconf), | ||
56 | 1000); | ||
57 | |||
58 | + kfree(hconf); | ||
59 | + | ||
60 | if (rc < 0) { | ||
61 | dev_err(&intf->dev, "Couldn't send data format (err=%d)\n", | ||
62 | rc); | ||
63 | return rc; | ||
64 | } | ||
65 | |||
66 | + dconf = kmalloc(sizeof(*dconf), GFP_KERNEL); | ||
67 | + if (!dconf) | ||
68 | + return -ENOMEM; | ||
69 | + | ||
70 | /* read device config */ | ||
71 | rc = usb_control_msg(interface_to_usbdev(intf), | ||
72 | usb_rcvctrlpipe(interface_to_usbdev(intf), 0), | ||
73 | @@ -937,28 +947,33 @@ static int gs_usb_probe(struct usb_interface *intf, | ||
74 | USB_DIR_IN|USB_TYPE_VENDOR|USB_RECIP_INTERFACE, | ||
75 | 1, | ||
76 | intf->altsetting[0].desc.bInterfaceNumber, | ||
77 | - &dconf, | ||
78 | - sizeof(dconf), | ||
79 | + dconf, | ||
80 | + sizeof(*dconf), | ||
81 | 1000); | ||
82 | if (rc < 0) { | ||
83 | dev_err(&intf->dev, "Couldn't get device config: (err=%d)\n", | ||
84 | rc); | ||
85 | + kfree(dconf); | ||
86 | return rc; | ||
87 | } | ||
88 | |||
89 | - icount = dconf.icount + 1; | ||
90 | + icount = dconf->icount + 1; | ||
91 | dev_info(&intf->dev, "Configuring for %d interfaces\n", icount); | ||
92 | |||
93 | if (icount > GS_MAX_INTF) { | ||
94 | dev_err(&intf->dev, | ||
95 | "Driver cannot handle more that %d CAN interfaces\n", | ||
96 | GS_MAX_INTF); | ||
97 | + kfree(dconf); | ||
98 | return -EINVAL; | ||
99 | } | ||
100 | |||
101 | dev = kzalloc(sizeof(*dev), GFP_KERNEL); | ||
102 | - if (!dev) | ||
103 | + if (!dev) { | ||
104 | + kfree(dconf); | ||
105 | return -ENOMEM; | ||
106 | + } | ||
107 | + | ||
108 | init_usb_anchor(&dev->rx_submitted); | ||
109 | |||
110 | atomic_set(&dev->active_channels, 0); | ||
111 | @@ -967,7 +982,7 @@ static int gs_usb_probe(struct usb_interface *intf, | ||
112 | dev->udev = interface_to_usbdev(intf); | ||
113 | |||
114 | for (i = 0; i < icount; i++) { | ||
115 | - dev->canch[i] = gs_make_candev(i, intf, &dconf); | ||
116 | + dev->canch[i] = gs_make_candev(i, intf, dconf); | ||
117 | if (IS_ERR_OR_NULL(dev->canch[i])) { | ||
118 | /* save error code to return later */ | ||
119 | rc = PTR_ERR(dev->canch[i]); | ||
120 | @@ -978,12 +993,15 @@ static int gs_usb_probe(struct usb_interface *intf, | ||
121 | gs_destroy_candev(dev->canch[i]); | ||
122 | |||
123 | usb_kill_anchored_urbs(&dev->rx_submitted); | ||
124 | + kfree(dconf); | ||
125 | kfree(dev); | ||
126 | return rc; | ||
127 | } | ||
128 | dev->canch[i]->parent = dev; | ||
129 | } | ||
130 | |||
131 | + kfree(dconf); | ||
132 | + | ||
133 | return 0; | ||
134 | } | ||
135 | |||
136 | -- | ||
137 | 1.9.1 | ||
138 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-8067.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-8067.patch deleted file mode 100644 index 457bd89..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-8067.patch +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
1 | From 86c6667f6a5f6bdb392d8ffbe58fbcbcf6db2704 Mon Sep 17 00:00:00 2001 | ||
2 | From: Omar Sandoval <osandov@fb.com> | ||
3 | Date: Wed, 1 Feb 2017 00:02:27 -0800 | ||
4 | Subject: [PATCH] virtio-console: avoid DMA from stack | ||
5 | |||
6 | commit c4baad50297d84bde1a7ad45e50c73adae4a2192 upstream. | ||
7 | |||
8 | put_chars() stuffs the buffer it gets into an sg, but that buffer may be | ||
9 | on the stack. This breaks with CONFIG_VMAP_STACK=y (for me, it | ||
10 | manifested as printks getting turned into NUL bytes). | ||
11 | |||
12 | CVE: CVE-2017-8067 | ||
13 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.51&id=86c6667f6a5f6bdb392d8ffbe58fbcbcf6db2704] | ||
14 | |||
15 | Signed-off-by: Omar Sandoval <osandov@fb.com> | ||
16 | Signed-off-by: Michael S. Tsirkin <mst@redhat.com> | ||
17 | Reviewed-by: Amit Shah <amit.shah@redhat.com> | ||
18 | Cc: Ben Hutchings <ben@decadent.org.uk> | ||
19 | Cc: Brad Spengler <spender@grsecurity.net> | ||
20 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
21 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
22 | --- | ||
23 | drivers/char/virtio_console.c | 12 ++++++++++-- | ||
24 | 1 file changed, 10 insertions(+), 2 deletions(-) | ||
25 | |||
26 | diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c | ||
27 | index 5649234..471a301 100644 | ||
28 | --- a/drivers/char/virtio_console.c | ||
29 | +++ b/drivers/char/virtio_console.c | ||
30 | @@ -1136,6 +1136,8 @@ static int put_chars(u32 vtermno, const char *buf, int count) | ||
31 | { | ||
32 | struct port *port; | ||
33 | struct scatterlist sg[1]; | ||
34 | + void *data; | ||
35 | + int ret; | ||
36 | |||
37 | if (unlikely(early_put_chars)) | ||
38 | return early_put_chars(vtermno, buf, count); | ||
39 | @@ -1144,8 +1146,14 @@ static int put_chars(u32 vtermno, const char *buf, int count) | ||
40 | if (!port) | ||
41 | return -EPIPE; | ||
42 | |||
43 | - sg_init_one(sg, buf, count); | ||
44 | - return __send_to_port(port, sg, 1, count, (void *)buf, false); | ||
45 | + data = kmemdup(buf, count, GFP_ATOMIC); | ||
46 | + if (!data) | ||
47 | + return -ENOMEM; | ||
48 | + | ||
49 | + sg_init_one(sg, data, count); | ||
50 | + ret = __send_to_port(port, sg, 1, count, data, false); | ||
51 | + kfree(data); | ||
52 | + return ret; | ||
53 | } | ||
54 | |||
55 | /* | ||
56 | -- | ||
57 | 1.9.1 | ||
58 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-8068.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-8068.patch deleted file mode 100644 index 3529b21..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-8068.patch +++ /dev/null | |||
@@ -1,101 +0,0 @@ | |||
1 | From 878b015bcc726560b13be2d906caf6923428f05d Mon Sep 17 00:00:00 2001 | ||
2 | From: Ben Hutchings <ben@decadent.org.uk> | ||
3 | Date: Sat, 4 Feb 2017 16:56:03 +0000 | ||
4 | Subject: [PATCH] pegasus: Use heap buffers for all register access | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | [ Upstream commit 5593523f968bc86d42a035c6df47d5e0979b5ace ] | ||
10 | |||
11 | Allocating USB buffers on the stack is not portable, and no longer | ||
12 | works on x86_64 (with VMAP_STACK enabled as per default). | ||
13 | |||
14 | CVE: CVE-2017-8068 | ||
15 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.51&id=878b015bcc726560b13be2d906caf6923428f05d] | ||
16 | |||
17 | Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") | ||
18 | References: https://bugs.debian.org/852556 | ||
19 | Reported-by: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org> | ||
20 | Tested-by: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org> | ||
21 | Signed-off-by: Ben Hutchings <ben@decadent.org.uk> | ||
22 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
23 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
24 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
25 | --- | ||
26 | drivers/net/usb/pegasus.c | 29 +++++++++++++++++++++++++---- | ||
27 | 1 file changed, 25 insertions(+), 4 deletions(-) | ||
28 | |||
29 | diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c | ||
30 | index 1434e5d..ee40ac2 100644 | ||
31 | --- a/drivers/net/usb/pegasus.c | ||
32 | +++ b/drivers/net/usb/pegasus.c | ||
33 | @@ -126,40 +126,61 @@ static void async_ctrl_callback(struct urb *urb) | ||
34 | |||
35 | static int get_registers(pegasus_t *pegasus, __u16 indx, __u16 size, void *data) | ||
36 | { | ||
37 | + u8 *buf; | ||
38 | int ret; | ||
39 | |||
40 | + buf = kmalloc(size, GFP_NOIO); | ||
41 | + if (!buf) | ||
42 | + return -ENOMEM; | ||
43 | + | ||
44 | ret = usb_control_msg(pegasus->usb, usb_rcvctrlpipe(pegasus->usb, 0), | ||
45 | PEGASUS_REQ_GET_REGS, PEGASUS_REQT_READ, 0, | ||
46 | - indx, data, size, 1000); | ||
47 | + indx, buf, size, 1000); | ||
48 | if (ret < 0) | ||
49 | netif_dbg(pegasus, drv, pegasus->net, | ||
50 | "%s returned %d\n", __func__, ret); | ||
51 | + else if (ret <= size) | ||
52 | + memcpy(data, buf, ret); | ||
53 | + kfree(buf); | ||
54 | return ret; | ||
55 | } | ||
56 | |||
57 | -static int set_registers(pegasus_t *pegasus, __u16 indx, __u16 size, void *data) | ||
58 | +static int set_registers(pegasus_t *pegasus, __u16 indx, __u16 size, | ||
59 | + const void *data) | ||
60 | { | ||
61 | + u8 *buf; | ||
62 | int ret; | ||
63 | |||
64 | + buf = kmemdup(data, size, GFP_NOIO); | ||
65 | + if (!buf) | ||
66 | + return -ENOMEM; | ||
67 | + | ||
68 | ret = usb_control_msg(pegasus->usb, usb_sndctrlpipe(pegasus->usb, 0), | ||
69 | PEGASUS_REQ_SET_REGS, PEGASUS_REQT_WRITE, 0, | ||
70 | - indx, data, size, 100); | ||
71 | + indx, buf, size, 100); | ||
72 | if (ret < 0) | ||
73 | netif_dbg(pegasus, drv, pegasus->net, | ||
74 | "%s returned %d\n", __func__, ret); | ||
75 | + kfree(buf); | ||
76 | return ret; | ||
77 | } | ||
78 | |||
79 | static int set_register(pegasus_t *pegasus, __u16 indx, __u8 data) | ||
80 | { | ||
81 | + u8 *buf; | ||
82 | int ret; | ||
83 | |||
84 | + buf = kmemdup(&data, 1, GFP_NOIO); | ||
85 | + if (!buf) | ||
86 | + return -ENOMEM; | ||
87 | + | ||
88 | ret = usb_control_msg(pegasus->usb, usb_sndctrlpipe(pegasus->usb, 0), | ||
89 | PEGASUS_REQ_SET_REG, PEGASUS_REQT_WRITE, data, | ||
90 | - indx, &data, 1, 1000); | ||
91 | + indx, buf, 1, 1000); | ||
92 | if (ret < 0) | ||
93 | netif_dbg(pegasus, drv, pegasus->net, | ||
94 | "%s returned %d\n", __func__, ret); | ||
95 | + kfree(buf); | ||
96 | return ret; | ||
97 | } | ||
98 | |||
99 | -- | ||
100 | 1.9.1 | ||
101 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-8069.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-8069.patch deleted file mode 100644 index 11a3ee2..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-8069.patch +++ /dev/null | |||
@@ -1,73 +0,0 @@ | |||
1 | From e898f6f008aa91c154c9c8fb7be3fb9ec4d333ec Mon Sep 17 00:00:00 2001 | ||
2 | From: Ben Hutchings <ben@decadent.org.uk> | ||
3 | Date: Sat, 4 Feb 2017 16:56:32 +0000 | ||
4 | Subject: [PATCH] rtl8150: Use heap buffers for all register access | ||
5 | |||
6 | [ Upstream commit 7926aff5c57b577ab0f43364ff0c59d968f6a414 ] | ||
7 | |||
8 | Allocating USB buffers on the stack is not portable, and no longer | ||
9 | works on x86_64 (with VMAP_STACK enabled as per default). | ||
10 | |||
11 | CVE: CVE-2017-8069 | ||
12 | Upstream-Status: Backport [backport from: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=v4.9.51&id=e898f6f008aa91c154c9c8fb7be3fb9ec4d333ec] | ||
13 | |||
14 | Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") | ||
15 | Signed-off-by: Ben Hutchings <ben@decadent.org.uk> | ||
16 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
17 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
18 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
19 | --- | ||
20 | drivers/net/usb/rtl8150.c | 34 +++++++++++++++++++++++++++------- | ||
21 | 1 file changed, 27 insertions(+), 7 deletions(-) | ||
22 | |||
23 | diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c | ||
24 | index 7c72bfa..dc4f7ea 100644 | ||
25 | --- a/drivers/net/usb/rtl8150.c | ||
26 | +++ b/drivers/net/usb/rtl8150.c | ||
27 | @@ -155,16 +155,36 @@ struct async_req { | ||
28 | */ | ||
29 | static int get_registers(rtl8150_t * dev, u16 indx, u16 size, void *data) | ||
30 | { | ||
31 | - return usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), | ||
32 | - RTL8150_REQ_GET_REGS, RTL8150_REQT_READ, | ||
33 | - indx, 0, data, size, 500); | ||
34 | + void *buf; | ||
35 | + int ret; | ||
36 | + | ||
37 | + buf = kmalloc(size, GFP_NOIO); | ||
38 | + if (!buf) | ||
39 | + return -ENOMEM; | ||
40 | + | ||
41 | + ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), | ||
42 | + RTL8150_REQ_GET_REGS, RTL8150_REQT_READ, | ||
43 | + indx, 0, buf, size, 500); | ||
44 | + if (ret > 0 && ret <= size) | ||
45 | + memcpy(data, buf, ret); | ||
46 | + kfree(buf); | ||
47 | + return ret; | ||
48 | } | ||
49 | |||
50 | -static int set_registers(rtl8150_t * dev, u16 indx, u16 size, void *data) | ||
51 | +static int set_registers(rtl8150_t * dev, u16 indx, u16 size, const void *data) | ||
52 | { | ||
53 | - return usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), | ||
54 | - RTL8150_REQ_SET_REGS, RTL8150_REQT_WRITE, | ||
55 | - indx, 0, data, size, 500); | ||
56 | + void *buf; | ||
57 | + int ret; | ||
58 | + | ||
59 | + buf = kmemdup(data, size, GFP_NOIO); | ||
60 | + if (!buf) | ||
61 | + return -ENOMEM; | ||
62 | + | ||
63 | + ret = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), | ||
64 | + RTL8150_REQ_SET_REGS, RTL8150_REQT_WRITE, | ||
65 | + indx, 0, buf, size, 500); | ||
66 | + kfree(buf); | ||
67 | + return ret; | ||
68 | } | ||
69 | |||
70 | static void async_set_reg_cb(struct urb *urb) | ||
71 | -- | ||
72 | 1.9.1 | ||
73 | |||
diff --git a/recipes-kernel/linux/linux-cavium/CVE-2017-8831.patch b/recipes-kernel/linux/linux-cavium/CVE-2017-8831.patch deleted file mode 100644 index cfa533a..0000000 --- a/recipes-kernel/linux/linux-cavium/CVE-2017-8831.patch +++ /dev/null | |||
@@ -1,75 +0,0 @@ | |||
1 | From 354dd3924a2e43806774953de536257548b5002c Mon Sep 17 00:00:00 2001 | ||
2 | From: Steven Toth <stoth@kernellabs.com> | ||
3 | Date: Tue, 6 Jun 2017 08:30:27 -0400 | ||
4 | Subject: [PATCH] [PATCH] saa7164: Bug - Double fetch PCIe access condition | ||
5 | |||
6 | Avoid a double fetch by reusing the values from the prior transfer. | ||
7 | |||
8 | Originally reported via https://bugzilla.kernel.org/show_bug.cgi?id=195559 | ||
9 | |||
10 | Thanks to Pengfei Wang <wpengfeinudt@gmail.com> for reporting. | ||
11 | |||
12 | CVE: CVE-2017-8831 | ||
13 | Upstream-Status: Backport [backport from ... | ||
14 | |||
15 | Signed-off-by: Steven Toth <stoth@kernellabs.com> | ||
16 | Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com> | ||
17 | --- | ||
18 | drivers/media/pci/saa7164/saa7164-bus.c | 13 +------------ | ||
19 | 1 file changed, 1 insertion(+), 12 deletions(-) | ||
20 | |||
21 | diff --git a/drivers/media/pci/saa7164/saa7164-bus.c b/drivers/media/pci/saa7164/saa7164-bus.c | ||
22 | index b2ff82fa7116..ecfeac5cdbed 100644 | ||
23 | --- a/drivers/media/pci/saa7164/saa7164-bus.c | ||
24 | +++ b/drivers/media/pci/saa7164/saa7164-bus.c | ||
25 | @@ -389,11 +389,11 @@ int saa7164_bus_get(struct saa7164_dev *dev, struct tmComResInfo* msg, | ||
26 | msg_tmp.size = le16_to_cpu((__force __le16)msg_tmp.size); | ||
27 | msg_tmp.command = le32_to_cpu((__force __le32)msg_tmp.command); | ||
28 | msg_tmp.controlselector = le16_to_cpu((__force __le16)msg_tmp.controlselector); | ||
29 | + memcpy(msg, &msg_tmp, sizeof(*msg)); | ||
30 | |||
31 | /* No need to update the read positions, because this was a peek */ | ||
32 | /* If the caller specifically want to peek, return */ | ||
33 | if (peekonly) { | ||
34 | - memcpy(msg, &msg_tmp, sizeof(*msg)); | ||
35 | goto peekout; | ||
36 | } | ||
37 | |||
38 | @@ -438,21 +438,15 @@ int saa7164_bus_get(struct saa7164_dev *dev, struct tmComResInfo* msg, | ||
39 | space_rem = bus->m_dwSizeGetRing - curr_grp; | ||
40 | |||
41 | if (space_rem < sizeof(*msg)) { | ||
42 | - /* msg wraps around the ring */ | ||
43 | - memcpy_fromio(msg, bus->m_pdwGetRing + curr_grp, space_rem); | ||
44 | - memcpy_fromio((u8 *)msg + space_rem, bus->m_pdwGetRing, | ||
45 | - sizeof(*msg) - space_rem); | ||
46 | if (buf) | ||
47 | memcpy_fromio(buf, bus->m_pdwGetRing + sizeof(*msg) - | ||
48 | space_rem, buf_size); | ||
49 | |||
50 | } else if (space_rem == sizeof(*msg)) { | ||
51 | - memcpy_fromio(msg, bus->m_pdwGetRing + curr_grp, sizeof(*msg)); | ||
52 | if (buf) | ||
53 | memcpy_fromio(buf, bus->m_pdwGetRing, buf_size); | ||
54 | } else { | ||
55 | /* Additional data wraps around the ring */ | ||
56 | - memcpy_fromio(msg, bus->m_pdwGetRing + curr_grp, sizeof(*msg)); | ||
57 | if (buf) { | ||
58 | memcpy_fromio(buf, bus->m_pdwGetRing + curr_grp + | ||
59 | sizeof(*msg), space_rem - sizeof(*msg)); | ||
60 | @@ -465,15 +459,10 @@ int saa7164_bus_get(struct saa7164_dev *dev, struct tmComResInfo* msg, | ||
61 | |||
62 | } else { | ||
63 | /* No wrapping */ | ||
64 | - memcpy_fromio(msg, bus->m_pdwGetRing + curr_grp, sizeof(*msg)); | ||
65 | if (buf) | ||
66 | memcpy_fromio(buf, bus->m_pdwGetRing + curr_grp + sizeof(*msg), | ||
67 | buf_size); | ||
68 | } | ||
69 | - /* Convert from little endian to CPU */ | ||
70 | - msg->size = le16_to_cpu((__force __le16)msg->size); | ||
71 | - msg->command = le32_to_cpu((__force __le32)msg->command); | ||
72 | - msg->controlselector = le16_to_cpu((__force __le16)msg->controlselector); | ||
73 | |||
74 | /* Update the read positions, adjusting the ring */ | ||
75 | saa7164_writel(bus->m_dwGetReadPos, new_grp); | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/asim-cn81xx-linux.dts b/recipes-kernel/linux/linux-cavium/dts/asim-cn81xx-linux.dts deleted file mode 100644 index 006e00e..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/asim-cn81xx-linux.dts +++ /dev/null | |||
@@ -1,541 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn81xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | mdio-nexus@1,3 { | ||
56 | mdio0@87e005003800 { | ||
57 | rgmii00: rgmii00 { | ||
58 | reg = <3> ; | ||
59 | compatible = "micrel,ksz9031", "ethernet-phy-ieee802.3-c22"; | ||
60 | }; | ||
61 | }; | ||
62 | |||
63 | mdio1@87e005003880 { | ||
64 | sgmii00: sgmii00 { | ||
65 | qlm-mode = "0x000,sgmii"; | ||
66 | reg = <0> ; | ||
67 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
68 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
69 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
70 | <3 0x11 0 0x00aa>, | ||
71 | <3 0x12 0 0x4105>, | ||
72 | <3 0x13 0 0x8a08>; | ||
73 | }; | ||
74 | sgmii01: sgmii01 { | ||
75 | qlm-mode = "0x001,sgmii"; | ||
76 | reg = <1> ; | ||
77 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
78 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
79 | <3 0x11 0 0x00aa>, | ||
80 | <3 0x12 0 0x4105>, | ||
81 | <3 0x13 0 0x8a08>; | ||
82 | }; | ||
83 | sgmii02: sgmii02 { | ||
84 | qlm-mode = "0x002,sgmii"; | ||
85 | reg = <2> ; | ||
86 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
87 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
88 | <3 0x11 0 0x00aa>, | ||
89 | <3 0x12 0 0x4105>, | ||
90 | <3 0x13 0 0x8a08>; | ||
91 | }; | ||
92 | sgmii03: sgmii03 { | ||
93 | qlm-mode = "0x003,sgmii"; | ||
94 | reg = <3> ; | ||
95 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
96 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
97 | <3 0x11 0 0x00aa>, | ||
98 | <3 0x12 0 0x4105>, | ||
99 | <3 0x13 0 0x8a08>; | ||
100 | }; | ||
101 | xfi00: xfi00 { | ||
102 | qlm-mode = "0x000,xfi","0x000,xfi-10g-kr"; | ||
103 | reg = <0> ; | ||
104 | compatible = "cortina,cs4223-slice"; | ||
105 | }; | ||
106 | xfi01: xfi01 { | ||
107 | qlm-mode = "0x001,xfi","0x001,xfi-10g-kr"; | ||
108 | reg = <1> ; | ||
109 | compatible = "cortina,cs4223-slice"; | ||
110 | }; | ||
111 | xfi02: xfi02 { | ||
112 | qlm-mode = "0x002,xfi","0x002,xfi-10g-kr"; | ||
113 | reg = <2> ; | ||
114 | compatible = "cortina,cs4223-slice"; | ||
115 | }; | ||
116 | xfi03: xfi03 { | ||
117 | qlm-mode = "0x003,xfi","0x003,xfi-10g-kr"; | ||
118 | reg = <3> ; | ||
119 | compatible = "cortina,cs4223-slice"; | ||
120 | }; | ||
121 | xlaui00: xlaui00 { | ||
122 | qlm-mode = "0x000,xlaui","0x000,xlaui-40g-kr"; | ||
123 | reg = <0> ; | ||
124 | compatible = "cortina,cs4223-slice"; | ||
125 | }; | ||
126 | xaui00: xaui00 { | ||
127 | qlm-mode = "0x000,xaui"; | ||
128 | reg = <0> ; | ||
129 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
130 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
131 | }; | ||
132 | rxaui00: rxaui00 { | ||
133 | qlm-mode = "0x000,rxaui"; | ||
134 | reg = <0> ; | ||
135 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
136 | }; | ||
137 | rxaui01: rxaui01 { | ||
138 | qlm-mode = "0x001,rxaui"; | ||
139 | reg = <2> ; | ||
140 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
141 | }; | ||
142 | qsgmii00: qsgmii00 { | ||
143 | qlm-mode = "0x000,qsgmii"; | ||
144 | reg = <0> ; | ||
145 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
146 | }; | ||
147 | qsgmii01: qsgmii01 { | ||
148 | qlm-mode = "0x001,qsgmii"; | ||
149 | reg = <1> ; | ||
150 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
151 | }; | ||
152 | qsgmii02: qsgmii02 { | ||
153 | qlm-mode = "0x002,qsgmii"; | ||
154 | reg = <2> ; | ||
155 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
156 | }; | ||
157 | qsgmii03: qsgmii03 { | ||
158 | qlm-mode = "0x003,qsgmii"; | ||
159 | reg = <3> ; | ||
160 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
161 | }; | ||
162 | |||
163 | sgmii10: sgmii10 { | ||
164 | qlm-mode = "0x010,sgmii"; | ||
165 | reg = <8> ; | ||
166 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
167 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
168 | <3 0x11 0 0x00aa>, | ||
169 | <3 0x12 0 0x4105>, | ||
170 | <3 0x13 0 0x8a08>; | ||
171 | }; | ||
172 | sgmii11: sgmii11 { | ||
173 | qlm-mode = "0x011,sgmii"; | ||
174 | reg = <9> ; | ||
175 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
176 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
177 | <3 0x11 0 0x00aa>, | ||
178 | <3 0x12 0 0x4105>, | ||
179 | <3 0x13 0 0x8a08>; | ||
180 | }; | ||
181 | sgmii12: sgmii12 { | ||
182 | qlm-mode = "0x012,sgmii"; | ||
183 | reg = <10> ; | ||
184 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
185 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
186 | <3 0x11 0 0x00aa>, | ||
187 | <3 0x12 0 0x4105>, | ||
188 | <3 0x13 0 0x8a08>; | ||
189 | }; | ||
190 | sgmii13: sgmii13 { | ||
191 | qlm-mode = "0x013,sgmii"; | ||
192 | reg = <11> ; | ||
193 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
194 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
195 | <3 0x11 0 0x00aa>, | ||
196 | <3 0x12 0 0x4105>, | ||
197 | <3 0x13 0 0x8a08>; | ||
198 | }; | ||
199 | xfi10: xfi10 { | ||
200 | qlm-mode = "0x010,xfi","0x010,xfi-10g-kr"; | ||
201 | reg = <8> ; | ||
202 | compatible = "cortina,cs4223-slice"; | ||
203 | }; | ||
204 | xfi11: xfi11 { | ||
205 | qlm-mode = "0x011,xfi","0x011,xfi-10g-kr"; | ||
206 | reg = <9> ; | ||
207 | compatible = "cortina,cs4223-slice"; | ||
208 | }; | ||
209 | xfi12: xfi12 { | ||
210 | qlm-mode = "0x012,xfi","0x012,xfi-10g-kr"; | ||
211 | reg = <10> ; | ||
212 | compatible = "cortina,cs4223-slice"; | ||
213 | }; | ||
214 | xfi13: xfi13 { | ||
215 | qlm-mode = "0x013,xfi","0x013,xfi-10g-kr"; | ||
216 | reg = <11> ; | ||
217 | compatible = "cortina,cs4223-slice"; | ||
218 | }; | ||
219 | xlaui10: xlaui10 { | ||
220 | qlm-mode = "0x010,xlaui","0x010,xlaui-40g-kr"; | ||
221 | reg = <8> ; | ||
222 | compatible = "cortina,cs4223-slice"; | ||
223 | }; | ||
224 | xaui10: xaui10 { | ||
225 | qlm-mode = "0x010,xaui"; | ||
226 | reg = <8> ; | ||
227 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
228 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
229 | }; | ||
230 | rxaui10: rxaui10 { | ||
231 | qlm-mode = "0x010,rxaui"; | ||
232 | reg = <8> ; | ||
233 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
234 | }; | ||
235 | rxaui11: rxaui11 { | ||
236 | qlm-mode = "0x011,rxaui"; | ||
237 | reg = <10> ; | ||
238 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
239 | }; | ||
240 | qsgmii10: qsgmii10 { | ||
241 | qlm-mode = "0x010,qsgmii"; | ||
242 | reg = <8> ; | ||
243 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
244 | }; | ||
245 | qsgmii11: qsgmii11 { | ||
246 | qlm-mode = "0x011,qsgmii"; | ||
247 | reg = <9> ; | ||
248 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
249 | }; | ||
250 | qsgmii12: qsgmii12 { | ||
251 | qlm-mode = "0x012,qsgmii"; | ||
252 | reg = <10> ; | ||
253 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
254 | }; | ||
255 | qsgmii13: qsgmii13 { | ||
256 | qlm-mode = "0x013,qsgmii"; | ||
257 | reg = <11> ; | ||
258 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
259 | }; | ||
260 | }; | ||
261 | }; | ||
262 | |||
263 | rgx0 { | ||
264 | rgmii00 { | ||
265 | reg = <3>; | ||
266 | local-mac-address = [00 00 00 00 00 00]; | ||
267 | phy-handle = <&rgmii00>; | ||
268 | }; | ||
269 | }; | ||
270 | |||
271 | bgx0 { | ||
272 | /* typename+qlm+typenumber eg : | ||
273 | sgmii+bgx0+sgmmi0 | ||
274 | */ | ||
275 | // SGMII | ||
276 | sgmii00 { | ||
277 | reg = <0>; | ||
278 | qlm-mode = "0x000,sgmii"; | ||
279 | local-mac-address = [00 00 00 00 00 00]; | ||
280 | phy-handle = <&sgmii00>; | ||
281 | }; | ||
282 | sgmii01 { | ||
283 | reg = <1>; | ||
284 | qlm-mode = "0x001,sgmii"; | ||
285 | local-mac-address = [00 00 00 00 00 00]; | ||
286 | phy-handle = <&sgmii01>; | ||
287 | }; | ||
288 | sgmii02 { | ||
289 | reg = <2>; | ||
290 | qlm-mode = "0x002,sgmii"; | ||
291 | local-mac-address = [00 00 00 00 00 00]; | ||
292 | phy-handle = <&sgmii02>; | ||
293 | }; | ||
294 | sgmii03 { | ||
295 | reg = <3>; | ||
296 | qlm-mode = "0x003,sgmii"; | ||
297 | local-mac-address = [00 00 00 00 00 00]; | ||
298 | phy-handle = <&sgmii03>; | ||
299 | }; | ||
300 | xfi00 { | ||
301 | reg = <0>; | ||
302 | qlm-mode = "0x000,xfi"; | ||
303 | local-mac-address = [00 00 00 00 00 00]; | ||
304 | phy-handle = <&xfi00>; | ||
305 | }; | ||
306 | xfi01 { | ||
307 | reg = <1>; | ||
308 | qlm-mode = "0x001,xfi"; | ||
309 | local-mac-address = [00 00 00 00 00 00]; | ||
310 | phy-handle = <&xfi01>; | ||
311 | }; | ||
312 | xfi02 { | ||
313 | reg = <2>; | ||
314 | qlm-mode = "0x002,xfi"; | ||
315 | local-mac-address = [00 00 00 00 00 00]; | ||
316 | phy-handle = <&xfi02>; | ||
317 | }; | ||
318 | xfi03 { | ||
319 | reg = <3>; | ||
320 | qlm-mode = "0x003,xfi"; | ||
321 | local-mac-address = [00 00 00 00 00 00]; | ||
322 | phy-handle = <&xfi03>; | ||
323 | }; | ||
324 | // 10g-kr | ||
325 | xfi-10g-kr00 { | ||
326 | reg = <0>; | ||
327 | qlm-mode = "0x000,xfi-10g-kr"; | ||
328 | local-mac-address = [00 00 00 00 00 00]; | ||
329 | phy-handle = <&xfi00>; | ||
330 | }; | ||
331 | xfi-10g-kr01 { | ||
332 | reg = <1>; | ||
333 | qlm-mode = "0x001,xfi-10g-kr"; | ||
334 | local-mac-address = [00 00 00 00 00 00]; | ||
335 | phy-handle = <&xfi01>; | ||
336 | }; | ||
337 | xfi-10g-kr02 { | ||
338 | reg = <2>; | ||
339 | qlm-mode = "0x002,xfi-10g-kr"; | ||
340 | local-mac-address = [00 00 00 00 00 00]; | ||
341 | phy-handle = <&xfi02>; | ||
342 | }; | ||
343 | xfi-10g-kr03 { | ||
344 | reg = <3>; | ||
345 | qlm-mode = "0x003,xfi-10g-kr"; | ||
346 | local-mac-address = [00 00 00 00 00 00]; | ||
347 | phy-handle = <&xfi03>; | ||
348 | }; | ||
349 | xlaui00 { | ||
350 | reg = <0>; | ||
351 | qlm-mode = "0x000,xlaui"; | ||
352 | local-mac-address = [00 00 00 00 00 00]; | ||
353 | phy-handle = <&xlaui00>; | ||
354 | }; | ||
355 | xlaui-40g-kr00 { | ||
356 | reg = <0>; | ||
357 | qlm-mode = "0x000,xlaui-40g-kr"; | ||
358 | local-mac-address = [00 00 00 00 00 00]; | ||
359 | phy-handle = <&xlaui00>; | ||
360 | }; | ||
361 | xaui00 { | ||
362 | reg = <0>; | ||
363 | qlm-mode = "0x000,xaui"; | ||
364 | local-mac-address = [00 00 00 00 00 00]; | ||
365 | phy-handle = <&xaui00>; | ||
366 | }; | ||
367 | rxaui00 { | ||
368 | reg = <0>; | ||
369 | qlm-mode = "0x000,rxaui"; | ||
370 | local-mac-address = [00 00 00 00 00 00]; | ||
371 | phy-handle = <&rxaui00>; | ||
372 | }; | ||
373 | rxaui01 { | ||
374 | reg = <1>; | ||
375 | qlm-mode = "0x001,rxaui"; | ||
376 | local-mac-address = [00 00 00 00 00 00]; | ||
377 | phy-handle = <&rxaui01>; | ||
378 | }; | ||
379 | qsgmii00 { | ||
380 | reg = <0>; | ||
381 | qlm-mode = "0x000,qsgmii"; | ||
382 | local-mac-address = [00 00 00 00 00 00]; | ||
383 | phy-handle = <&qsgmii00>; | ||
384 | }; | ||
385 | qsgmii01 { | ||
386 | reg = <1>; | ||
387 | qlm-mode = "0x001,qsgmii"; | ||
388 | local-mac-address = [00 00 00 00 00 00]; | ||
389 | phy-handle = <&qsgmii01>; | ||
390 | }; | ||
391 | qsgmii02 { | ||
392 | reg = <2>; | ||
393 | qlm-mode = "0x002,qsgmii"; | ||
394 | local-mac-address = [00 00 00 00 00 00]; | ||
395 | phy-handle = <&qsgmii02>; | ||
396 | }; | ||
397 | qsgmii03 { | ||
398 | reg = <3>; | ||
399 | qlm-mode = "0x003,qsgmii"; | ||
400 | local-mac-address = [00 00 00 00 00 00]; | ||
401 | phy-handle = <&qsgmii03>; | ||
402 | }; | ||
403 | }; | ||
404 | bgx1 { | ||
405 | sgmii10 { | ||
406 | reg = <0>; | ||
407 | qlm-mode = "0x010,sgmii"; | ||
408 | local-mac-address = [00 00 00 00 00 00]; | ||
409 | phy-handle = <&sgmii10>; /*"sgmmi"+bgx+no */ | ||
410 | }; | ||
411 | sgmii11 { | ||
412 | reg = <1>; | ||
413 | qlm-mode = "0x011,sgmii"; | ||
414 | local-mac-address = [00 00 00 00 00 00]; | ||
415 | phy-handle = <&sgmii11>; | ||
416 | }; | ||
417 | sgmii12 { | ||
418 | reg = <2>; | ||
419 | qlm-mode = "0x012,sgmii"; | ||
420 | local-mac-address = [00 00 00 00 00 00]; | ||
421 | phy-handle = <&sgmii12>; | ||
422 | }; | ||
423 | sgmii13 { | ||
424 | reg = <3>; | ||
425 | qlm-mode = "0x013,sgmii"; | ||
426 | local-mac-address = [00 00 00 00 00 00]; | ||
427 | phy-handle = <&sgmii13>; | ||
428 | }; | ||
429 | xfi10 { | ||
430 | reg = <0>; | ||
431 | qlm-mode = "0x010,xfi"; | ||
432 | local-mac-address = [00 00 00 00 00 00]; | ||
433 | phy-handle = <&xfi10>; | ||
434 | }; | ||
435 | xfi11 { | ||
436 | reg = <1>; | ||
437 | qlm-mode = "0x011,xfi"; | ||
438 | local-mac-address = [00 00 00 00 00 00]; | ||
439 | phy-handle = <&xfi11>; | ||
440 | }; | ||
441 | xfi12 { | ||
442 | reg = <2>; | ||
443 | qlm-mode = "0x012,xfi"; | ||
444 | local-mac-address = [00 00 00 00 00 00]; | ||
445 | phy-handle = <&xfi12>; | ||
446 | }; | ||
447 | xfi13 { | ||
448 | reg = <3>; | ||
449 | qlm-mode = "0x013,xfi"; | ||
450 | local-mac-address = [00 00 00 00 00 00]; | ||
451 | phy-handle = <&xfi13>; | ||
452 | }; | ||
453 | // 10g_kr | ||
454 | xfi-10g-kr10 { | ||
455 | reg = <0>; | ||
456 | qlm-mode = "0x010,xfi-10g-kr"; | ||
457 | local-mac-address = [00 00 00 00 00 00]; | ||
458 | phy-handle = <&xfi10>; | ||
459 | }; | ||
460 | xfi-10g-kr11 { | ||
461 | reg = <1>; | ||
462 | qlm-mode = "0x011,xfi-10g-kr"; | ||
463 | local-mac-address = [00 00 00 00 00 00]; | ||
464 | phy-handle = <&xfi11>; | ||
465 | }; | ||
466 | xfi-10g-kr12 { | ||
467 | reg = <2>; | ||
468 | qlm-mode = "0x012,xfi-10g-kr"; | ||
469 | local-mac-address = [00 00 00 00 00 00]; | ||
470 | phy-handle = <&xfi12>; | ||
471 | }; | ||
472 | xfi-10g-kr13 { | ||
473 | reg = <3>; | ||
474 | qlm-mode = "0x013,xfi-10g-kr"; | ||
475 | local-mac-address = [00 00 00 00 00 00]; | ||
476 | phy-handle = <&xfi13>; | ||
477 | }; | ||
478 | xlaui10 { | ||
479 | reg = <0>; | ||
480 | qlm-mode = "0x010,xlaui"; | ||
481 | local-mac-address = [00 00 00 00 00 00]; | ||
482 | phy-handle = <&xlaui10>; | ||
483 | }; | ||
484 | xlaui-40g-kr-10 { | ||
485 | reg = <0>; | ||
486 | qlm-mode = "0x010,xlaui-40g-kr"; | ||
487 | local-mac-address = [00 00 00 00 00 00]; | ||
488 | phy-handle = <&xlaui10>; | ||
489 | }; | ||
490 | xaui10 { | ||
491 | reg = <0>; | ||
492 | qlm-mode = "0x010,xaui"; | ||
493 | local-mac-address = [00 00 00 00 00 00]; | ||
494 | phy-handle = <&xaui10>; | ||
495 | }; | ||
496 | rxaui10 { | ||
497 | reg = <8>; | ||
498 | qlm-mode = "0x010,rxaui"; | ||
499 | local-mac-address = [00 00 00 00 00 00]; | ||
500 | phy-handle = <&rxaui10>; | ||
501 | }; | ||
502 | rxaui11 { | ||
503 | reg = <9>; | ||
504 | qlm-mode = "0x011,rxaui"; | ||
505 | local-mac-address = [00 00 00 00 00 00]; | ||
506 | phy-handle = <&rxaui11>; | ||
507 | }; | ||
508 | qsgmii10 { | ||
509 | reg = <0>; | ||
510 | qlm-mode = "0x010,qsgmii"; | ||
511 | local-mac-address = [00 00 00 00 00 00]; | ||
512 | phy-handle = <&qsgmii10>; | ||
513 | }; | ||
514 | qsgmii11 { | ||
515 | reg = <1>; | ||
516 | qlm-mode = "0x011,qsgmii"; | ||
517 | local-mac-address = [00 00 00 00 00 00]; | ||
518 | phy-handle = <&qsgmii11>; | ||
519 | }; | ||
520 | qsgmii12 { | ||
521 | reg = <2>; | ||
522 | qlm-mode = "0x012,qsgmii"; | ||
523 | local-mac-address = [00 00 00 00 00 00]; | ||
524 | phy-handle = <&qsgmii12>; | ||
525 | }; | ||
526 | qsgmii13 { | ||
527 | reg = <3>; | ||
528 | qlm-mode = "0x013,qsgmii"; | ||
529 | local-mac-address = [00 00 00 00 00 00]; | ||
530 | phy-handle = <&qsgmii13>; | ||
531 | }; | ||
532 | }; | ||
533 | }; | ||
534 | |||
535 | &i2c_9_0 { | ||
536 | rtc@68 { | ||
537 | compatible = "dallas,ds1337"; | ||
538 | reg = <0x68>; | ||
539 | }; | ||
540 | }; | ||
541 | |||
diff --git a/recipes-kernel/linux/linux-cavium/dts/asim-cn83xx-linux.dts b/recipes-kernel/linux/linux-cavium/dts/asim-cn83xx-linux.dts deleted file mode 100644 index e1c90f7..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/asim-cn83xx-linux.dts +++ /dev/null | |||
@@ -1,490 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn83xx-linux.dtsi" | ||
53 | |||
54 | / { | ||
55 | soc@0 { | ||
56 | uaa0: serial@87e028000000 { | ||
57 | compatible = "arm,pl011", "arm,primecell"; | ||
58 | reg = <0x87e0 0x28000000 0x0 0x1000>; | ||
59 | interrupts = <0 5 4>; | ||
60 | clocks = <&refclkuaa>; | ||
61 | clock-names = "apb_pclk"; | ||
62 | uboot,skip-init; | ||
63 | }; | ||
64 | |||
65 | uaa1: serial@87e029000000 { | ||
66 | compatible = "arm,pl011", "arm,primecell"; | ||
67 | reg = <0x87e0 0x29000000 0x0 0x1000>; | ||
68 | interrupts = <0 6 4>; | ||
69 | clocks = <&refclkuaa>; | ||
70 | clock-names = "apb_pclk"; | ||
71 | uboot,skip-init; | ||
72 | }; | ||
73 | |||
74 | uaa2: serial@87e02a000000 { | ||
75 | compatible = "arm,pl011", "arm,primecell"; | ||
76 | reg = <0x87e0 0x2a000000 0x0 0x1000>; | ||
77 | interrupts = <0 7 4>; | ||
78 | clocks = <&refclkuaa>; | ||
79 | clock-names = "apb_pclk"; | ||
80 | uboot,skip-init; | ||
81 | }; | ||
82 | |||
83 | uaa3: serial@87e02b000000 { | ||
84 | compatible = "arm,pl011", "arm,primecell"; | ||
85 | reg = <0x87e0 0x2b000000 0x0 0x1000>; | ||
86 | interrupts = <0 8 4>; | ||
87 | clocks = <&refclkuaa>; | ||
88 | clock-names = "apb_pclk"; | ||
89 | uboot,skip-init; | ||
90 | }; | ||
91 | |||
92 | pci@848000000000 { | ||
93 | mrml-bridge0@1,0 { | ||
94 | mdio-nexus@1,3 { | ||
95 | mdio0@87e005003800 { | ||
96 | compatible = "cavium,thunder-8890-mdio"; | ||
97 | #address-cells = <1>; | ||
98 | #size-cells = <0>; | ||
99 | reg = <0x87e0 0x05003800 0x0 0x30>; | ||
100 | |||
101 | sgmii00: sgmii00 { | ||
102 | qlm-mode = "0x000,sgmii"; | ||
103 | reg = <0> ; | ||
104 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
105 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
106 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
107 | <3 0x11 0 0x00aa>, | ||
108 | <3 0x12 0 0x4105>, | ||
109 | <3 0x13 0 0x8a08>; | ||
110 | |||
111 | }; | ||
112 | sgmii01: sgmii01 { | ||
113 | qlm-mode = "0x001,sgmii"; | ||
114 | reg = <1> ; | ||
115 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
116 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
117 | <3 0x11 0 0x00aa>, | ||
118 | <3 0x12 0 0x4105>, | ||
119 | <3 0x13 0 0x8a08>; | ||
120 | }; | ||
121 | sgmii02: sgmii02 { | ||
122 | qlm-mode = "0x002,sgmii"; | ||
123 | reg = <2> ; | ||
124 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
125 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
126 | <3 0x11 0 0x00aa>, | ||
127 | <3 0x12 0 0x4105>, | ||
128 | <3 0x13 0 0x8a08>; | ||
129 | }; | ||
130 | sgmii03: sgmii03 { | ||
131 | qlm-mode = "0x003,sgmii"; | ||
132 | reg = <3> ; | ||
133 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
134 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
135 | <3 0x11 0 0x00aa>, | ||
136 | <3 0x12 0 0x4105>, | ||
137 | <3 0x13 0 0x8a08>; | ||
138 | }; | ||
139 | xfi00: xfi00 { | ||
140 | qlm-mode = "0x000,xfi","0x000,xfi-10g-kr"; | ||
141 | reg = <0> ; | ||
142 | compatible = "cortina,cs4223-slice"; | ||
143 | }; | ||
144 | xfi01: xfi01 { | ||
145 | qlm-mode = "0x001,xfi","0x001,xfi-10g-kr"; | ||
146 | reg = <1> ; | ||
147 | compatible = "cortina,cs4223-slice"; | ||
148 | }; | ||
149 | xfi02: xfi02 { | ||
150 | qlm-mode = "0x002,xfi","0x002,xfi-10g-kr"; | ||
151 | reg = <2> ; | ||
152 | compatible = "cortina,cs4223-slice"; | ||
153 | }; | ||
154 | xfi03: xfi03 { | ||
155 | qlm-mode = "0x003,xfi","0x003,xfi-10g-kr"; | ||
156 | reg = <3> ; | ||
157 | compatible = "cortina,cs4223-slice"; | ||
158 | }; | ||
159 | xlaui00: xlaui00 { | ||
160 | qlm-mode = "0x000,xlaui","0x000,xlaui-40g-kr"; | ||
161 | reg = <0> ; | ||
162 | compatible = "cortina,cs4223-slice"; | ||
163 | }; | ||
164 | xaui00: xaui00 { | ||
165 | qlm-mode = "0x000,xaui"; | ||
166 | reg = <0> ; | ||
167 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
168 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
169 | }; | ||
170 | rxaui00: rxaui00 { | ||
171 | qlm-mode = "0x000,rxaui"; | ||
172 | reg = <0> ; | ||
173 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
174 | }; | ||
175 | rxaui01: rxaui01 { | ||
176 | qlm-mode = "0x001,rxaui"; | ||
177 | reg = <1> ; | ||
178 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
179 | }; | ||
180 | qsgmii00: qsgmii00 { | ||
181 | qlm-mode = "0x000,qsgmii"; | ||
182 | reg = <0> ; | ||
183 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
184 | }; | ||
185 | qsgmii01: qsgmii01 { | ||
186 | qlm-mode = "0x001,qsgmii"; | ||
187 | reg = <1> ; | ||
188 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
189 | }; | ||
190 | qsgmii02: qsgmii02 { | ||
191 | qlm-mode = "0x002,qsgmii"; | ||
192 | reg = <2> ; | ||
193 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
194 | }; | ||
195 | qsgmii03: qsgmii03 { | ||
196 | qlm-mode = "0x003,qsgmii"; | ||
197 | reg = <3> ; | ||
198 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
199 | }; | ||
200 | |||
201 | sgmii10: sgmii10 { | ||
202 | qlm-mode = "0x010,sgmii"; | ||
203 | reg = <8> ; | ||
204 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
205 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
206 | <3 0x11 0 0x00aa>, | ||
207 | <3 0x12 0 0x4105>, | ||
208 | <3 0x13 0 0x8a08>; | ||
209 | }; | ||
210 | sgmii11: sgmii11 { | ||
211 | qlm-mode = "0x011,sgmii"; | ||
212 | reg = <9> ; | ||
213 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
214 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
215 | <3 0x11 0 0x00aa>, | ||
216 | <3 0x12 0 0x4105>, | ||
217 | <3 0x13 0 0x8a08>; | ||
218 | }; | ||
219 | sgmii12: sgmii12 { | ||
220 | qlm-mode = "0x012,sgmii"; | ||
221 | reg = <2> ; | ||
222 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
223 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
224 | <3 0x11 0 0x00aa>, | ||
225 | <3 0x12 0 0x4105>, | ||
226 | <3 0x13 0 0x8a08>; | ||
227 | }; | ||
228 | sgmii13: sgmii13 { | ||
229 | qlm-mode = "0x013,sgmii"; | ||
230 | reg = <3> ; | ||
231 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
232 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
233 | <3 0x11 0 0x00aa>, | ||
234 | <3 0x12 0 0x4105>, | ||
235 | <3 0x13 0 0x8a08>; | ||
236 | }; | ||
237 | xfi10: xfi10 { | ||
238 | qlm-mode = "0x010,xfi","0x010,xfi-10g-kr"; | ||
239 | reg = <8> ; | ||
240 | compatible = "cortina,cs4223-slice"; | ||
241 | }; | ||
242 | xfi11: xfi11 { | ||
243 | qlm-mode = "0x011,xfi","0x011,xfi-10g-kr"; | ||
244 | reg = <9> ; | ||
245 | compatible = "cortina,cs4223-slice"; | ||
246 | }; | ||
247 | xfi12: xfi12 { | ||
248 | qlm-mode = "0x012,xfi","0x012,xfi-10g-kr"; | ||
249 | reg = <10> ; | ||
250 | compatible = "cortina,cs4223-slice"; | ||
251 | }; | ||
252 | xfi13: xfi13 { | ||
253 | qlm-mode = "0x013,xfi","0x013,xfi-10g-kr"; | ||
254 | reg = <11> ; | ||
255 | compatible = "cortina,cs4223-slice"; | ||
256 | }; | ||
257 | xlaui10: xlaui10 { | ||
258 | qlm-mode = "0x010,xlaui","0x010,xlaui-40g-kr"; | ||
259 | reg = <8> ; | ||
260 | compatible = "cortina,cs4223-slice"; | ||
261 | }; | ||
262 | xaui10: xaui10 { | ||
263 | qlm-mode = "0x010,xaui"; | ||
264 | reg = <8> ; | ||
265 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
266 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
267 | }; | ||
268 | rxaui10: rxaui10 { | ||
269 | qlm-mode = "0x010,rxaui"; | ||
270 | reg = <8> ; | ||
271 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
272 | }; | ||
273 | rxaui11: rxaui11 { | ||
274 | qlm-mode = "0x011,rxaui"; | ||
275 | reg = <9> ; | ||
276 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
277 | }; | ||
278 | qsgmii10: qsgmii10 { | ||
279 | qlm-mode = "0x010,qsgmii"; | ||
280 | reg = <8> ; | ||
281 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
282 | }; | ||
283 | qsgmii11: qsgmii11 { | ||
284 | qlm-mode = "0x011,qsgmii"; | ||
285 | reg = <9> ; | ||
286 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
287 | }; | ||
288 | qsgmii12: qsgmii12 { | ||
289 | qlm-mode = "0x012,qsgmii"; | ||
290 | reg = <10> ; | ||
291 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
292 | }; | ||
293 | qsgmii13: qsgmii13 { | ||
294 | qlm-mode = "0x013,qsgmii"; | ||
295 | reg = <11> ; | ||
296 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
297 | }; | ||
298 | }; | ||
299 | |||
300 | mdio1@87e005003880 { | ||
301 | compatible = "cavium,thunder-8890-mdio"; | ||
302 | #address-cells = <1>; | ||
303 | #size-cells = <0>; | ||
304 | reg = <0x87e0 0x05003880 0x0 0x30>; | ||
305 | |||
306 | sgmii20: sgmii20 { | ||
307 | qlm-mode = "0x020,sgmii"; | ||
308 | reg = <0> ; | ||
309 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
310 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
311 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
312 | <3 0x11 0 0x00aa>, | ||
313 | <3 0x12 0 0x4105>, | ||
314 | <3 0x13 0 0x8a08>; | ||
315 | |||
316 | }; | ||
317 | sgmii21: sgmii21 { | ||
318 | qlm-mode = "0x021,sgmii"; | ||
319 | reg = <1> ; | ||
320 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
321 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
322 | <3 0x11 0 0x00aa>, | ||
323 | <3 0x12 0 0x4105>, | ||
324 | <3 0x13 0 0x8a08>; | ||
325 | }; | ||
326 | sgmii22: sgmii22 { | ||
327 | qlm-mode = "0x022,sgmii"; | ||
328 | reg = <2> ; | ||
329 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
330 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
331 | <3 0x11 0 0x00aa>, | ||
332 | <3 0x12 0 0x4105>, | ||
333 | <3 0x13 0 0x8a08>; | ||
334 | }; | ||
335 | sgmii23: sgmii23 { | ||
336 | qlm-mode = "0x023,sgmii"; | ||
337 | reg = <3> ; | ||
338 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
339 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
340 | <3 0x11 0 0x00aa>, | ||
341 | <3 0x12 0 0x4105>, | ||
342 | <3 0x13 0 0x8a08>; | ||
343 | }; | ||
344 | xfi20: xfi20 { | ||
345 | qlm-mode = "0x020,xfi","0x020,xfi-10g-kr"; | ||
346 | reg = <0> ; | ||
347 | compatible = "cortina,cs4223-slice"; | ||
348 | }; | ||
349 | xfi21: xfi21 { | ||
350 | qlm-mode = "0x021,xfi","0x021,xfi-10g-kr"; | ||
351 | reg = <1> ; | ||
352 | compatible = "cortina,cs4223-slice"; | ||
353 | }; | ||
354 | xfi22: xfi22 { | ||
355 | qlm-mode = "0x022,xfi","0x022,xfi-10g-kr"; | ||
356 | reg = <2> ; | ||
357 | compatible = "cortina,cs4223-slice"; | ||
358 | }; | ||
359 | xfi23: xfi23 { | ||
360 | qlm-mode = "0x023,xfi","0x023,xfi-10g-kr"; | ||
361 | reg = <3> ; | ||
362 | compatible = "cortina,cs4223-slice"; | ||
363 | }; | ||
364 | xlaui20: xlaui20 { | ||
365 | qlm-mode = "0x020,xlaui","0x020,xlaui-40g-kr"; | ||
366 | reg = <0> ; | ||
367 | compatible = "cortina,cs4223-slice"; | ||
368 | }; | ||
369 | xaui20: xaui20 { | ||
370 | qlm-mode = "0x020,xaui"; | ||
371 | reg = <0> ; | ||
372 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
373 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
374 | }; | ||
375 | rxaui20: rxaui20 { | ||
376 | qlm-mode = "0x020,rxaui"; | ||
377 | reg = <0> ; | ||
378 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
379 | }; | ||
380 | rxaui21: rxaui21 { | ||
381 | qlm-mode = "0x021,rxaui"; | ||
382 | reg = <1> ; | ||
383 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
384 | }; | ||
385 | qsgmii20: qsgmii20 { | ||
386 | qlm-mode = "0x020,qsgmii"; | ||
387 | reg = <0> ; | ||
388 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
389 | }; | ||
390 | qsgmii21: qsgmii21 { | ||
391 | qlm-mode = "0x021,qsgmii"; | ||
392 | reg = <1> ; | ||
393 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
394 | }; | ||
395 | qsgmii22: qsgmii22 { | ||
396 | qlm-mode = "0x022,qsgmii"; | ||
397 | reg = <2> ; | ||
398 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
399 | }; | ||
400 | qsgmii23: qsgmii23 { | ||
401 | qlm-mode = "0x023,qsgmii"; | ||
402 | reg = <3> ; | ||
403 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
404 | }; | ||
405 | |||
406 | sgmii30: sgmii30 { | ||
407 | qlm-mode = "0x030,sgmii"; | ||
408 | reg = <8> ; | ||
409 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
410 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
411 | <3 0x11 0 0x00aa>, | ||
412 | <3 0x12 0 0x4105>, | ||
413 | <3 0x13 0 0x8a08>; | ||
414 | }; | ||
415 | sgmii31: sgmii31 { | ||
416 | qlm-mode = "0x011,sgmii"; | ||
417 | reg = <9> ; | ||
418 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
419 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
420 | <3 0x11 0 0x00aa>, | ||
421 | <3 0x12 0 0x4105>, | ||
422 | <3 0x13 0 0x8a08>; | ||
423 | }; | ||
424 | xfi30: xfi30 { | ||
425 | qlm-mode = "0x030,xfi","0x030,xfi-10g-kr"; | ||
426 | reg = <8> ; | ||
427 | compatible = "cortina,cs4223-slice"; | ||
428 | }; | ||
429 | xfi31: xfi31 { | ||
430 | qlm-mode = "0x031,xfi","0x031,xfi-10g-kr"; | ||
431 | reg = <9> ; | ||
432 | compatible = "cortina,cs4223-slice"; | ||
433 | }; | ||
434 | xfi32: xfi32 { | ||
435 | qlm-mode = "0x032,xfi","0x032,xfi-10g-kr"; | ||
436 | reg = <10> ; | ||
437 | compatible = "cortina,cs4223-slice"; | ||
438 | }; | ||
439 | xfi33: xfi33 { | ||
440 | qlm-mode = "0x033,xfi","0x033,xfi-10g-kr"; | ||
441 | reg = <11> ; | ||
442 | compatible = "cortina,cs4223-slice"; | ||
443 | }; | ||
444 | xlaui30: xlaui30 { | ||
445 | qlm-mode = "0x030,xlaui","0x030,xlaui-40g-kr"; | ||
446 | reg = <8> ; | ||
447 | compatible = "cortina,cs4223-slice"; | ||
448 | }; | ||
449 | xaui30: xaui30 { | ||
450 | qlm-mode = "0x030,xaui"; | ||
451 | reg = <8> ; | ||
452 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
453 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
454 | }; | ||
455 | rxaui30: rxaui30 { | ||
456 | qlm-mode = "0x030,rxaui"; | ||
457 | reg = <8> ; | ||
458 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
459 | }; | ||
460 | rxaui31: rxaui31 { | ||
461 | qlm-mode = "0x031,rxaui"; | ||
462 | reg = <9> ; | ||
463 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
464 | }; | ||
465 | qsgmii30: qsgmii30 { | ||
466 | qlm-mode = "0x030,qsgmii"; | ||
467 | reg = <8> ; | ||
468 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
469 | }; | ||
470 | qsgmii31: qsgmii31 { | ||
471 | qlm-mode = "0x031,qsgmii"; | ||
472 | reg = <9> ; | ||
473 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
474 | }; | ||
475 | qsgmii32: qsgmii32 { | ||
476 | qlm-mode = "0x032,qsgmii"; | ||
477 | reg = <10> ; | ||
478 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
479 | }; | ||
480 | qsgmii33: qsgmii33 { | ||
481 | qlm-mode = "0x033,qsgmii"; | ||
482 | reg = <11> ; | ||
483 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
484 | }; | ||
485 | }; | ||
486 | }; | ||
487 | }; | ||
488 | }; | ||
489 | }; | ||
490 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/cn81xx-linux.dtsi b/recipes-kernel/linux/linux-cavium/dts/cn81xx-linux.dtsi deleted file mode 100644 index b76f096..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/cn81xx-linux.dtsi +++ /dev/null | |||
@@ -1,499 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder SoC description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | / { | ||
51 | model = "Cavium ThunderX CN81XX board"; | ||
52 | compatible = "cavium,thunder-81xx"; | ||
53 | interrupt-parent = <&gic0>; | ||
54 | #address-cells = <2>; | ||
55 | #size-cells = <2>; | ||
56 | |||
57 | psci { | ||
58 | compatible = "arm,psci-0.2"; | ||
59 | method = "smc"; | ||
60 | }; | ||
61 | |||
62 | cpus { | ||
63 | #address-cells = <2>; | ||
64 | #size-cells = <0>; | ||
65 | |||
66 | cpu-map { | ||
67 | cluster0 { | ||
68 | core0 { | ||
69 | cpu = <&CPU0>; | ||
70 | }; | ||
71 | core1 { | ||
72 | cpu = <&CPU1>; | ||
73 | }; | ||
74 | core2 { | ||
75 | cpu = <&CPU2>; | ||
76 | }; | ||
77 | core3 { | ||
78 | cpu = <&CPU3>; | ||
79 | }; | ||
80 | }; | ||
81 | }; | ||
82 | |||
83 | CPU0: cpu@0 { | ||
84 | device_type = "cpu"; | ||
85 | compatible = "cavium,thunder", "arm,armv8"; | ||
86 | reg = <0x0 0x000>; | ||
87 | enable-method = "psci"; | ||
88 | /* socket 0 */ | ||
89 | numa-node-id = <0>; | ||
90 | next-level-cache = <&thunderx_L2_0>; | ||
91 | }; | ||
92 | CPU1: cpu@1 { | ||
93 | device_type = "cpu"; | ||
94 | compatible = "cavium,thunder", "arm,armv8"; | ||
95 | reg = <0x0 0x001>; | ||
96 | enable-method = "psci"; | ||
97 | numa-node-id = <0>; | ||
98 | next-level-cache = <&thunderx_L2_0>; | ||
99 | }; | ||
100 | CPU2: cpu@2 { | ||
101 | device_type = "cpu"; | ||
102 | compatible = "cavium,thunder", "arm,armv8"; | ||
103 | reg = <0x0 0x002>; | ||
104 | enable-method = "psci"; | ||
105 | numa-node-id = <0>; | ||
106 | next-level-cache = <&thunderx_L2_0>; | ||
107 | }; | ||
108 | CPU3: cpu@3 { | ||
109 | device_type = "cpu"; | ||
110 | compatible = "cavium,thunder", "arm,armv8"; | ||
111 | reg = <0x0 0x003>; | ||
112 | enable-method = "psci"; | ||
113 | numa-node-id = <0>; | ||
114 | next-level-cache = <&thunderx_L2_0>; | ||
115 | }; | ||
116 | }; | ||
117 | |||
118 | thunderx_L2_0: l2-cache0 { | ||
119 | compatible = "cache"; | ||
120 | numa-node-id = <0>; | ||
121 | }; | ||
122 | |||
123 | timer { | ||
124 | compatible = "arm,armv8-timer"; | ||
125 | interrupts = <1 13 4>, | ||
126 | <1 14 4>, | ||
127 | <1 11 4>, | ||
128 | <1 10 4>; | ||
129 | }; | ||
130 | |||
131 | pmu { | ||
132 | compatible = "cavium,thunder-pmu", "arm,armv8-pmuv3"; | ||
133 | interrupts = <1 7 4>; | ||
134 | }; | ||
135 | |||
136 | mmc_supply_3v3: mmc_supply_3v3 { | ||
137 | compatible = "regulator-fixed"; | ||
138 | regulator-name = "mmc_supply_3v3"; | ||
139 | regulator-min-microvolt = <3300000>; | ||
140 | regulator-max-microvolt = <3300000>; | ||
141 | |||
142 | gpio = <&gpio_6_0 8 0>; | ||
143 | enable-active-high; | ||
144 | }; | ||
145 | |||
146 | gic0: interrupt-controller@801000000000 { | ||
147 | compatible = "arm,gic-v3"; | ||
148 | #interrupt-cells = <3>; | ||
149 | #address-cells = <2>; | ||
150 | #size-cells = <2>; | ||
151 | #redistributor-regions = <1>; | ||
152 | ranges; | ||
153 | interrupt-controller; | ||
154 | reg = <0x8010 0x00000000 0x0 0x010000>, /* GICD */ | ||
155 | <0x8010 0x80000000 0x0 0x600000>; /* GICR */ | ||
156 | interrupts = <1 9 4>; | ||
157 | |||
158 | its: gic-its@801000020000 { | ||
159 | compatible = "arm,gic-v3-its"; | ||
160 | reg = <0x8010 0x20000 0x0 0x200000>; | ||
161 | msi-controller; | ||
162 | numa-node-id = <0>; | ||
163 | }; | ||
164 | }; | ||
165 | |||
166 | soc@0 { | ||
167 | compatible = "simple-bus"; | ||
168 | #address-cells = <2>; | ||
169 | #size-cells = <2>; | ||
170 | ranges; | ||
171 | numa-node-id = <0>; | ||
172 | |||
173 | refclkuaa: refclkuaa { | ||
174 | compatible = "fixed-clock"; | ||
175 | #clock-cells = <0>; | ||
176 | clock-frequency = <116640000>; | ||
177 | clock-output-names = "refclkuaa"; | ||
178 | }; | ||
179 | |||
180 | sclk: sclk { | ||
181 | compatible = "fixed-clock"; | ||
182 | #clock-cells = <0>; | ||
183 | clock-frequency = <800000000>; | ||
184 | clock-output-names = "sclk"; | ||
185 | }; | ||
186 | |||
187 | uaa0: serial@87e028000000 { | ||
188 | compatible = "arm,pl011", "arm,primecell"; | ||
189 | reg = <0x87e0 0x28000000 0x0 0x1000>; | ||
190 | interrupts = <0 5 4>; | ||
191 | clocks = <&refclkuaa>; | ||
192 | clock-names = "apb_pclk"; | ||
193 | uboot,skip-init; | ||
194 | }; | ||
195 | |||
196 | uaa1: serial@87e029000000 { | ||
197 | compatible = "arm,pl011", "arm,primecell"; | ||
198 | reg = <0x87e0 0x29000000 0x0 0x1000>; | ||
199 | interrupts = <0 6 4>; | ||
200 | clocks = <&refclkuaa>; | ||
201 | clock-names = "apb_pclk"; | ||
202 | uboot,skip-init; | ||
203 | }; | ||
204 | |||
205 | uaa2: serial@87e02a000000 { | ||
206 | compatible = "arm,pl011", "arm,primecell"; | ||
207 | reg = <0x87e0 0x2a000000 0x0 0x1000>; | ||
208 | interrupts = <0 7 4>; | ||
209 | clocks = <&refclkuaa>; | ||
210 | clock-names = "apb_pclk"; | ||
211 | uboot,skip-init; | ||
212 | }; | ||
213 | |||
214 | uaa3: serial@87e02b000000 { | ||
215 | compatible = "arm,pl011", "arm,primecell"; | ||
216 | reg = <0x87e0 0x2b000000 0x0 0x1000>; | ||
217 | interrupts = <0 8 4>; | ||
218 | clocks = <&refclkuaa>; | ||
219 | clock-names = "apb_pclk"; | ||
220 | uboot,skip-init; | ||
221 | }; | ||
222 | |||
223 | watch-dog@8440000a0000 { | ||
224 | compatible = "arm,sbsa-gwdt"; | ||
225 | reg = <0x8440 0xa0000 0x0 0x1000>, <0x8440 0xb0000 0x0 0x1000>; | ||
226 | interrupts = <0 9 4>; | ||
227 | }; | ||
228 | |||
229 | pbus0: nor@0 { | ||
230 | compatible = "cfi-flash"; | ||
231 | reg = <0x8000 0x0 0x0 0x800000>; | ||
232 | device-width = <1>; | ||
233 | bank-width = <1>; | ||
234 | clocks = <&sclk>; | ||
235 | }; | ||
236 | |||
237 | smmu0@830000000000 { | ||
238 | compatible = "cavium,smmu-v2"; | ||
239 | reg = <0x8300 0x0 0x0 0x2000000>; | ||
240 | #global-interrupts = <1>; | ||
241 | interrupts = <0 68 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
242 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
243 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
244 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
245 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
246 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
247 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
248 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
249 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
250 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
251 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>; | ||
252 | |||
253 | mmu-masters = <&ecam0 0x100>, | ||
254 | <&pem0 0x200>, | ||
255 | <&pem1 0x300>, | ||
256 | <&pem2 0x400>; | ||
257 | |||
258 | }; | ||
259 | |||
260 | ecam0: pci@848000000000 { | ||
261 | compatible = "pci-host-ecam-generic"; | ||
262 | device_type = "pci"; | ||
263 | msi-parent = <&its>; | ||
264 | msi-map = <0 &its 0 0x10000>; | ||
265 | bus-range = <0 31>; | ||
266 | #size-cells = <2>; | ||
267 | #address-cells = <3>; | ||
268 | #stream-id-cells = <1>; | ||
269 | u-boot,dm-pre-reloc; | ||
270 | dma-coherent; | ||
271 | reg = <0x8480 0x00000000 0 0x02000000>; /* Configuration space */ | ||
272 | ranges = <0x03000000 0x8010 0x00000000 0x8010 0x00000000 0x080 0x00000000>, /* mem ranges */ | ||
273 | <0x03000000 0x8100 0x00000000 0x8100 0x00000000 0x80 0x00000000>, /* SATA */ | ||
274 | <0x03000000 0x8680 0x00000000 0x8680 0x00000000 0x160 0x28000000>, /* UARTs */ | ||
275 | <0x03000000 0x87e0 0x2c000000 0x87e0 0x2c000000 0x000 0x94000000>, /* PEMs */ | ||
276 | <0x03000000 0x8400 0x00000000 0x8400 0x00000000 0x010 0x00000000>, /* RNM */ | ||
277 | <0x03000000 0x8430 0x00000000 0x8430 0x00000000 0x02 0x00000000>, /* NIC0*/ | ||
278 | <0x03000000 0x87e0 0xc6000000 0x87e0 0xc6000000 0x01f 0x3a000000>; | ||
279 | |||
280 | mrml_bridge: mrml-bridge0@1,0 { | ||
281 | compatible = "pci-bridge", "cavium,thunder-8890-mrml-bridge"; | ||
282 | #size-cells = <2>; | ||
283 | #address-cells = <3>; | ||
284 | ranges = <0x03000000 0x87e0 0x00000000 0x03000000 0x87e0 0x00000000 0x10 0x00000000>; | ||
285 | reg = <0x0800 0 0 0 0>; /* DEVFN = 0x08 (1:0) */ | ||
286 | device_type = "pci"; | ||
287 | u-boot,dm-pre-reloc; | ||
288 | |||
289 | mdio-nexus@1,3 { | ||
290 | compatible = "cavium,thunder-8890-mdio-nexus"; | ||
291 | #address-cells = <2>; | ||
292 | #size-cells = <2>; | ||
293 | reg = <0x0b00 0 0 0 0>; /* DEVFN = 0x0b (1:3) */ | ||
294 | assigned-addresses = <0x03000000 0x87e0 0x05000000 0x0 0x800000>; | ||
295 | ranges = <0x87e0 0x05000000 0x03000000 0x87e0 0x05000000 0x0 0x800000>; | ||
296 | mdio0@87e005003800 { | ||
297 | compatible = "cavium,thunder-8890-mdio"; | ||
298 | #address-cells = <1>; | ||
299 | #size-cells = <0>; | ||
300 | reg = <0x87e0 0x05003800 0x0 0x30>; | ||
301 | }; | ||
302 | mdio1@87e005003880 { | ||
303 | compatible = "cavium,thunder-8890-mdio"; | ||
304 | #address-cells = <1>; | ||
305 | #size-cells = <0>; | ||
306 | reg = <0x87e0 0x05003880 0x0 0x30>; | ||
307 | }; | ||
308 | }; | ||
309 | |||
310 | mmc_1_4: mmc@1,4 { | ||
311 | compatible = "cavium,thunder-8890-mmc"; | ||
312 | reg = <0x0c00 0 0 0 0>; /* DEVFN = 0x0c (1:4) */ | ||
313 | #address-cells = <1>; | ||
314 | #size-cells = <0>; | ||
315 | clocks = <&sclk>; | ||
316 | }; | ||
317 | |||
318 | i2c_9_0: i2c@9,0 { | ||
319 | #address-cells = <1>; | ||
320 | #size-cells = <0>; | ||
321 | compatible = "cavium,thunder-8890-twsi", "cavium,thunderx-i2c"; | ||
322 | reg = <0x4800 0 0 0 0>; /* DEVFN = 0x48 (9:0) */ | ||
323 | clock-frequency = <100000>; | ||
324 | clocks = <&sclk>; | ||
325 | u-boot,dm-pre-reloc; | ||
326 | }; | ||
327 | |||
328 | i2c_9_1: i2c@9,1 { | ||
329 | #address-cells = <1>; | ||
330 | #size-cells = <0>; | ||
331 | compatible = "cavium,thunder-8890-twsi", "cavium,thunderx-i2c"; | ||
332 | reg = <0x4900 0 0 0 0>; /* DEVFN = 0x49 (9:1) */ | ||
333 | clock-frequency = <100000>; | ||
334 | clocks = <&sclk>; | ||
335 | u-boot,dm-pre-reloc; | ||
336 | }; | ||
337 | |||
338 | rgx0 { | ||
339 | #address-cells = <1>; | ||
340 | #size-cells = <0>; | ||
341 | reg = <0x9000 0 0 0 0>; /* DEVFN = 0x90 (16:1) */ | ||
342 | }; | ||
343 | bgx0 { | ||
344 | #address-cells = <1>; | ||
345 | #size-cells = <0>; | ||
346 | reg = <0x8000 0 0 0 0>; /* DEVFN = 0x80 (16:0) */ | ||
347 | }; | ||
348 | bgx1 { | ||
349 | #address-cells = <1>; | ||
350 | #size-cells = <0>; | ||
351 | reg = <0x8100 0 0 0 0>; /* DEVFN = 0x81 (16:1) */ | ||
352 | }; | ||
353 | }; | ||
354 | |||
355 | spi_7_0: spi@7,0 { | ||
356 | compatible = "cavium,thunder-8190-spi", "cavium,thunderx-spi"; | ||
357 | reg = <0x3800 0x0 0x0 0x0 0x0>; /* DEVFN = 0x38 (7:0) */ | ||
358 | #address-cells = <1>; | ||
359 | #size-cells = <0>; | ||
360 | clocks = <&sclk>; | ||
361 | }; | ||
362 | |||
363 | gpio_6_0: gpio0@6,0 { | ||
364 | #gpio-cells = <2>; | ||
365 | compatible = "cavium,thunder-8890-gpio"; | ||
366 | gpio-controller; | ||
367 | reg = <0x3000 0 0 0 0>; /* DEVFN = 0x30 (6:0) */ | ||
368 | u-boot,dm-pre-reloc; | ||
369 | }; | ||
370 | |||
371 | nfc: nand@b,0 { | ||
372 | #address-cells = <1>; | ||
373 | #size-cells = <0>; | ||
374 | compatible = "cavium,cn8130-nand"; | ||
375 | reg = <0x5800 0 0 0 0>; /* DEVFN = 0x58 (b:0) */ | ||
376 | clocks = <&sclk>; | ||
377 | }; | ||
378 | }; | ||
379 | |||
380 | pem0: pci@87e0c0000000 { | ||
381 | |||
382 | /* "cavium,pci-host-thunder-pem" implies that | ||
383 | the first bus in bus-range has config access | ||
384 | via the "PEM space", subsequent buses have | ||
385 | config assess via the "Configuration space". | ||
386 | The "mem64 PEM" range is used to map the PEM | ||
387 | BAR0, which is used by the AER and PME MSI-X | ||
388 | sources. UEFI and Linux must assign the same | ||
389 | bus number to each device, otherwise Linux | ||
390 | enumeration gets confused. Because UEFI | ||
391 | skips the PEM bus and its PCIe-RC bridge it | ||
392 | uses a numbering that starts 1 bus higher. | ||
393 | */ | ||
394 | |||
395 | compatible = "cavium,pci-host-thunder-pem"; | ||
396 | device_type = "pci"; | ||
397 | msi-parent = <&its>; | ||
398 | msi-map = <0 &its 0 0x10000>; | ||
399 | bus-range = <0x1f 0x57>; | ||
400 | #size-cells = <2>; | ||
401 | #address-cells = <3>; | ||
402 | #stream-id-cells = <1>; | ||
403 | dma-coherent; | ||
404 | reg = <0x8800 0x1f000000 0x0 0x39000000>, /* Configuration space */ | ||
405 | <0x87e0 0xc0000000 0x0 0x01000000>; /* PEM space */ | ||
406 | ranges = <0x01000000 0x00 0x00000000 0x8830 0x00000000 0x00 0x00010000>, /* I/O */ | ||
407 | <0x03000000 0x00 0x10000000 0x8810 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
408 | <0x43000000 0x10 0x00000000 0x8820 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
409 | <0x03000000 0x87e0 0xc0000000 0x87e0 0xc0000000 0x00 0x01000000>; /* mem64 PEM */ | ||
410 | |||
411 | #interrupt-cells = <1>; | ||
412 | interrupt-map-mask = <0 0 0 7>; | ||
413 | interrupt-map = <0 0 0 1 &gic0 0 0 0 16 4>, /* INTA */ | ||
414 | <0 0 0 2 &gic0 0 0 0 17 4>, /* INTB */ | ||
415 | <0 0 0 3 &gic0 0 0 0 18 4>, /* INTC */ | ||
416 | <0 0 0 4 &gic0 0 0 0 19 4>; /* INTD */ | ||
417 | }; | ||
418 | |||
419 | pem1: pci@87e0c1000000 { | ||
420 | compatible = "cavium,pci-host-thunder-pem"; | ||
421 | device_type = "pci"; | ||
422 | msi-parent = <&its>; | ||
423 | msi-map = <0 &its 0 0x10000>; | ||
424 | bus-range = <0x57 0x8f>; | ||
425 | #size-cells = <2>; | ||
426 | #address-cells = <3>; | ||
427 | #stream-id-cells = <1>; | ||
428 | dma-coherent; | ||
429 | reg = <0x8840 0x57000000 0x0 0x39000000>, /* Configuration space */ | ||
430 | <0x87e0 0xc1000000 0x0 0x01000000>; /* PEM space */ | ||
431 | ranges = <0x01000000 0x00 0x00010000 0x8870 0x00010000 0x00 0x00010000>, /* I/O */ | ||
432 | <0x03000000 0x00 0x10000000 0x8850 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
433 | <0x43000000 0x10 0x00000000 0x8860 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
434 | <0x03000000 0x87e0 0xc1000000 0x87e0 0xc1000000 0x00 0x01000000>; /* mem64 PEM */ | ||
435 | |||
436 | #interrupt-cells = <1>; | ||
437 | interrupt-map-mask = <0 0 0 7>; | ||
438 | interrupt-map = <0 0 0 1 &gic0 0 0 0 20 4>, /* INTA */ | ||
439 | <0 0 0 2 &gic0 0 0 0 21 4>, /* INTB */ | ||
440 | <0 0 0 3 &gic0 0 0 0 22 4>, /* INTC */ | ||
441 | <0 0 0 4 &gic0 0 0 0 23 4>; /* INTD */ | ||
442 | }; | ||
443 | |||
444 | pem2: pci@87e0c2000000 { | ||
445 | compatible = "cavium,pci-host-thunder-pem"; | ||
446 | device_type = "pci"; | ||
447 | msi-parent = <&its>; | ||
448 | msi-map = <0 &its 0 0x10000>; | ||
449 | bus-range = <0x8f 0xc7>; | ||
450 | #size-cells = <2>; | ||
451 | #address-cells = <3>; | ||
452 | #stream-id-cells = <1>; | ||
453 | dma-coherent; | ||
454 | reg = <0x8880 0x8f000000 0x0 0x39000000>, /* Configuration space */ | ||
455 | <0x87e0 0xc2000000 0x0 0x01000000>; /* PEM space */ | ||
456 | ranges = <0x01000000 0x00 0x00020000 0x88b0 0x00020000 0x00 0x00010000>, /* I/O */ | ||
457 | <0x03000000 0x00 0x10000000 0x8890 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
458 | <0x43000000 0x10 0x00000000 0x88a0 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
459 | <0x03000000 0x87e0 0xc2000000 0x87e0 0xc2000000 0x00 0x01000000>; /* mem64 PEM */ | ||
460 | |||
461 | #interrupt-cells = <1>; | ||
462 | interrupt-map-mask = <0 0 0 7>; | ||
463 | interrupt-map = <0 0 0 1 &gic0 0 0 0 24 4>, /* INTA */ | ||
464 | <0 0 0 2 &gic0 0 0 0 25 4>, /* INTB */ | ||
465 | <0 0 0 3 &gic0 0 0 0 26 4>, /* INTC */ | ||
466 | <0 0 0 4 &gic0 0 0 0 27 4>; /* INTD */ | ||
467 | }; | ||
468 | |||
469 | tdm: tdm@d,0 { | ||
470 | #address-cells = <1>; | ||
471 | #size-cells = <0>; | ||
472 | compatible = "cavium,thunder-8190-tdm"; | ||
473 | reg = <0x6800 0 0 0>; /* DEVFN = 0x68 (d:0) */ | ||
474 | clocks = <&sclk>; | ||
475 | }; | ||
476 | }; | ||
477 | |||
478 | aliases { | ||
479 | serial0 = &uaa0; | ||
480 | serial1 = &uaa1; | ||
481 | serial2 = &uaa2; | ||
482 | serial3 = &uaa3; | ||
483 | i2c0 = &i2c_9_0; | ||
484 | i2c1 = &i2c_9_1; | ||
485 | spi0 = &spi_7_0; | ||
486 | }; | ||
487 | |||
488 | chosen { | ||
489 | stdout-path = "serial0:115200n8"; | ||
490 | }; | ||
491 | |||
492 | |||
493 | memory@0 { | ||
494 | device_type = "memory"; | ||
495 | reg = <0x0 0x01400000 0x0 0x7EC00000>; | ||
496 | /* socket 0 */ | ||
497 | numa-node-id = <0>; | ||
498 | }; | ||
499 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/cn83xx-linux.dtsi b/recipes-kernel/linux/linux-cavium/dts/cn83xx-linux.dtsi deleted file mode 100644 index a523ea6..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/cn83xx-linux.dtsi +++ /dev/null | |||
@@ -1,800 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder SoC description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | / { | ||
51 | model = "Cavium ThunderX CN83XX board"; | ||
52 | compatible = "cavium,thunder-83xx"; | ||
53 | interrupt-parent = <&gic0>; | ||
54 | #address-cells = <2>; | ||
55 | #size-cells = <2>; | ||
56 | |||
57 | psci { | ||
58 | compatible = "arm,psci-0.2"; | ||
59 | method = "smc"; | ||
60 | }; | ||
61 | |||
62 | cpus { | ||
63 | #address-cells = <2>; | ||
64 | #size-cells = <0>; | ||
65 | |||
66 | cpu-map { | ||
67 | cluster0 { | ||
68 | core0 { | ||
69 | cpu = <&CPU0>; | ||
70 | }; | ||
71 | core1 { | ||
72 | cpu = <&CPU1>; | ||
73 | }; | ||
74 | core2 { | ||
75 | cpu = <&CPU2>; | ||
76 | }; | ||
77 | core3 { | ||
78 | cpu = <&CPU3>; | ||
79 | }; | ||
80 | core4 { | ||
81 | cpu = <&CPU4>; | ||
82 | }; | ||
83 | core5 { | ||
84 | cpu = <&CPU5>; | ||
85 | }; | ||
86 | core6 { | ||
87 | cpu = <&CPU6>; | ||
88 | }; | ||
89 | core7 { | ||
90 | cpu = <&CPU7>; | ||
91 | }; | ||
92 | core8 { | ||
93 | cpu = <&CPU8>; | ||
94 | }; | ||
95 | core9 { | ||
96 | cpu = <&CPU9>; | ||
97 | }; | ||
98 | core10 { | ||
99 | cpu = <&CPU10>; | ||
100 | }; | ||
101 | core11 { | ||
102 | cpu = <&CPU11>; | ||
103 | }; | ||
104 | core12 { | ||
105 | cpu = <&CPU12>; | ||
106 | }; | ||
107 | core13 { | ||
108 | cpu = <&CPU13>; | ||
109 | }; | ||
110 | core14 { | ||
111 | cpu = <&CPU14>; | ||
112 | }; | ||
113 | core15 { | ||
114 | cpu = <&CPU15>; | ||
115 | }; | ||
116 | core16 { | ||
117 | cpu = <&CPU16>; | ||
118 | }; | ||
119 | core17 { | ||
120 | cpu = <&CPU17>; | ||
121 | }; | ||
122 | core18 { | ||
123 | cpu = <&CPU18>; | ||
124 | }; | ||
125 | core19 { | ||
126 | cpu = <&CPU19>; | ||
127 | }; | ||
128 | core20 { | ||
129 | cpu = <&CPU20>; | ||
130 | }; | ||
131 | core21 { | ||
132 | cpu = <&CPU21>; | ||
133 | }; | ||
134 | core22 { | ||
135 | cpu = <&CPU22>; | ||
136 | }; | ||
137 | core23 { | ||
138 | cpu = <&CPU23>; | ||
139 | }; | ||
140 | }; | ||
141 | }; | ||
142 | |||
143 | CPU0: cpu@0 { | ||
144 | device_type = "cpu"; | ||
145 | compatible = "cavium,thunder", "arm,armv8"; | ||
146 | reg = <0x0 0x000>; | ||
147 | enable-method = "psci"; | ||
148 | /* socket 0 */ | ||
149 | numa-node-id = <0>; | ||
150 | next-level-cache = <&thunderx_L2_0>; | ||
151 | }; | ||
152 | CPU1: cpu@1 { | ||
153 | device_type = "cpu"; | ||
154 | compatible = "cavium,thunder", "arm,armv8"; | ||
155 | reg = <0x0 0x001>; | ||
156 | enable-method = "psci"; | ||
157 | numa-node-id = <0>; | ||
158 | next-level-cache = <&thunderx_L2_0>; | ||
159 | }; | ||
160 | CPU2: cpu@2 { | ||
161 | device_type = "cpu"; | ||
162 | compatible = "cavium,thunder", "arm,armv8"; | ||
163 | reg = <0x0 0x002>; | ||
164 | enable-method = "psci"; | ||
165 | numa-node-id = <0>; | ||
166 | next-level-cache = <&thunderx_L2_0>; | ||
167 | }; | ||
168 | CPU3: cpu@3 { | ||
169 | device_type = "cpu"; | ||
170 | compatible = "cavium,thunder", "arm,armv8"; | ||
171 | reg = <0x0 0x003>; | ||
172 | enable-method = "psci"; | ||
173 | numa-node-id = <0>; | ||
174 | next-level-cache = <&thunderx_L2_0>; | ||
175 | }; | ||
176 | CPU4: cpu@4 { | ||
177 | device_type = "cpu"; | ||
178 | compatible = "cavium,thunder", "arm,armv8"; | ||
179 | reg = <0x0 0x004>; | ||
180 | enable-method = "psci"; | ||
181 | numa-node-id = <0>; | ||
182 | next-level-cache = <&thunderx_L2_0>; | ||
183 | }; | ||
184 | CPU5: cpu@5 { | ||
185 | device_type = "cpu"; | ||
186 | compatible = "cavium,thunder", "arm,armv8"; | ||
187 | reg = <0x0 0x005>; | ||
188 | enable-method = "psci"; | ||
189 | numa-node-id = <0>; | ||
190 | next-level-cache = <&thunderx_L2_0>; | ||
191 | }; | ||
192 | CPU6: cpu@6 { | ||
193 | device_type = "cpu"; | ||
194 | compatible = "cavium,thunder", "arm,armv8"; | ||
195 | reg = <0x0 0x006>; | ||
196 | enable-method = "psci"; | ||
197 | numa-node-id = <0>; | ||
198 | next-level-cache = <&thunderx_L2_0>; | ||
199 | }; | ||
200 | CPU7: cpu@7 { | ||
201 | device_type = "cpu"; | ||
202 | compatible = "cavium,thunder", "arm,armv8"; | ||
203 | reg = <0x0 0x007>; | ||
204 | enable-method = "psci"; | ||
205 | numa-node-id = <0>; | ||
206 | next-level-cache = <&thunderx_L2_0>; | ||
207 | }; | ||
208 | CPU8: cpu@8 { | ||
209 | device_type = "cpu"; | ||
210 | compatible = "cavium,thunder", "arm,armv8"; | ||
211 | reg = <0x0 0x008>; | ||
212 | enable-method = "psci"; | ||
213 | numa-node-id = <0>; | ||
214 | next-level-cache = <&thunderx_L2_0>; | ||
215 | }; | ||
216 | CPU9: cpu@9 { | ||
217 | device_type = "cpu"; | ||
218 | compatible = "cavium,thunder", "arm,armv8"; | ||
219 | reg = <0x0 0x009>; | ||
220 | enable-method = "psci"; | ||
221 | numa-node-id = <0>; | ||
222 | next-level-cache = <&thunderx_L2_0>; | ||
223 | }; | ||
224 | CPU10: cpu@a { | ||
225 | device_type = "cpu"; | ||
226 | compatible = "cavium,thunder", "arm,armv8"; | ||
227 | reg = <0x0 0x00a>; | ||
228 | enable-method = "psci"; | ||
229 | numa-node-id = <0>; | ||
230 | next-level-cache = <&thunderx_L2_0>; | ||
231 | }; | ||
232 | CPU11: cpu@b { | ||
233 | device_type = "cpu"; | ||
234 | compatible = "cavium,thunder", "arm,armv8"; | ||
235 | reg = <0x0 0x00b>; | ||
236 | enable-method = "psci"; | ||
237 | numa-node-id = <0>; | ||
238 | next-level-cache = <&thunderx_L2_0>; | ||
239 | }; | ||
240 | CPU12: cpu@c { | ||
241 | device_type = "cpu"; | ||
242 | compatible = "cavium,thunder", "arm,armv8"; | ||
243 | reg = <0x0 0x00c>; | ||
244 | enable-method = "psci"; | ||
245 | numa-node-id = <0>; | ||
246 | next-level-cache = <&thunderx_L2_0>; | ||
247 | }; | ||
248 | CPU13: cpu@d { | ||
249 | device_type = "cpu"; | ||
250 | compatible = "cavium,thunder", "arm,armv8"; | ||
251 | reg = <0x0 0x00d>; | ||
252 | enable-method = "psci"; | ||
253 | numa-node-id = <0>; | ||
254 | next-level-cache = <&thunderx_L2_0>; | ||
255 | }; | ||
256 | CPU14: cpu@e { | ||
257 | device_type = "cpu"; | ||
258 | compatible = "cavium,thunder", "arm,armv8"; | ||
259 | reg = <0x0 0x00e>; | ||
260 | enable-method = "psci"; | ||
261 | numa-node-id = <0>; | ||
262 | next-level-cache = <&thunderx_L2_0>; | ||
263 | }; | ||
264 | CPU15: cpu@f { | ||
265 | device_type = "cpu"; | ||
266 | compatible = "cavium,thunder", "arm,armv8"; | ||
267 | reg = <0x0 0x00f>; | ||
268 | enable-method = "psci"; | ||
269 | numa-node-id = <0>; | ||
270 | next-level-cache = <&thunderx_L2_0>; | ||
271 | }; | ||
272 | CPU16: cpu@100 { | ||
273 | device_type = "cpu"; | ||
274 | compatible = "cavium,thunder", "arm,armv8"; | ||
275 | reg = <0x0 0x100>; | ||
276 | enable-method = "psci"; | ||
277 | numa-node-id = <0>; | ||
278 | next-level-cache = <&thunderx_L2_0>; | ||
279 | }; | ||
280 | CPU17: cpu@101 { | ||
281 | device_type = "cpu"; | ||
282 | compatible = "cavium,thunder", "arm,armv8"; | ||
283 | reg = <0x0 0x101>; | ||
284 | enable-method = "psci"; | ||
285 | numa-node-id = <0>; | ||
286 | next-level-cache = <&thunderx_L2_0>; | ||
287 | }; | ||
288 | CPU18: cpu@102 { | ||
289 | device_type = "cpu"; | ||
290 | compatible = "cavium,thunder", "arm,armv8"; | ||
291 | reg = <0x0 0x102>; | ||
292 | enable-method = "psci"; | ||
293 | numa-node-id = <0>; | ||
294 | next-level-cache = <&thunderx_L2_0>; | ||
295 | }; | ||
296 | CPU19: cpu@103 { | ||
297 | device_type = "cpu"; | ||
298 | compatible = "cavium,thunder", "arm,armv8"; | ||
299 | reg = <0x0 0x103>; | ||
300 | enable-method = "psci"; | ||
301 | numa-node-id = <0>; | ||
302 | next-level-cache = <&thunderx_L2_0>; | ||
303 | }; | ||
304 | CPU20: cpu@104 { | ||
305 | device_type = "cpu"; | ||
306 | compatible = "cavium,thunder", "arm,armv8"; | ||
307 | reg = <0x0 0x104>; | ||
308 | enable-method = "psci"; | ||
309 | numa-node-id = <0>; | ||
310 | next-level-cache = <&thunderx_L2_0>; | ||
311 | }; | ||
312 | CPU21: cpu@105 { | ||
313 | device_type = "cpu"; | ||
314 | compatible = "cavium,thunder", "arm,armv8"; | ||
315 | reg = <0x0 0x105>; | ||
316 | enable-method = "psci"; | ||
317 | numa-node-id = <0>; | ||
318 | next-level-cache = <&thunderx_L2_0>; | ||
319 | }; | ||
320 | CPU22: cpu@106 { | ||
321 | device_type = "cpu"; | ||
322 | compatible = "cavium,thunder", "arm,armv8"; | ||
323 | reg = <0x0 0x106>; | ||
324 | enable-method = "psci"; | ||
325 | numa-node-id = <0>; | ||
326 | next-level-cache = <&thunderx_L2_0>; | ||
327 | }; | ||
328 | CPU23: cpu@107 { | ||
329 | device_type = "cpu"; | ||
330 | compatible = "cavium,thunder", "arm,armv8"; | ||
331 | reg = <0x0 0x107>; | ||
332 | enable-method = "psci"; | ||
333 | numa-node-id = <0>; | ||
334 | next-level-cache = <&thunderx_L2_0>; | ||
335 | }; | ||
336 | }; | ||
337 | |||
338 | thunderx_L2_0: l2-cache0 { | ||
339 | compatible = "cache"; | ||
340 | numa-node-id = <0>; | ||
341 | }; | ||
342 | |||
343 | timer { | ||
344 | compatible = "arm,armv8-timer"; | ||
345 | interrupts = <1 13 4>, | ||
346 | <1 14 4>, | ||
347 | <1 11 4>, | ||
348 | <1 10 4>; | ||
349 | }; | ||
350 | |||
351 | pmu { | ||
352 | compatible = "cavium,thunder-pmu", "arm,armv8-pmuv3"; | ||
353 | interrupts = <1 7 4>; | ||
354 | }; | ||
355 | |||
356 | mmc_supply_3v3: mmc_supply_3v3 { | ||
357 | compatible = "regulator-fixed"; | ||
358 | regulator-name = "mmc_supply_3v3"; | ||
359 | regulator-min-microvolt = <3300000>; | ||
360 | regulator-max-microvolt = <3300000>; | ||
361 | |||
362 | gpio = <&gpio_6_0 8 0>; | ||
363 | enable-active-high; | ||
364 | }; | ||
365 | |||
366 | gic0: interrupt-controller@801000000000 { | ||
367 | compatible = "arm,gic-v3"; | ||
368 | #interrupt-cells = <3>; | ||
369 | #address-cells = <2>; | ||
370 | #size-cells = <2>; | ||
371 | #redistributor-regions = <1>; | ||
372 | ranges; | ||
373 | interrupt-controller; | ||
374 | reg = <0x8010 0x00000000 0x0 0x010000>, /* GICD */ | ||
375 | <0x8010 0x80000000 0x0 0x600000>; /* GICR */ | ||
376 | interrupts = <1 9 4>; | ||
377 | |||
378 | its: gic-its@801000020000 { | ||
379 | compatible = "arm,gic-v3-its"; | ||
380 | reg = <0x8010 0x20000 0x0 0x200000>; | ||
381 | msi-controller; | ||
382 | numa-node-id = <0>; | ||
383 | }; | ||
384 | }; | ||
385 | |||
386 | soc@0 { | ||
387 | compatible = "simple-bus"; | ||
388 | #address-cells = <2>; | ||
389 | #size-cells = <2>; | ||
390 | ranges; | ||
391 | numa-node-id = <0>; | ||
392 | |||
393 | refclkuaa: refclkuaa { | ||
394 | compatible = "fixed-clock"; | ||
395 | #clock-cells = <0>; | ||
396 | clock-frequency = <116640000>; | ||
397 | clock-output-names = "refclkuaa"; | ||
398 | }; | ||
399 | |||
400 | sclk: sclk { | ||
401 | compatible = "fixed-clock"; | ||
402 | #clock-cells = <0>; | ||
403 | clock-frequency = <800000000>; | ||
404 | clock-output-names = "sclk"; | ||
405 | }; | ||
406 | |||
407 | uaa0: serial@87e028000000 { | ||
408 | compatible = "arm,pl011", "arm,primecell"; | ||
409 | reg = <0x87e0 0x28000000 0x0 0x1000>; | ||
410 | interrupts = <0 5 4>; | ||
411 | clocks = <&refclkuaa>; | ||
412 | clock-names = "apb_pclk"; | ||
413 | uboot,skip-init; | ||
414 | }; | ||
415 | |||
416 | uaa1: serial@87e029000000 { | ||
417 | compatible = "arm,pl011", "arm,primecell"; | ||
418 | reg = <0x87e0 0x29000000 0x0 0x1000>; | ||
419 | interrupts = <0 6 4>; | ||
420 | clocks = <&refclkuaa>; | ||
421 | clock-names = "apb_pclk"; | ||
422 | uboot,skip-init; | ||
423 | }; | ||
424 | |||
425 | uaa2: serial@87e02a000000 { | ||
426 | compatible = "arm,pl011", "arm,primecell"; | ||
427 | reg = <0x87e0 0x2a000000 0x0 0x1000>; | ||
428 | interrupts = <0 7 4>; | ||
429 | clocks = <&refclkuaa>; | ||
430 | clock-names = "apb_pclk"; | ||
431 | uboot,skip-init; | ||
432 | }; | ||
433 | |||
434 | uaa3: serial@87e02b000000 { | ||
435 | compatible = "arm,pl011", "arm,primecell"; | ||
436 | reg = <0x87e0 0x2b000000 0x0 0x1000>; | ||
437 | interrupts = <0 8 4>; | ||
438 | clocks = <&refclkuaa>; | ||
439 | clock-names = "apb_pclk"; | ||
440 | uboot,skip-init; | ||
441 | }; | ||
442 | |||
443 | watch-dog@8440000a0000 { | ||
444 | compatible = "arm,sbsa-gwdt"; | ||
445 | reg = <0x8440 0xa0000 0x0 0x1000>, <0x8440 0xb0000 0x0 0x1000>; | ||
446 | interrupts = <0 9 4>; | ||
447 | }; | ||
448 | |||
449 | pbus0: nor@0 { | ||
450 | compatible = "cfi-flash"; | ||
451 | reg = <0x8000 0x0 0x0 0x800000>; | ||
452 | device-width = <1>; | ||
453 | bank-width = <1>; | ||
454 | clocks = <&sclk>; | ||
455 | }; | ||
456 | |||
457 | smmu0@830000000000 { | ||
458 | compatible = "cavium,smmu-v2"; | ||
459 | reg = <0x8300 0x0 0x0 0x2000000>; | ||
460 | #global-interrupts = <1>; | ||
461 | interrupts = <0 68 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
462 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
463 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
464 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
465 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
466 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
467 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
468 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
469 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
470 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
471 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
472 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
473 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
474 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
475 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
476 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
477 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
478 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
479 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
480 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
481 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
482 | <0 69 4>, <0 69 4>, <0 69 4>; | ||
483 | |||
484 | mmu-masters = <&ecam0 0x100>, | ||
485 | <&pem0 0x200>, | ||
486 | <&pem1 0x300>, | ||
487 | <&pem2 0x400>, | ||
488 | <&pem3 0x500>; | ||
489 | |||
490 | }; | ||
491 | |||
492 | smmu1@831000000000 { | ||
493 | compatible = "cavium,smmu-v2"; | ||
494 | reg = <0x8310 0x0 0x0 0x2000000>; | ||
495 | #global-interrupts = <1>; | ||
496 | interrupts = <0 70 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
497 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
498 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
499 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
500 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
501 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
502 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
503 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
504 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
505 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
506 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
507 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
508 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
509 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
510 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
511 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
512 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
513 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
514 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
515 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
516 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
517 | <0 71 4>, <0 71 4>, <0 71 4>; | ||
518 | |||
519 | mmu-masters = <&ecam1 0x100>; | ||
520 | }; | ||
521 | |||
522 | |||
523 | ecam0: pci@848000000000 { | ||
524 | compatible = "cavium,pci-host-octeontx-ecam"; | ||
525 | device_type = "pci"; | ||
526 | msi-parent = <&its>; | ||
527 | msi-map = <0 &its 0 0x10000>; | ||
528 | bus-range = <0x0 0xff>; | ||
529 | #size-cells = <2>; | ||
530 | #address-cells = <3>; | ||
531 | #stream-id-cells = <1>; | ||
532 | dma-coherent; | ||
533 | reg = <0x8480 0x00000000 0 0x10000000>; /* Configuration space */ | ||
534 | ranges = <0x03000000 0x8030 0x00000000 0x8030 0x00000000 0x050 0x00100000>, /* mem ranges */ | ||
535 | <0x03000000 0x8280 0x00000000 0x8280 0x00000000 0x007 0x02000000>, | ||
536 | <0x03000000 0x8400 0x00800000 0x8400 0x00800000 0x00f 0xfc040000>, | ||
537 | <0x03000000 0x8580 0x00000000 0x8580 0x00000000 0x0a8 0x04000000>, | ||
538 | <0x03000000 0x86e0 0x00000000 0x86e0 0x00000000 0x100 0x28000000>, | ||
539 | <0x03000000 0x87e0 0x40000000 0x87e0 0x40000000 0x000 0x6c800000>, | ||
540 | <0x03000000 0x87e0 0xd0000000 0x87e0 0xd0000000 0x010 0xaf100000>, | ||
541 | <0x03000000 0x0000 0x01400000 0x0000 0x01400000 0x000 0x00A00000>; /* SSO mailbox */ | ||
542 | |||
543 | |||
544 | mrml_bridge: mrml-bridge0@1,0 { | ||
545 | compatible = "pci-bridge", "cavium,thunder-8890-mrml-bridge"; | ||
546 | #size-cells = <2>; | ||
547 | #address-cells = <3>; | ||
548 | ranges = <0x03000000 0x87e0 0x00000000 0x03000000 0x87e0 0x00000000 0x10 0x00000000>; | ||
549 | reg = <0x0800 0 0 0 0>; /* DEVFN = 0x08 (1:0) */ | ||
550 | device_type = "pci"; | ||
551 | u-boot,dm-pre-reloc; | ||
552 | |||
553 | mdio-nexus@1,3 { | ||
554 | compatible = "cavium,thunder-8890-mdio-nexus"; | ||
555 | #address-cells = <2>; | ||
556 | #size-cells = <2>; | ||
557 | reg = <0x0b00 0 0 0 0>; /* DEVFN = 0x0b (1:3) */ | ||
558 | assigned-addresses = <0x03000000 0x87e0 0x05000000 0x0 0x800000>; | ||
559 | ranges = <0x87e0 0x05000000 0x03000000 0x87e0 0x05000000 0x0 0x800000>; | ||
560 | |||
561 | mdio0@87e005003800 { | ||
562 | compatible = "cavium,thunder-8890-mdio"; | ||
563 | #address-cells = <1>; | ||
564 | #size-cells = <0>; | ||
565 | reg = <0x87e0 0x05003800 0x0 0x30>; | ||
566 | |||
567 | }; | ||
568 | |||
569 | mdio1@87e005003880 { | ||
570 | compatible = "cavium,thunder-8890-mdio"; | ||
571 | #address-cells = <1>; | ||
572 | #size-cells = <0>; | ||
573 | reg = <0x87e0 0x05003880 0x0 0x30>; | ||
574 | |||
575 | |||
576 | }; | ||
577 | }; | ||
578 | |||
579 | mmc_1_4: mmc@1,4 { | ||
580 | compatible = "cavium,thunder-8890-mmc"; | ||
581 | reg = <0x0c00 0 0 0 0>; /* DEVFN = 0x0c (1:4) */ | ||
582 | #address-cells = <1>; | ||
583 | #size-cells = <0>; | ||
584 | clocks = <&sclk>; | ||
585 | }; | ||
586 | |||
587 | i2c_9_0: i2c@9,0 { | ||
588 | #address-cells = <1>; | ||
589 | #size-cells = <0>; | ||
590 | compatible = "cavium,thunder-8890-twsi", "cavium,thunderx-i2c"; | ||
591 | reg = <0x4800 0 0 0 0>; /* DEVFN = 0x48 (9:0) */ | ||
592 | clock-frequency = <100000>; | ||
593 | clocks = <&sclk>; | ||
594 | u-boot,dm-pre-reloc; | ||
595 | }; | ||
596 | |||
597 | i2c_9_1: i2c@9,1 { | ||
598 | #address-cells = <1>; | ||
599 | #size-cells = <0>; | ||
600 | compatible = "cavium,thunder-8890-twsi", "cavium,thunderx-i2c"; | ||
601 | reg = <0x4900 0 0 0 0>; /* DEVFN = 0x49 (9:1) */ | ||
602 | clock-frequency = <100000>; | ||
603 | clocks = <&sclk>; | ||
604 | u-boot,dm-pre-reloc; | ||
605 | }; | ||
606 | |||
607 | bgx0 { | ||
608 | #address-cells = <1>; | ||
609 | #size-cells = <0>; | ||
610 | reg = <0x8000 0 0 0 0>; /* DEVFN = 0x80 (16:0) */ | ||
611 | }; | ||
612 | bgx1 { | ||
613 | #address-cells = <1>; | ||
614 | #size-cells = <0>; | ||
615 | reg = <0x8100 0 0 0 0>; /* DEVFN = 0x81 (16:1) */ | ||
616 | }; | ||
617 | |||
618 | bgx2 { | ||
619 | #address-cells = <1>; | ||
620 | #size-cells = <0>; | ||
621 | reg = <0x8200 0 0 0 0>; /* DEVFN = 0x82 (16:0) */ | ||
622 | }; | ||
623 | |||
624 | bgx3 { | ||
625 | #address-cells = <1>; | ||
626 | #size-cells = <0>; | ||
627 | reg = <0x8300 0 0 0 0>; /* DEVFN = 0x83 (16:0) */ | ||
628 | }; | ||
629 | }; | ||
630 | |||
631 | spi_7_0: spi@7,0 { | ||
632 | compatible = "cavium,thunder-8190-spi", "cavium,thunderx-spi"; | ||
633 | reg = <0x3800 0x0 0x0 0x0 0x0>; /* DEVFN = 0x38 (7:0) */ | ||
634 | #address-cells = <1>; | ||
635 | #size-cells = <0>; | ||
636 | clocks = <&sclk>; | ||
637 | }; | ||
638 | |||
639 | gpio_6_0: gpio0@6,0 { | ||
640 | #gpio-cells = <2>; | ||
641 | compatible = "cavium,thunder-8890-gpio"; | ||
642 | gpio-controller; | ||
643 | reg = <0x3000 0 0 0 0>; /* DEVFN = 0x30 (6:0) */ | ||
644 | u-boot,dm-pre-reloc; | ||
645 | }; | ||
646 | }; | ||
647 | |||
648 | ecam1: pci@849000000000 { | ||
649 | compatible = "cavium,pci-host-octeontx-ecam"; | ||
650 | device_type = "pci"; | ||
651 | msi-parent = <&its>; | ||
652 | msi-map = <0 &its 0x10000 0x10000>; | ||
653 | bus-range = <0x0 0xff>; | ||
654 | #size-cells = <2>; | ||
655 | #address-cells = <3>; | ||
656 | #stream-id-cells = <1>; | ||
657 | dma-coherent; | ||
658 | reg = <0x8490 0x00000000 0 0x10000000>; /* Configuration space */ | ||
659 | ranges = <0x03000000 0x8090 0x00000000 0x8090 0x00000000 0x0c0 0x00300000>, /* mem ranges */ | ||
660 | <0x03000000 0x8380 0x00000000 0x8380 0x00000000 0x000 0x30800000>, | ||
661 | <0x03000000 0x8430 0x00000000 0x8430 0x00000000 0x000 0xf0000000>, | ||
662 | <0x03000000 0x8540 0x00000000 0x8540 0x00000000 0x004 0x02000000>, | ||
663 | <0x03000000 0x8680 0x00000000 0x8680 0x00000000 0x040 0x02000000>, | ||
664 | <0x03000000 0x87f1 0x80000000 0x87f1 0x80000000 0x000 0x80000000>, /* LMTLINE */ | ||
665 | <0x03000000 0x0000 0x01E00000 0x0000 0x01E00000 0x000 0x00A00000>; /* PKI emulated VF space */ | ||
666 | }; | ||
667 | |||
668 | pem0: pci@87e0c0000000 { | ||
669 | |||
670 | /* "cavium,pci-host-thunder-pem" implies that | ||
671 | the first bus in bus-range has config access | ||
672 | via the "PEM space", subsequent buses have | ||
673 | config assess via the "Configuration space". | ||
674 | The "mem64 PEM" range is used to map the PEM | ||
675 | BAR0, which is used by the AER and PME MSI-X | ||
676 | sources. UEFI and Linux must assign the same | ||
677 | bus number to each device, otherwise Linux | ||
678 | enumeration gets confused. Because UEFI | ||
679 | skips the PEM bus and its PCIe-RC bridge it | ||
680 | uses a numbering that starts 1 bus higher. | ||
681 | */ | ||
682 | |||
683 | compatible = "cavium,pci-host-thunder-pem"; | ||
684 | device_type = "pci"; | ||
685 | msi-parent = <&its>; | ||
686 | msi-map = <0 &its 0 0x10000>; | ||
687 | bus-range = <0x1f 0x57>; | ||
688 | #size-cells = <2>; | ||
689 | #address-cells = <3>; | ||
690 | #stream-id-cells = <1>; | ||
691 | dma-coherent; | ||
692 | reg = <0x8800 0x1f000000 0x0 0x39000000>, /* Configuration space */ | ||
693 | <0x87e0 0xc0000000 0x0 0x01000000>; /* PEM space */ | ||
694 | ranges = <0x01000000 0x00 0x00000000 0x8830 0x00000000 0x00 0x00010000>, /* I/O */ | ||
695 | <0x03000000 0x00 0x10000000 0x8810 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
696 | <0x43000000 0x10 0x00000000 0x8820 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
697 | <0x03000000 0x87e0 0xc0000000 0x87e0 0xc0000000 0x00 0x01000000>; /* mem64 PEM */ | ||
698 | |||
699 | #interrupt-cells = <1>; | ||
700 | interrupt-map-mask = <0 0 0 7>; | ||
701 | interrupt-map = <0 0 0 1 &gic0 0 0 0 16 4>, /* INTA */ | ||
702 | <0 0 0 2 &gic0 0 0 0 17 4>, /* INTB */ | ||
703 | <0 0 0 3 &gic0 0 0 0 18 4>, /* INTC */ | ||
704 | <0 0 0 4 &gic0 0 0 0 19 4>; /* INTD */ | ||
705 | }; | ||
706 | |||
707 | pem1: pci@87e0c1000000 { | ||
708 | compatible = "cavium,pci-host-thunder-pem"; | ||
709 | device_type = "pci"; | ||
710 | msi-parent = <&its>; | ||
711 | msi-map = <0 &its 0 0x10000>; | ||
712 | bus-range = <0x57 0x8f>; | ||
713 | #size-cells = <2>; | ||
714 | #address-cells = <3>; | ||
715 | #stream-id-cells = <1>; | ||
716 | dma-coherent; | ||
717 | reg = <0x8840 0x57000000 0x0 0x39000000>, /* Configuration space */ | ||
718 | <0x87e0 0xc1000000 0x0 0x01000000>; /* PEM space */ | ||
719 | ranges = <0x01000000 0x00 0x00010000 0x8870 0x00010000 0x00 0x00010000>, /* I/O */ | ||
720 | <0x03000000 0x00 0x10000000 0x8850 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
721 | <0x43000000 0x10 0x00000000 0x8860 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
722 | <0x03000000 0x87e0 0xc1000000 0x87e0 0xc1000000 0x00 0x01000000>; /* mem64 PEM */ | ||
723 | |||
724 | #interrupt-cells = <1>; | ||
725 | interrupt-map-mask = <0 0 0 7>; | ||
726 | interrupt-map = <0 0 0 1 &gic0 0 0 0 20 4>, /* INTA */ | ||
727 | <0 0 0 2 &gic0 0 0 0 21 4>, /* INTB */ | ||
728 | <0 0 0 3 &gic0 0 0 0 22 4>, /* INTC */ | ||
729 | <0 0 0 4 &gic0 0 0 0 23 4>; /* INTD */ | ||
730 | }; | ||
731 | |||
732 | pem2: pci@87e0c2000000 { | ||
733 | compatible = "cavium,pci-host-thunder-pem"; | ||
734 | device_type = "pci"; | ||
735 | msi-parent = <&its>; | ||
736 | msi-map = <0 &its 0 0x10000>; | ||
737 | bus-range = <0x8f 0xc7>; | ||
738 | #size-cells = <2>; | ||
739 | #address-cells = <3>; | ||
740 | #stream-id-cells = <1>; | ||
741 | dma-coherent; | ||
742 | reg = <0x8880 0x8f000000 0x0 0x39000000>, /* Configuration space */ | ||
743 | <0x87e0 0xc2000000 0x0 0x01000000>; /* PEM space */ | ||
744 | ranges = <0x01000000 0x00 0x00020000 0x88b0 0x00020000 0x00 0x00010000>, /* I/O */ | ||
745 | <0x03000000 0x00 0x10000000 0x8890 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
746 | <0x43000000 0x10 0x00000000 0x88a0 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
747 | <0x03000000 0x87e0 0xc2000000 0x87e0 0xc2000000 0x00 0x01000000>; /* mem64 PEM */ | ||
748 | |||
749 | #interrupt-cells = <1>; | ||
750 | interrupt-map-mask = <0 0 0 7>; | ||
751 | interrupt-map = <0 0 0 1 &gic0 0 0 0 24 4>, /* INTA */ | ||
752 | <0 0 0 2 &gic0 0 0 0 25 4>, /* INTB */ | ||
753 | <0 0 0 3 &gic0 0 0 0 26 4>, /* INTC */ | ||
754 | <0 0 0 4 &gic0 0 0 0 27 4>; /* INTD */ | ||
755 | }; | ||
756 | |||
757 | pem3: pci@87e0c3000000 { | ||
758 | compatible = "cavium,pci-host-thunder-pem"; | ||
759 | device_type = "pci"; | ||
760 | msi-parent = <&its>; | ||
761 | msi-map = <0 &its 0 0x10000>; | ||
762 | bus-range = <0xc7 0xff>; | ||
763 | #size-cells = <2>; | ||
764 | #address-cells = <3>; | ||
765 | #stream-id-cells = <1>; | ||
766 | dma-coherent; | ||
767 | reg = <0x88c0 0xc7000000 0x0 0x39000000>, /* Configuration space */ | ||
768 | <0x87e0 0xc3000000 0x0 0x01000000>; /* PEM space */ | ||
769 | ranges = <0x01000000 0x00 0x00030000 0x88f0 0x00030000 0x00 0x00010000>, /* I/O */ | ||
770 | <0x03000000 0x00 0x10000000 0x88d0 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
771 | <0x43000000 0x10 0x00000000 0x88e0 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
772 | <0x03000000 0x87e0 0xc3000000 0x87e0 0xc3000000 0x00 0x01000000>; /* mem64 PEM */ | ||
773 | |||
774 | #interrupt-cells = <1>; | ||
775 | interrupt-map-mask = <0 0 0 7>; | ||
776 | interrupt-map = <0 0 0 1 &gic0 0 0 0 28 4>, /* INTA */ | ||
777 | <0 0 0 2 &gic0 0 0 0 29 4>, /* INTB */ | ||
778 | <0 0 0 3 &gic0 0 0 0 30 4>, /* INTC */ | ||
779 | <0 0 0 4 &gic0 0 0 0 31 4>; /* INTD */ | ||
780 | }; | ||
781 | }; | ||
782 | |||
783 | aliases { | ||
784 | serial0 = &uaa0; | ||
785 | serial1 = &uaa1; | ||
786 | serial2 = &uaa2; | ||
787 | serial3 = &uaa3; | ||
788 | }; | ||
789 | |||
790 | chosen { | ||
791 | stdout-path = &uaa0; | ||
792 | }; | ||
793 | |||
794 | memory@0 { | ||
795 | device_type = "memory"; | ||
796 | reg = <0x0 0x02800000 0x0 0x7EC00000>; | ||
797 | /* socket 0 */ | ||
798 | numa-node-id = <0>; | ||
799 | }; | ||
800 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/ebb8004-linux.dts b/recipes-kernel/linux/linux-cavium/dts/ebb8004-linux.dts deleted file mode 100644 index 94f5e88..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/ebb8004-linux.dts +++ /dev/null | |||
@@ -1,485 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn81xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | mdio-nexus@1,3 { | ||
56 | mdio0@87e005003800 { | ||
57 | rgmii00: rgmii00 { | ||
58 | reg = <3> ; | ||
59 | compatible = "micrel,ksz9031", "ethernet-phy-ieee802.3-c22"; | ||
60 | }; | ||
61 | }; | ||
62 | |||
63 | mdio1@87e005003880 { | ||
64 | sgmii00: sgmii00 { | ||
65 | qlm-mode = "0x000,sgmii"; | ||
66 | reg = <0> ; | ||
67 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
68 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
69 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
70 | <3 0x11 0 0x00aa>, | ||
71 | <3 0x12 0 0x4105>, | ||
72 | <3 0x13 0 0x8a08>; | ||
73 | }; | ||
74 | sgmii01: sgmii01 { | ||
75 | qlm-mode = "0x001,sgmii"; | ||
76 | reg = <2> ; | ||
77 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
78 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
79 | <3 0x11 0 0x00aa>, | ||
80 | <3 0x12 0 0x4105>, | ||
81 | <3 0x13 0 0x8a08>; | ||
82 | }; | ||
83 | xfi00: xfi00 { | ||
84 | qlm-mode = "0x000,xfi","0x000,xfi-10g-kr"; | ||
85 | reg = <0> ; | ||
86 | compatible = "cortina,cs4223-slice"; | ||
87 | }; | ||
88 | xfi01: xfi01 { | ||
89 | qlm-mode = "0x001,xfi","0x001,xfi-10g-kr"; | ||
90 | reg = <2> ; | ||
91 | compatible = "cortina,cs4223-slice"; | ||
92 | }; | ||
93 | qsgmii00: qsgmii00 { | ||
94 | qlm-mode = "0x000,qsgmii"; | ||
95 | reg = <0> ; | ||
96 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
97 | }; | ||
98 | qsgmii01: qsgmii01 { | ||
99 | qlm-mode = "0x001,qsgmii"; | ||
100 | reg = <1> ; | ||
101 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
102 | }; | ||
103 | qsgmii02: qsgmii02 { | ||
104 | qlm-mode = "0x002,qsgmii"; | ||
105 | reg = <2> ; | ||
106 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
107 | }; | ||
108 | qsgmii03: qsgmii03 { | ||
109 | qlm-mode = "0x003,qsgmii"; | ||
110 | reg = <3> ; | ||
111 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
112 | }; | ||
113 | |||
114 | sgmii10: sgmii10 { | ||
115 | qlm-mode = "0x010,sgmii"; | ||
116 | reg = <8> ; | ||
117 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
118 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
119 | <3 0x11 0 0x00aa>, | ||
120 | <3 0x12 0 0x4105>, | ||
121 | <3 0x13 0 0x8a08>; | ||
122 | }; | ||
123 | sgmii11: sgmii11 { | ||
124 | qlm-mode = "0x011,sgmii"; | ||
125 | reg = <9> ; | ||
126 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
127 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
128 | <3 0x11 0 0x00aa>, | ||
129 | <3 0x12 0 0x4105>, | ||
130 | <3 0x13 0 0x8a08>; | ||
131 | }; | ||
132 | sgmii12: sgmii12 { | ||
133 | qlm-mode = "0x012,sgmii"; | ||
134 | reg = <10> ; | ||
135 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
136 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
137 | <3 0x11 0 0x00aa>, | ||
138 | <3 0x12 0 0x4105>, | ||
139 | <3 0x13 0 0x8a08>; | ||
140 | }; | ||
141 | sgmii13: sgmii13 { | ||
142 | qlm-mode = "0x013,sgmii"; | ||
143 | reg = <11> ; | ||
144 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
145 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
146 | <3 0x11 0 0x00aa>, | ||
147 | <3 0x12 0 0x4105>, | ||
148 | <3 0x13 0 0x8a08>; | ||
149 | }; | ||
150 | xfi10: xfi10 { | ||
151 | qlm-mode = "0x010,xfi","0x010,xfi-10g-kr"; | ||
152 | reg = <8> ; | ||
153 | compatible = "cortina,cs4223-slice"; | ||
154 | }; | ||
155 | xfi11: xfi11 { | ||
156 | qlm-mode = "0x011,xfi","0x011,xfi-10g-kr"; | ||
157 | reg = <9> ; | ||
158 | compatible = "cortina,cs4223-slice"; | ||
159 | }; | ||
160 | xfi12: xfi12 { | ||
161 | qlm-mode = "0x012,xfi","0x012,xfi-10g-kr"; | ||
162 | reg = <10> ; | ||
163 | compatible = "cortina,cs4223-slice"; | ||
164 | }; | ||
165 | xfi13: xfi13 { | ||
166 | qlm-mode = "0x013,xfi","0x013,xfi-10g-kr"; | ||
167 | reg = <11> ; | ||
168 | compatible = "cortina,cs4223-slice"; | ||
169 | }; | ||
170 | xlaui10: xlaui10 { | ||
171 | qlm-mode = "0x010,xlaui","0x010,xlaui-40g-kr"; | ||
172 | reg = <8> ; | ||
173 | compatible = "cortina,cs4223-slice"; | ||
174 | }; | ||
175 | xaui10: xaui10 { | ||
176 | qlm-mode = "0x010,xaui"; | ||
177 | reg = <8> ; | ||
178 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
179 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
180 | }; | ||
181 | rxaui10: rxaui10 { | ||
182 | qlm-mode = "0x010,rxaui"; | ||
183 | reg = <8> ; | ||
184 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
185 | }; | ||
186 | rxaui11: rxaui11 { | ||
187 | qlm-mode = "0x011,rxaui"; | ||
188 | reg = <10> ; | ||
189 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
190 | }; | ||
191 | qsgmii10: qsgmii10 { | ||
192 | qlm-mode = "0x010,qsgmii"; | ||
193 | reg = <8> ; | ||
194 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
195 | }; | ||
196 | qsgmii11: qsgmii11 { | ||
197 | qlm-mode = "0x011,qsgmii"; | ||
198 | reg = <9> ; | ||
199 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
200 | }; | ||
201 | qsgmii12: qsgmii12 { | ||
202 | qlm-mode = "0x012,qsgmii"; | ||
203 | reg = <10> ; | ||
204 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
205 | }; | ||
206 | qsgmii13: qsgmii13 { | ||
207 | qlm-mode = "0x013,qsgmii"; | ||
208 | reg = <11> ; | ||
209 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
210 | }; | ||
211 | }; | ||
212 | }; | ||
213 | |||
214 | rgx0 { | ||
215 | rgmii00 { | ||
216 | reg = <3>; | ||
217 | local-mac-address = [00 00 00 00 00 00]; | ||
218 | phy-handle = <&rgmii00>; | ||
219 | }; | ||
220 | }; | ||
221 | |||
222 | bgx0 { | ||
223 | /* typename+qlm+typenumber eg : | ||
224 | sgmii+bgx0+sgmmi0 | ||
225 | */ | ||
226 | // SGMII | ||
227 | sgmii00 { | ||
228 | reg = <0>; | ||
229 | qlm-mode = "0x000,sgmii"; | ||
230 | local-mac-address = [00 00 00 00 00 00]; | ||
231 | phy-handle = <&sgmii00>; | ||
232 | }; | ||
233 | sgmii01 { | ||
234 | reg = <1>; | ||
235 | qlm-mode = "0x001,sgmii"; | ||
236 | local-mac-address = [00 00 00 00 00 00]; | ||
237 | phy-handle = <&sgmii01>; | ||
238 | }; | ||
239 | xfi00 { | ||
240 | reg = <0>; | ||
241 | qlm-mode = "0x000,xfi"; | ||
242 | local-mac-address = [00 00 00 00 00 00]; | ||
243 | phy-handle = <&xfi00>; | ||
244 | }; | ||
245 | xfi01 { | ||
246 | reg = <1>; | ||
247 | qlm-mode = "0x001,xfi"; | ||
248 | local-mac-address = [00 00 00 00 00 00]; | ||
249 | phy-handle = <&xfi01>; | ||
250 | }; | ||
251 | // 10g-kr | ||
252 | xfi-10g-kr00 { | ||
253 | reg = <0>; | ||
254 | qlm-mode = "0x000,xfi-10g-kr"; | ||
255 | local-mac-address = [00 00 00 00 00 00]; | ||
256 | phy-handle = <&xfi00>; | ||
257 | }; | ||
258 | xfi-10g-kr01 { | ||
259 | reg = <1>; | ||
260 | qlm-mode = "0x001,xfi-10g-kr"; | ||
261 | local-mac-address = [00 00 00 00 00 00]; | ||
262 | phy-handle = <&xfi01>; | ||
263 | }; | ||
264 | qsgmii00 { | ||
265 | reg = <0>; | ||
266 | qlm-mode = "0x000,qsgmii"; | ||
267 | local-mac-address = [00 00 00 00 00 00]; | ||
268 | phy-handle = <&qsgmii00>; | ||
269 | }; | ||
270 | qsgmii01 { | ||
271 | reg = <1>; | ||
272 | qlm-mode = "0x001,qsgmii"; | ||
273 | local-mac-address = [00 00 00 00 00 00]; | ||
274 | phy-handle = <&qsgmii01>; | ||
275 | }; | ||
276 | qsgmii02 { | ||
277 | reg = <2>; | ||
278 | qlm-mode = "0x002,qsgmii"; | ||
279 | local-mac-address = [00 00 00 00 00 00]; | ||
280 | phy-handle = <&qsgmii02>; | ||
281 | }; | ||
282 | qsgmii03 { | ||
283 | reg = <3>; | ||
284 | qlm-mode = "0x003,qsgmii"; | ||
285 | local-mac-address = [00 00 00 00 00 00]; | ||
286 | phy-handle = <&qsgmii03>; | ||
287 | }; | ||
288 | }; | ||
289 | bgx1 { | ||
290 | sgmii10 { | ||
291 | reg = <0>; | ||
292 | qlm-mode = "0x010,sgmii"; | ||
293 | local-mac-address = [00 00 00 00 00 00]; | ||
294 | phy-handle = <&sgmii10>; /*"sgmmi"+bgx+no */ | ||
295 | }; | ||
296 | sgmii11 { | ||
297 | reg = <1>; | ||
298 | qlm-mode = "0x011,sgmii"; | ||
299 | local-mac-address = [00 00 00 00 00 00]; | ||
300 | phy-handle = <&sgmii11>; | ||
301 | }; | ||
302 | sgmii12 { | ||
303 | reg = <2>; | ||
304 | qlm-mode = "0x012,sgmii"; | ||
305 | local-mac-address = [00 00 00 00 00 00]; | ||
306 | phy-handle = <&sgmii12>; | ||
307 | }; | ||
308 | sgmii13 { | ||
309 | reg = <3>; | ||
310 | qlm-mode = "0x013,sgmii"; | ||
311 | local-mac-address = [00 00 00 00 00 00]; | ||
312 | phy-handle = <&sgmii13>; | ||
313 | }; | ||
314 | xfi10 { | ||
315 | reg = <0>; | ||
316 | qlm-mode = "0x010,xfi"; | ||
317 | local-mac-address = [00 00 00 00 00 00]; | ||
318 | phy-handle = <&xfi10>; | ||
319 | }; | ||
320 | xfi11 { | ||
321 | reg = <1>; | ||
322 | qlm-mode = "0x011,xfi"; | ||
323 | local-mac-address = [00 00 00 00 00 00]; | ||
324 | phy-handle = <&xfi11>; | ||
325 | }; | ||
326 | xfi12 { | ||
327 | reg = <2>; | ||
328 | qlm-mode = "0x012,xfi"; | ||
329 | local-mac-address = [00 00 00 00 00 00]; | ||
330 | phy-handle = <&xfi12>; | ||
331 | }; | ||
332 | xfi13 { | ||
333 | reg = <3>; | ||
334 | qlm-mode = "0x013,xfi"; | ||
335 | local-mac-address = [00 00 00 00 00 00]; | ||
336 | phy-handle = <&xfi13>; | ||
337 | }; | ||
338 | // 10g_kr | ||
339 | xfi-10g-kr10 { | ||
340 | reg = <0>; | ||
341 | qlm-mode = "0x010,xfi-10g-kr"; | ||
342 | local-mac-address = [00 00 00 00 00 00]; | ||
343 | phy-handle = <&xfi10>; | ||
344 | }; | ||
345 | xfi-10g-kr11 { | ||
346 | reg = <1>; | ||
347 | qlm-mode = "0x011,xfi-10g-kr"; | ||
348 | local-mac-address = [00 00 00 00 00 00]; | ||
349 | phy-handle = <&xfi11>; | ||
350 | }; | ||
351 | xfi-10g-kr12 { | ||
352 | reg = <2>; | ||
353 | qlm-mode = "0x012,xfi-10g-kr"; | ||
354 | local-mac-address = [00 00 00 00 00 00]; | ||
355 | phy-handle = <&xfi12>; | ||
356 | }; | ||
357 | xfi-10g-kr13 { | ||
358 | reg = <3>; | ||
359 | qlm-mode = "0x013,xfi-10g-kr"; | ||
360 | local-mac-address = [00 00 00 00 00 00]; | ||
361 | phy-handle = <&xfi13>; | ||
362 | }; | ||
363 | xlaui10 { | ||
364 | reg = <0>; | ||
365 | qlm-mode = "0x010,xlaui"; | ||
366 | local-mac-address = [00 00 00 00 00 00]; | ||
367 | phy-handle = <&xlaui10>; | ||
368 | }; | ||
369 | xlaui-40g-kr-10 { | ||
370 | reg = <0>; | ||
371 | qlm-mode = "0x010,xlaui-40g-kr"; | ||
372 | local-mac-address = [00 00 00 00 00 00]; | ||
373 | phy-handle = <&xlaui10>; | ||
374 | }; | ||
375 | xaui10 { | ||
376 | reg = <0>; | ||
377 | qlm-mode = "0x010,xaui"; | ||
378 | local-mac-address = [00 00 00 00 00 00]; | ||
379 | phy-handle = <&xaui10>; | ||
380 | }; | ||
381 | rxaui10 { | ||
382 | reg = <8>; | ||
383 | qlm-mode = "0x010,rxaui"; | ||
384 | local-mac-address = [00 00 00 00 00 00]; | ||
385 | phy-handle = <&rxaui10>; | ||
386 | }; | ||
387 | rxaui11 { | ||
388 | reg = <9>; | ||
389 | qlm-mode = "0x011,rxaui"; | ||
390 | local-mac-address = [00 00 00 00 00 00]; | ||
391 | phy-handle = <&rxaui11>; | ||
392 | }; | ||
393 | qsgmii10 { | ||
394 | reg = <0>; | ||
395 | qlm-mode = "0x010,qsgmii"; | ||
396 | local-mac-address = [00 00 00 00 00 00]; | ||
397 | phy-handle = <&qsgmii10>; | ||
398 | }; | ||
399 | qsgmii11 { | ||
400 | reg = <1>; | ||
401 | qlm-mode = "0x011,qsgmii"; | ||
402 | local-mac-address = [00 00 00 00 00 00]; | ||
403 | phy-handle = <&qsgmii11>; | ||
404 | }; | ||
405 | qsgmii12 { | ||
406 | reg = <2>; | ||
407 | qlm-mode = "0x012,qsgmii"; | ||
408 | local-mac-address = [00 00 00 00 00 00]; | ||
409 | phy-handle = <&qsgmii12>; | ||
410 | }; | ||
411 | qsgmii13 { | ||
412 | reg = <3>; | ||
413 | qlm-mode = "0x013,qsgmii"; | ||
414 | local-mac-address = [00 00 00 00 00 00]; | ||
415 | phy-handle = <&qsgmii13>; | ||
416 | }; | ||
417 | }; | ||
418 | }; | ||
419 | |||
420 | &mmc_1_4 { | ||
421 | mmc-slot@0 { | ||
422 | compatible = "mmc-slot"; | ||
423 | reg = <0>; | ||
424 | vmmc-supply = <&mmc_supply_3v3>; | ||
425 | max-frequency = <26000000>; | ||
426 | mmc-ddr-3_3v; | ||
427 | /* 1.8v is not supported */ | ||
428 | no-1-8-v; | ||
429 | /* Bus width is only 8 bits maximum */ | ||
430 | bus-width = <8>; | ||
431 | /* Write-protect */ | ||
432 | wp-gpios = <&gpio_6_0 26 0>; | ||
433 | /* Card detect */ | ||
434 | cd-gpios = <&gpio_6_0 27 1>; | ||
435 | |||
436 | /* SD UHS SDR25 is supported */ | ||
437 | sd-uhs-sdr25; | ||
438 | /* High-speed mode is supported */ | ||
439 | cap-sd-highspeed; | ||
440 | cap-mmc-highspeed; | ||
441 | }; | ||
442 | mmc-slot@1 { | ||
443 | compatible = "mmc-slot"; | ||
444 | reg = <1>; | ||
445 | vmmc-supply = <&mmc_supply_3v3>; | ||
446 | max-frequency = <26000000>; | ||
447 | mmc-ddr-3_3v; | ||
448 | /* 1.8v is not supported */ | ||
449 | no-1-8-v; | ||
450 | /* Bus width is only 8 bits maximum */ | ||
451 | bus-width = <8>; | ||
452 | /* Write-protect */ | ||
453 | wp-gpios = <&gpio_6_0 24 0>; | ||
454 | /* Card detect */ | ||
455 | cd-gpios = <&gpio_6_0 25 1>; | ||
456 | /* SD UHS SDR25 is supported */ | ||
457 | sd-uhs-sdr25; | ||
458 | /* High-speed mode is supported */ | ||
459 | cap-sd-highspeed; | ||
460 | cap-mmc-highspeed; | ||
461 | }; | ||
462 | }; | ||
463 | |||
464 | &i2c_9_0 { | ||
465 | rtc@68 { | ||
466 | compatible = "dallas,ds1337"; | ||
467 | reg = <0x68>; | ||
468 | }; | ||
469 | gpio1: cpld@6c { | ||
470 | compatible = "gpio-i2c", "cavium,cpld8104"; | ||
471 | reg = <0x6c>; | ||
472 | gpio_base = <48>; | ||
473 | #gpio-cells = <160>; // 8bits for each reg 0..0x13 | ||
474 | }; | ||
475 | }; | ||
476 | |||
477 | &spi_7_0 { | ||
478 | flash@0 { | ||
479 | compatible = "jedec,spi-nor"; | ||
480 | reg = <0x0>; | ||
481 | spi-max-frequency = <16000000>; | ||
482 | #address-cells = <1>; | ||
483 | #size-cells = <1>; | ||
484 | }; | ||
485 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/ebb8104-linux.dts b/recipes-kernel/linux/linux-cavium/dts/ebb8104-linux.dts deleted file mode 100644 index 84922d1..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/ebb8104-linux.dts +++ /dev/null | |||
@@ -1,620 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn81xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | mdio-nexus@1,3 { | ||
56 | mdio0@87e005003800 { | ||
57 | rgmii00: rgmii00 { | ||
58 | reg = <3> ; | ||
59 | compatible = "micrel,ksz9031", "ethernet-phy-ieee802.3-c22"; | ||
60 | }; | ||
61 | }; | ||
62 | |||
63 | mdio1@87e005003880 { | ||
64 | sgmii00: sgmii00 { | ||
65 | qlm-mode = "0x000,sgmii"; | ||
66 | reg = <0> ; | ||
67 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
68 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
69 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
70 | <3 0x11 0 0x00aa>, | ||
71 | <3 0x12 0 0x4105>, | ||
72 | <3 0x13 0 0x8a08>; | ||
73 | }; | ||
74 | sgmii01: sgmii01 { | ||
75 | qlm-mode = "0x001,sgmii"; | ||
76 | reg = <1> ; | ||
77 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
78 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
79 | <3 0x11 0 0x00aa>, | ||
80 | <3 0x12 0 0x4105>, | ||
81 | <3 0x13 0 0x8a08>; | ||
82 | }; | ||
83 | sgmii02: sgmii02 { | ||
84 | qlm-mode = "0x002,sgmii"; | ||
85 | reg = <2> ; | ||
86 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
87 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
88 | <3 0x11 0 0x00aa>, | ||
89 | <3 0x12 0 0x4105>, | ||
90 | <3 0x13 0 0x8a08>; | ||
91 | }; | ||
92 | sgmii03: sgmii03 { | ||
93 | qlm-mode = "0x003,sgmii"; | ||
94 | reg = <3> ; | ||
95 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
96 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
97 | <3 0x11 0 0x00aa>, | ||
98 | <3 0x12 0 0x4105>, | ||
99 | <3 0x13 0 0x8a08>; | ||
100 | }; | ||
101 | xfi00: xfi00 { | ||
102 | qlm-mode = "0x000,xfi","0x000,xfi-10g-kr"; | ||
103 | reg = <0> ; | ||
104 | compatible = "cortina,cs4223-slice"; | ||
105 | }; | ||
106 | xfi01: xfi01 { | ||
107 | qlm-mode = "0x001,xfi","0x001,xfi-10g-kr"; | ||
108 | reg = <1> ; | ||
109 | compatible = "cortina,cs4223-slice"; | ||
110 | }; | ||
111 | xfi02: xfi02 { | ||
112 | qlm-mode = "0x002,xfi","0x002,xfi-10g-kr"; | ||
113 | reg = <2> ; | ||
114 | compatible = "cortina,cs4223-slice"; | ||
115 | }; | ||
116 | xfi03: xfi03 { | ||
117 | qlm-mode = "0x003,xfi","0x003,xfi-10g-kr"; | ||
118 | reg = <3> ; | ||
119 | compatible = "cortina,cs4223-slice"; | ||
120 | }; | ||
121 | xlaui00: xlaui00 { | ||
122 | qlm-mode = "0x000,xlaui","0x000,xlaui-40g-kr"; | ||
123 | reg = <0> ; | ||
124 | compatible = "cortina,cs4223-slice"; | ||
125 | }; | ||
126 | xaui00: xaui00 { | ||
127 | qlm-mode = "0x000,xaui"; | ||
128 | reg = <0> ; | ||
129 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
130 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
131 | }; | ||
132 | rxaui00: rxaui00 { | ||
133 | qlm-mode = "0x000,rxaui"; | ||
134 | reg = <0> ; | ||
135 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
136 | }; | ||
137 | rxaui01: rxaui01 { | ||
138 | qlm-mode = "0x001,rxaui"; | ||
139 | reg = <1> ; | ||
140 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
141 | }; | ||
142 | qsgmii00: qsgmii00 { | ||
143 | qlm-mode = "0x000,qsgmii"; | ||
144 | reg = <0> ; | ||
145 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
146 | }; | ||
147 | qsgmii01: qsgmii01 { | ||
148 | qlm-mode = "0x001,qsgmii"; | ||
149 | reg = <1> ; | ||
150 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
151 | }; | ||
152 | qsgmii02: qsgmii02 { | ||
153 | qlm-mode = "0x002,qsgmii"; | ||
154 | reg = <2> ; | ||
155 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
156 | }; | ||
157 | qsgmii03: qsgmii03 { | ||
158 | qlm-mode = "0x003,qsgmii"; | ||
159 | reg = <3> ; | ||
160 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
161 | }; | ||
162 | |||
163 | sgmii10: sgmii10 { | ||
164 | qlm-mode = "0x010,sgmii"; | ||
165 | reg = <8> ; | ||
166 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
167 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
168 | <3 0x11 0 0x00aa>, | ||
169 | <3 0x12 0 0x4105>, | ||
170 | <3 0x13 0 0x8a08>; | ||
171 | }; | ||
172 | sgmii11: sgmii11 { | ||
173 | qlm-mode = "0x011,sgmii"; | ||
174 | reg = <9> ; | ||
175 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
176 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
177 | <3 0x11 0 0x00aa>, | ||
178 | <3 0x12 0 0x4105>, | ||
179 | <3 0x13 0 0x8a08>; | ||
180 | }; | ||
181 | sgmii12: sgmii12 { | ||
182 | qlm-mode = "0x012,sgmii"; | ||
183 | reg = <10> ; | ||
184 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
185 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
186 | <3 0x11 0 0x00aa>, | ||
187 | <3 0x12 0 0x4105>, | ||
188 | <3 0x13 0 0x8a08>; | ||
189 | }; | ||
190 | sgmii13: sgmii13 { | ||
191 | qlm-mode = "0x013,sgmii"; | ||
192 | reg = <11> ; | ||
193 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
194 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
195 | <3 0x11 0 0x00aa>, | ||
196 | <3 0x12 0 0x4105>, | ||
197 | <3 0x13 0 0x8a08>; | ||
198 | }; | ||
199 | xfi10: xfi10 { | ||
200 | qlm-mode = "0x010,xfi","0x010,xfi-10g-kr"; | ||
201 | reg = <8> ; | ||
202 | compatible = "cortina,cs4223-slice"; | ||
203 | }; | ||
204 | xfi11: xfi11 { | ||
205 | qlm-mode = "0x011,xfi","0x011,xfi-10g-kr"; | ||
206 | reg = <9> ; | ||
207 | compatible = "cortina,cs4223-slice"; | ||
208 | }; | ||
209 | xfi12: xfi12 { | ||
210 | qlm-mode = "0x012,xfi","0x012,xfi-10g-kr"; | ||
211 | reg = <10> ; | ||
212 | compatible = "cortina,cs4223-slice"; | ||
213 | }; | ||
214 | xfi13: xfi13 { | ||
215 | qlm-mode = "0x013,xfi","0x013,xfi-10g-kr"; | ||
216 | reg = <11> ; | ||
217 | compatible = "cortina,cs4223-slice"; | ||
218 | }; | ||
219 | xlaui10: xlaui10 { | ||
220 | qlm-mode = "0x010,xlaui","0x010,xlaui-40g-kr"; | ||
221 | reg = <8> ; | ||
222 | compatible = "cortina,cs4223-slice"; | ||
223 | }; | ||
224 | xaui10: xaui10 { | ||
225 | qlm-mode = "0x010,xaui"; | ||
226 | reg = <8> ; | ||
227 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
228 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
229 | }; | ||
230 | rxaui10: rxaui10 { | ||
231 | qlm-mode = "0x010,rxaui"; | ||
232 | reg = <8> ; | ||
233 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
234 | }; | ||
235 | rxaui11: rxaui11 { | ||
236 | qlm-mode = "0x011,rxaui"; | ||
237 | reg = <9> ; | ||
238 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
239 | }; | ||
240 | qsgmii10: qsgmii10 { | ||
241 | qlm-mode = "0x010,qsgmii"; | ||
242 | reg = <8> ; | ||
243 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
244 | }; | ||
245 | qsgmii11: qsgmii11 { | ||
246 | qlm-mode = "0x011,qsgmii"; | ||
247 | reg = <9> ; | ||
248 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
249 | }; | ||
250 | qsgmii12: qsgmii12 { | ||
251 | qlm-mode = "0x012,qsgmii"; | ||
252 | reg = <10> ; | ||
253 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
254 | }; | ||
255 | qsgmii13: qsgmii13 { | ||
256 | qlm-mode = "0x013,qsgmii"; | ||
257 | reg = <11> ; | ||
258 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
259 | }; | ||
260 | }; | ||
261 | }; | ||
262 | |||
263 | rgx0 { | ||
264 | rgmii00 { | ||
265 | reg = <3>; | ||
266 | local-mac-address = [00 00 00 00 00 00]; | ||
267 | phy-handle = <&rgmii00>; | ||
268 | }; | ||
269 | }; | ||
270 | |||
271 | bgx0 { | ||
272 | /* typename+qlm+typenumber eg : | ||
273 | sgmii+bgx0+sgmmi0 | ||
274 | */ | ||
275 | // SGMII | ||
276 | sgmii00 { | ||
277 | reg = <0>; | ||
278 | qlm-mode = "0x000,sgmii"; | ||
279 | local-mac-address = [00 00 00 00 00 00]; | ||
280 | phy-handle = <&sgmii00>; | ||
281 | }; | ||
282 | sgmii01 { | ||
283 | reg = <1>; | ||
284 | qlm-mode = "0x001,sgmii"; | ||
285 | local-mac-address = [00 00 00 00 00 00]; | ||
286 | phy-handle = <&sgmii01>; | ||
287 | }; | ||
288 | sgmii02 { | ||
289 | reg = <2>; | ||
290 | qlm-mode = "0x002,sgmii"; | ||
291 | local-mac-address = [00 00 00 00 00 00]; | ||
292 | phy-handle = <&sgmii02>; | ||
293 | }; | ||
294 | sgmii03 { | ||
295 | reg = <3>; | ||
296 | qlm-mode = "0x003,sgmii"; | ||
297 | local-mac-address = [00 00 00 00 00 00]; | ||
298 | phy-handle = <&sgmii03>; | ||
299 | }; | ||
300 | xfi00 { | ||
301 | reg = <0>; | ||
302 | qlm-mode = "0x000,xfi"; | ||
303 | local-mac-address = [00 00 00 00 00 00]; | ||
304 | phy-handle = <&xfi00>; | ||
305 | }; | ||
306 | xfi01 { | ||
307 | reg = <1>; | ||
308 | qlm-mode = "0x001,xfi"; | ||
309 | local-mac-address = [00 00 00 00 00 00]; | ||
310 | phy-handle = <&xfi01>; | ||
311 | }; | ||
312 | xfi02 { | ||
313 | reg = <2>; | ||
314 | qlm-mode = "0x002,xfi"; | ||
315 | local-mac-address = [00 00 00 00 00 00]; | ||
316 | phy-handle = <&xfi02>; | ||
317 | }; | ||
318 | xfi03 { | ||
319 | reg = <3>; | ||
320 | qlm-mode = "0x003,xfi"; | ||
321 | local-mac-address = [00 00 00 00 00 00]; | ||
322 | phy-handle = <&xfi03>; | ||
323 | }; | ||
324 | // 10g-kr | ||
325 | xfi-10g-kr00 { | ||
326 | reg = <0>; | ||
327 | qlm-mode = "0x000,xfi-10g-kr"; | ||
328 | local-mac-address = [00 00 00 00 00 00]; | ||
329 | phy-handle = <&xfi00>; | ||
330 | }; | ||
331 | xfi-10g-kr01 { | ||
332 | reg = <1>; | ||
333 | qlm-mode = "0x001,xfi-10g-kr"; | ||
334 | local-mac-address = [00 00 00 00 00 00]; | ||
335 | phy-handle = <&xfi01>; | ||
336 | }; | ||
337 | xfi-10g-kr02 { | ||
338 | reg = <2>; | ||
339 | qlm-mode = "0x002,xfi-10g-kr"; | ||
340 | local-mac-address = [00 00 00 00 00 00]; | ||
341 | phy-handle = <&xfi02>; | ||
342 | }; | ||
343 | xfi-10g-kr03 { | ||
344 | reg = <3>; | ||
345 | qlm-mode = "0x003,xfi-10g-kr"; | ||
346 | local-mac-address = [00 00 00 00 00 00]; | ||
347 | phy-handle = <&xfi03>; | ||
348 | }; | ||
349 | xlaui00 { | ||
350 | reg = <0>; | ||
351 | qlm-mode = "0x000,xlaui"; | ||
352 | local-mac-address = [00 00 00 00 00 00]; | ||
353 | phy-handle = <&xlaui00>; | ||
354 | }; | ||
355 | xlaui-40g-kr00 { | ||
356 | reg = <0>; | ||
357 | qlm-mode = "0x000,xlaui-40g-kr"; | ||
358 | local-mac-address = [00 00 00 00 00 00]; | ||
359 | phy-handle = <&xlaui00>; | ||
360 | }; | ||
361 | xaui00 { | ||
362 | reg = <0>; | ||
363 | qlm-mode = "0x000,xaui"; | ||
364 | local-mac-address = [00 00 00 00 00 00]; | ||
365 | phy-handle = <&xaui00>; | ||
366 | }; | ||
367 | rxaui00 { | ||
368 | reg = <0>; | ||
369 | qlm-mode = "0x000,rxaui"; | ||
370 | local-mac-address = [00 00 00 00 00 00]; | ||
371 | phy-handle = <&rxaui00>; | ||
372 | }; | ||
373 | rxaui01 { | ||
374 | reg = <1>; | ||
375 | qlm-mode = "0x001,rxaui"; | ||
376 | local-mac-address = [00 00 00 00 00 00]; | ||
377 | phy-handle = <&rxaui01>; | ||
378 | }; | ||
379 | qsgmii00 { | ||
380 | reg = <0>; | ||
381 | qlm-mode = "0x000,qsgmii"; | ||
382 | local-mac-address = [00 00 00 00 00 00]; | ||
383 | phy-handle = <&qsgmii00>; | ||
384 | }; | ||
385 | qsgmii01 { | ||
386 | reg = <1>; | ||
387 | qlm-mode = "0x001,qsgmii"; | ||
388 | local-mac-address = [00 00 00 00 00 00]; | ||
389 | phy-handle = <&qsgmii01>; | ||
390 | }; | ||
391 | qsgmii02 { | ||
392 | reg = <2>; | ||
393 | qlm-mode = "0x002,qsgmii"; | ||
394 | local-mac-address = [00 00 00 00 00 00]; | ||
395 | phy-handle = <&qsgmii02>; | ||
396 | }; | ||
397 | qsgmii03 { | ||
398 | reg = <3>; | ||
399 | qlm-mode = "0x003,qsgmii"; | ||
400 | local-mac-address = [00 00 00 00 00 00]; | ||
401 | phy-handle = <&qsgmii03>; | ||
402 | }; | ||
403 | }; | ||
404 | bgx1 { | ||
405 | sgmii10 { | ||
406 | reg = <0>; | ||
407 | qlm-mode = "0x010,sgmii"; | ||
408 | local-mac-address = [00 00 00 00 00 00]; | ||
409 | phy-handle = <&sgmii10>; /*"sgmmi"+bgx+no */ | ||
410 | }; | ||
411 | sgmii11 { | ||
412 | reg = <1>; | ||
413 | qlm-mode = "0x011,sgmii"; | ||
414 | local-mac-address = [00 00 00 00 00 00]; | ||
415 | phy-handle = <&sgmii11>; | ||
416 | }; | ||
417 | sgmii12 { | ||
418 | reg = <2>; | ||
419 | qlm-mode = "0x012,sgmii"; | ||
420 | local-mac-address = [00 00 00 00 00 00]; | ||
421 | phy-handle = <&sgmii12>; | ||
422 | }; | ||
423 | sgmii13 { | ||
424 | reg = <3>; | ||
425 | qlm-mode = "0x013,sgmii"; | ||
426 | local-mac-address = [00 00 00 00 00 00]; | ||
427 | phy-handle = <&sgmii13>; | ||
428 | }; | ||
429 | xfi10 { | ||
430 | reg = <0>; | ||
431 | qlm-mode = "0x010,xfi"; | ||
432 | local-mac-address = [00 00 00 00 00 00]; | ||
433 | phy-handle = <&xfi10>; | ||
434 | }; | ||
435 | xfi11 { | ||
436 | reg = <1>; | ||
437 | qlm-mode = "0x011,xfi"; | ||
438 | local-mac-address = [00 00 00 00 00 00]; | ||
439 | phy-handle = <&xfi11>; | ||
440 | }; | ||
441 | xfi12 { | ||
442 | reg = <2>; | ||
443 | qlm-mode = "0x012,xfi"; | ||
444 | local-mac-address = [00 00 00 00 00 00]; | ||
445 | phy-handle = <&xfi12>; | ||
446 | }; | ||
447 | xfi13 { | ||
448 | reg = <3>; | ||
449 | qlm-mode = "0x013,xfi"; | ||
450 | local-mac-address = [00 00 00 00 00 00]; | ||
451 | phy-handle = <&xfi13>; | ||
452 | }; | ||
453 | // 10g_kr | ||
454 | xfi-10g-kr10 { | ||
455 | reg = <0>; | ||
456 | qlm-mode = "0x010,xfi-10g-kr"; | ||
457 | local-mac-address = [00 00 00 00 00 00]; | ||
458 | phy-handle = <&xfi10>; | ||
459 | }; | ||
460 | xfi-10g-kr11 { | ||
461 | reg = <1>; | ||
462 | qlm-mode = "0x011,xfi-10g-kr"; | ||
463 | local-mac-address = [00 00 00 00 00 00]; | ||
464 | phy-handle = <&xfi11>; | ||
465 | }; | ||
466 | xfi-10g-kr12 { | ||
467 | reg = <2>; | ||
468 | qlm-mode = "0x012,xfi-10g-kr"; | ||
469 | local-mac-address = [00 00 00 00 00 00]; | ||
470 | phy-handle = <&xfi12>; | ||
471 | }; | ||
472 | xfi-10g-kr13 { | ||
473 | reg = <3>; | ||
474 | qlm-mode = "0x013,xfi-10g-kr"; | ||
475 | local-mac-address = [00 00 00 00 00 00]; | ||
476 | phy-handle = <&xfi13>; | ||
477 | }; | ||
478 | xlaui10 { | ||
479 | reg = <0>; | ||
480 | qlm-mode = "0x010,xlaui"; | ||
481 | local-mac-address = [00 00 00 00 00 00]; | ||
482 | phy-handle = <&xlaui10>; | ||
483 | }; | ||
484 | xlaui-40g-kr-10 { | ||
485 | reg = <0>; | ||
486 | qlm-mode = "0x010,xlaui-40g-kr"; | ||
487 | local-mac-address = [00 00 00 00 00 00]; | ||
488 | phy-handle = <&xlaui10>; | ||
489 | }; | ||
490 | xaui10 { | ||
491 | reg = <0>; | ||
492 | qlm-mode = "0x010,xaui"; | ||
493 | local-mac-address = [00 00 00 00 00 00]; | ||
494 | phy-handle = <&xaui10>; | ||
495 | }; | ||
496 | rxaui10 { | ||
497 | reg = <8>; | ||
498 | qlm-mode = "0x010,rxaui"; | ||
499 | local-mac-address = [00 00 00 00 00 00]; | ||
500 | phy-handle = <&rxaui10>; | ||
501 | }; | ||
502 | rxaui11 { | ||
503 | reg = <9>; | ||
504 | qlm-mode = "0x011,rxaui"; | ||
505 | local-mac-address = [00 00 00 00 00 00]; | ||
506 | phy-handle = <&rxaui11>; | ||
507 | }; | ||
508 | qsgmii10 { | ||
509 | reg = <0>; | ||
510 | qlm-mode = "0x010,qsgmii"; | ||
511 | local-mac-address = [00 00 00 00 00 00]; | ||
512 | phy-handle = <&qsgmii10>; | ||
513 | }; | ||
514 | qsgmii11 { | ||
515 | reg = <1>; | ||
516 | qlm-mode = "0x011,qsgmii"; | ||
517 | local-mac-address = [00 00 00 00 00 00]; | ||
518 | phy-handle = <&qsgmii11>; | ||
519 | }; | ||
520 | qsgmii12 { | ||
521 | reg = <2>; | ||
522 | qlm-mode = "0x012,qsgmii"; | ||
523 | local-mac-address = [00 00 00 00 00 00]; | ||
524 | phy-handle = <&qsgmii12>; | ||
525 | }; | ||
526 | qsgmii13 { | ||
527 | reg = <3>; | ||
528 | qlm-mode = "0x013,qsgmii"; | ||
529 | local-mac-address = [00 00 00 00 00 00]; | ||
530 | phy-handle = <&qsgmii13>; | ||
531 | }; | ||
532 | }; | ||
533 | }; | ||
534 | |||
535 | &mmc_1_4 { | ||
536 | mmc-slot@0 { | ||
537 | compatible = "mmc-slot"; | ||
538 | reg = <0>; | ||
539 | vmmc-supply = <&mmc_supply_3v3>; | ||
540 | max-frequency = <26000000>; | ||
541 | mmc-ddr-3_3v; | ||
542 | /* 1.8v is not supported */ | ||
543 | no-1-8-v; | ||
544 | /* Bus width is only 8 bits maximum */ | ||
545 | bus-width = <8>; | ||
546 | /* Write-protect */ | ||
547 | wp-gpios = <&gpio_6_0 26 0>; | ||
548 | /* Card detect */ | ||
549 | cd-gpios = <&gpio_6_0 27 1>; | ||
550 | |||
551 | /* SD UHS SDR25 is supported */ | ||
552 | sd-uhs-sdr25; | ||
553 | /* High-speed mode is supported */ | ||
554 | cap-sd-highspeed; | ||
555 | cap-mmc-highspeed; | ||
556 | }; | ||
557 | mmc-slot@1 { | ||
558 | compatible = "mmc-slot"; | ||
559 | reg = <1>; | ||
560 | vmmc-supply = <&mmc_supply_3v3>; | ||
561 | max-frequency = <26000000>; | ||
562 | mmc-ddr-3_3v; | ||
563 | /* 1.8v is not supported */ | ||
564 | no-1-8-v; | ||
565 | /* Bus width is only 8 bits maximum */ | ||
566 | bus-width = <8>; | ||
567 | /* Write-protect */ | ||
568 | wp-gpios = <&gpio_6_0 24 0>; | ||
569 | /* Card detect */ | ||
570 | cd-gpios = <&gpio_6_0 25 1>; | ||
571 | /* SD UHS SDR25 is supported */ | ||
572 | sd-uhs-sdr25; | ||
573 | /* High-speed mode is supported */ | ||
574 | cap-sd-highspeed; | ||
575 | cap-mmc-highspeed; | ||
576 | }; | ||
577 | }; | ||
578 | |||
579 | &i2c_9_0 { | ||
580 | rtc@68 { | ||
581 | compatible = "dallas,ds1337"; | ||
582 | reg = <0x68>; | ||
583 | rtcmodel = <1>; | ||
584 | }; | ||
585 | gpio1: cpld@6c { | ||
586 | compatible = "gpio-i2c", "cavium,cpld8104"; | ||
587 | gpio-controller; | ||
588 | reg = <0x6c>; | ||
589 | ngpios = <160>; // 8bits for each reg 0..0x13 | ||
590 | #gpio-cells = <2>; | ||
591 | }; | ||
592 | }; | ||
593 | |||
594 | &spi_7_0 { | ||
595 | flash@0 { | ||
596 | compatible = "jedec,spi-nor", "spi-flash"; | ||
597 | reg = <0x0>; | ||
598 | spi-max-frequency = <16000000>; | ||
599 | #address-cells = <1>; | ||
600 | #size-cells = <1>; | ||
601 | }; | ||
602 | slic0@2 { | ||
603 | compatible = "silabs,si32260", "linux,spidev"; | ||
604 | reg = <2>; | ||
605 | spi-max-frequency = <2500000>; | ||
606 | reset-gpios = <&gpio1 74 1>; | ||
607 | irq-gpios = <&gpio_6_0 3>; | ||
608 | tx = <&tdm 0>; | ||
609 | rx = <&tdm 1>; | ||
610 | }; | ||
611 | slic1@3 { | ||
612 | compatible = "silabs,si32260", "linux,spidev"; | ||
613 | reg = <3>; | ||
614 | spi-max-frequency = <2500000>; | ||
615 | reset-gpios = <&gpio1 75 1>; | ||
616 | irq-gpios = <&gpio_6_0 5>; | ||
617 | tx = <&tdm 2>; | ||
618 | rx = <&tdm 3>; | ||
619 | }; | ||
620 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/ebb8304-linux.dts b/recipes-kernel/linux/linux-cavium/dts/ebb8304-linux.dts deleted file mode 100644 index 3570620..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/ebb8304-linux.dts +++ /dev/null | |||
@@ -1,989 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn83xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | mdio-nexus@1,3 { | ||
56 | mdio0@87e005003800 { | ||
57 | sgmii20: sgmii20 { | ||
58 | qlm-mode = "0x020,sgmii"; | ||
59 | reg = <0x14>; | ||
60 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
61 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
62 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
63 | <3 0x11 0 0x00aa>, | ||
64 | <3 0x12 0 0x4105>, | ||
65 | <3 0x13 0 0x8a08>; | ||
66 | }; | ||
67 | sgmii21: sgmii21 { | ||
68 | qlm-mode = "0x021,sgmii"; | ||
69 | reg = <0x15>; | ||
70 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
71 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
72 | <3 0x11 0 0x00aa>, | ||
73 | <3 0x12 0 0x4105>, | ||
74 | <3 0x13 0 0x8a08>; | ||
75 | }; | ||
76 | sgmii22: sgmii22 { | ||
77 | qlm-mode = "0x022,sgmii"; | ||
78 | reg = <0x16>; | ||
79 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
80 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
81 | <3 0x11 0 0x00aa>, | ||
82 | <3 0x12 0 0x4105>, | ||
83 | <3 0x13 0 0x8a08>; | ||
84 | }; | ||
85 | sgmii23: sgmii23 { | ||
86 | qlm-mode = "0x023,sgmii"; | ||
87 | reg = <0x17>; | ||
88 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
89 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
90 | <3 0x11 0 0x00aa>, | ||
91 | <3 0x12 0 0x4105>, | ||
92 | <3 0x13 0 0x8a08>; | ||
93 | }; | ||
94 | xfi20: xfi20 { | ||
95 | qlm-mode = "0x020,xfi","0x020,xfi-10g-kr"; | ||
96 | reg = <0x14> ; | ||
97 | compatible = "cortina,cs4223-slice"; | ||
98 | }; | ||
99 | xfi21: xfi21 { | ||
100 | qlm-mode = "0x021,xfi","0x021,xfi-10g-kr"; | ||
101 | reg = <0x15> ; | ||
102 | compatible = "cortina,cs4223-slice"; | ||
103 | }; | ||
104 | xfi22: xfi22 { | ||
105 | qlm-mode = "0x022,xfi","0x022,xfi-10g-kr"; | ||
106 | reg = <0x16> ; | ||
107 | compatible = "cortina,cs4223-slice"; | ||
108 | }; | ||
109 | xfi23: xfi23 { | ||
110 | qlm-mode = "0x023,xfi","0x023,xfi-10g-kr"; | ||
111 | reg = <0x17> ; | ||
112 | compatible = "cortina,cs4223-slice"; | ||
113 | }; | ||
114 | xlaui20: xlaui20 { | ||
115 | qlm-mode = "0x020,xlaui","0x020,xlaui-40g-kr"; | ||
116 | reg = <0x14> ; | ||
117 | compatible = "cortina,cs4223-slice"; | ||
118 | }; | ||
119 | xaui20: xaui20 { | ||
120 | qlm-mode = "0x020,xaui"; | ||
121 | reg = <0x14> ; | ||
122 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
123 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
124 | }; | ||
125 | rxaui20: rxaui20 { | ||
126 | qlm-mode = "0x020,rxaui"; | ||
127 | reg = <0x14> ; | ||
128 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
129 | }; | ||
130 | rxaui21: rxaui21 { | ||
131 | qlm-mode = "0x021,rxaui"; | ||
132 | reg = <0x15> ; | ||
133 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
134 | }; | ||
135 | qsgmii20: qsgmii20 { | ||
136 | qlm-mode = "0x020,qsgmii"; | ||
137 | reg = <0x14> ; | ||
138 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
139 | }; | ||
140 | qsgmii21: qsgmii21 { | ||
141 | qlm-mode = "0x021,qsgmii"; | ||
142 | reg = <0x15> ; | ||
143 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
144 | }; | ||
145 | qsgmii22: qsgmii22 { | ||
146 | qlm-mode = "0x022,qsgmii"; | ||
147 | reg = <0x16> ; | ||
148 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
149 | }; | ||
150 | qsgmii23: qsgmii23 { | ||
151 | qlm-mode = "0x023,qsgmii"; | ||
152 | reg = <0x17> ; | ||
153 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
154 | }; | ||
155 | sgmii30: sgmii30 { | ||
156 | qlm-mode = "0x030,sgmii"; | ||
157 | reg = <0x10>; | ||
158 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
159 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
160 | <3 0x11 0 0x00aa>, | ||
161 | <3 0x12 0 0x4105>, | ||
162 | <3 0x13 0 0x8a08>; | ||
163 | }; | ||
164 | sgmii31: sgmii31 { | ||
165 | qlm-mode = "0x031,sgmii"; | ||
166 | reg = <0x11>; | ||
167 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
168 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
169 | <3 0x11 0 0x00aa>, | ||
170 | <3 0x12 0 0x4105>, | ||
171 | <3 0x13 0 0x8a08>; | ||
172 | }; | ||
173 | sgmii32: sgmii32 { | ||
174 | qlm-mode = "0x032,sgmii"; | ||
175 | reg = <0x12>; | ||
176 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
177 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
178 | <3 0x11 0 0x00aa>, | ||
179 | <3 0x12 0 0x4105>, | ||
180 | <3 0x13 0 0x8a08>; | ||
181 | }; | ||
182 | sgmii33: sgmii33 { | ||
183 | qlm-mode = "0x033,sgmii"; | ||
184 | reg = <0x13>; | ||
185 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
186 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
187 | <3 0x11 0 0x00aa>, | ||
188 | <3 0x12 0 0x4105>, | ||
189 | <3 0x13 0 0x8a08>; | ||
190 | }; | ||
191 | xfi30: xfi30 { | ||
192 | qlm-mode = "0x030,xfi","0x030,xfi-10g-kr"; | ||
193 | reg = <0x10> ; | ||
194 | compatible = "cortina,cs4223-slice"; | ||
195 | }; | ||
196 | xfi31: xfi31 { | ||
197 | qlm-mode = "0x031,xfi","0x031,xfi-10g-kr"; | ||
198 | reg = <0x11> ; | ||
199 | compatible = "cortina,cs4223-slice"; | ||
200 | }; | ||
201 | xfi32: xfi32 { | ||
202 | qlm-mode = "0x032,xfi","0x032,xfi-10g-kr"; | ||
203 | reg = <0x12> ; | ||
204 | compatible = "cortina,cs4223-slice"; | ||
205 | }; | ||
206 | xfi33: xfi33 { | ||
207 | qlm-mode = "0x033,xfi","0x033,xfi-10g-kr"; | ||
208 | reg = <0x13> ; | ||
209 | compatible = "cortina,cs4223-slice"; | ||
210 | }; | ||
211 | xlaui30: xlaui30 { | ||
212 | qlm-mode = "0x030,xlaui","0x030,xlaui-40g-kr"; | ||
213 | reg = <0x10> ; | ||
214 | compatible = "cortina,cs4223-slice"; | ||
215 | }; | ||
216 | xaui30: xaui30 { | ||
217 | qlm-mode = "0x030,xaui"; | ||
218 | reg = <0x10> ; | ||
219 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
220 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
221 | }; | ||
222 | rxaui30: rxaui30 { | ||
223 | qlm-mode = "0x030,rxaui"; | ||
224 | reg = <0x10> ; | ||
225 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
226 | }; | ||
227 | rxaui31: rxaui31 { | ||
228 | qlm-mode = "0x031,rxaui"; | ||
229 | reg = <0x11> ; | ||
230 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
231 | }; | ||
232 | qsgmii30: qsgmii30 { | ||
233 | qlm-mode = "0x030,qsgmii"; | ||
234 | reg = <0x10> ; | ||
235 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
236 | }; | ||
237 | qsgmii31: qsgmii31 { | ||
238 | qlm-mode = "0x031,qsgmii"; | ||
239 | reg = <0x11> ; | ||
240 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
241 | }; | ||
242 | qsgmii32: qsgmii32 { | ||
243 | qlm-mode = "0x032,qsgmii"; | ||
244 | reg = <0x12> ; | ||
245 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
246 | }; | ||
247 | qsgmii33: qsgmii33 { | ||
248 | qlm-mode = "0x033,qsgmii"; | ||
249 | reg = <0x13> ; | ||
250 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
251 | }; | ||
252 | }; | ||
253 | |||
254 | mdio1@87e005003880 { | ||
255 | compatible = "cavium,thunder-8890-mdio"; | ||
256 | #address-cells = <1>; | ||
257 | #size-cells = <0>; | ||
258 | reg = <0x87e0 0x05003880 0x0 0x30>; | ||
259 | |||
260 | sgmii00: sgmii00 { | ||
261 | qlm-mode = "0x000,sgmii"; | ||
262 | reg = <0x8> ; | ||
263 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
264 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
265 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
266 | <3 0x11 0 0x00aa>, | ||
267 | <3 0x12 0 0x4105>, | ||
268 | <3 0x13 0 0x8a08>; | ||
269 | }; | ||
270 | sgmii01: sgmii01 { | ||
271 | qlm-mode = "0x001,sgmii"; | ||
272 | reg = <0x9> ; | ||
273 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
274 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
275 | <3 0x11 0 0x00aa>, | ||
276 | <3 0x12 0 0x4105>, | ||
277 | <3 0x13 0 0x8a08>; | ||
278 | }; | ||
279 | sgmii02: sgmii02 { | ||
280 | qlm-mode = "0x002,sgmii"; | ||
281 | reg = <0xa> ; | ||
282 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
283 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
284 | <3 0x11 0 0x00aa>, | ||
285 | <3 0x12 0 0x4105>, | ||
286 | <3 0x13 0 0x8a08>; | ||
287 | }; | ||
288 | sgmii03: sgmii03 { | ||
289 | qlm-mode = "0x003,sgmii"; | ||
290 | reg = <0xb> ; | ||
291 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
292 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
293 | <3 0x11 0 0x00aa>, | ||
294 | <3 0x12 0 0x4105>, | ||
295 | <3 0x13 0 0x8a08>; | ||
296 | }; | ||
297 | xfi00: xfi00 { | ||
298 | qlm-mode = "0x000,xfi","0x000,xfi-10g-kr"; | ||
299 | reg = <0x8> ; | ||
300 | compatible = "cortina,cs4223-slice"; | ||
301 | }; | ||
302 | xfi01: xfi01 { | ||
303 | qlm-mode = "0x001,xfi","0x001,xfi-10g-kr"; | ||
304 | reg = <0x9> ; | ||
305 | compatible = "cortina,cs4223-slice"; | ||
306 | }; | ||
307 | xfi02: xfi02 { | ||
308 | qlm-mode = "0x002,xfi","0x002,xfi-10g-kr"; | ||
309 | reg = <0xa> ; | ||
310 | compatible = "cortina,cs4223-slice"; | ||
311 | }; | ||
312 | xfi03: xfi03 { | ||
313 | qlm-mode = "0x003,xfi","0x003,xfi-10g-kr"; | ||
314 | reg = <0xb> ; | ||
315 | compatible = "cortina,cs4223-slice"; | ||
316 | }; | ||
317 | xlaui00: xlaui00 { | ||
318 | qlm-mode = "0x000,xlaui","0x000,xlaui-40g-kr"; | ||
319 | reg = <0x8> ; | ||
320 | compatible = "cortina,cs4223-slice"; | ||
321 | }; | ||
322 | xaui00: xaui00 { | ||
323 | qlm-mode = "0x000,xaui"; | ||
324 | reg = <0x8> ; | ||
325 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
326 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
327 | }; | ||
328 | rxaui00: rxaui00 { | ||
329 | qlm-mode = "0x000,rxaui"; | ||
330 | reg = <0x8> ; | ||
331 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
332 | }; | ||
333 | rxaui01: rxaui01 { | ||
334 | qlm-mode = "0x001,rxaui"; | ||
335 | reg = <0x9> ; | ||
336 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
337 | }; | ||
338 | qsgmii00: qsgmii00 { | ||
339 | qlm-mode = "0x000,qsgmii"; | ||
340 | reg = <0x8> ; | ||
341 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
342 | }; | ||
343 | qsgmii01: qsgmii01 { | ||
344 | qlm-mode = "0x001,qsgmii"; | ||
345 | reg = <0x9> ; | ||
346 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
347 | }; | ||
348 | qsgmii02: qsgmii02 { | ||
349 | qlm-mode = "0x002,qsgmii"; | ||
350 | reg = <0xa> ; | ||
351 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
352 | }; | ||
353 | qsgmii03: qsgmii03 { | ||
354 | qlm-mode = "0x003,qsgmii"; | ||
355 | reg = <0xb> ; | ||
356 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
357 | }; | ||
358 | sgmii10: sgmii10 { | ||
359 | qlm-mode = "0x010,sgmii"; | ||
360 | reg = <0xc>; | ||
361 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
362 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
363 | <3 0x11 0 0x00aa>, | ||
364 | <3 0x12 0 0x4105>, | ||
365 | <3 0x13 0 0x8a08>; | ||
366 | }; | ||
367 | sgmii11: sgmii11 { | ||
368 | qlm-mode = "0x011,sgmii"; | ||
369 | reg = <0xd>; | ||
370 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
371 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
372 | <3 0x11 0 0x00aa>, | ||
373 | <3 0x12 0 0x4105>, | ||
374 | <3 0x13 0 0x8a08>; | ||
375 | }; | ||
376 | sgmii12: sgmii12 { | ||
377 | qlm-mode = "0x012,sgmii"; | ||
378 | reg = <0xe>; | ||
379 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
380 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
381 | <3 0x11 0 0x00aa>, | ||
382 | <3 0x12 0 0x4105>, | ||
383 | <3 0x13 0 0x8a08>; | ||
384 | }; | ||
385 | sgmii13: sgmii13 { | ||
386 | qlm-mode = "0x013,sgmii"; | ||
387 | reg = <0xf>; | ||
388 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
389 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
390 | <3 0x11 0 0x00aa>, | ||
391 | <3 0x12 0 0x4105>, | ||
392 | <3 0x13 0 0x8a08>; | ||
393 | }; | ||
394 | xfi10: xfi10 { | ||
395 | qlm-mode = "0x010,xfi","0x010,xfi-10g-kr"; | ||
396 | reg = <0xc> ; | ||
397 | compatible = "cortina,cs4223-slice"; | ||
398 | }; | ||
399 | xfi11: xfi11 { | ||
400 | qlm-mode = "0x011,xfi","0x011,xfi-10g-kr"; | ||
401 | reg = <0xd> ; | ||
402 | compatible = "cortina,cs4223-slice"; | ||
403 | }; | ||
404 | xfi12: xfi12 { | ||
405 | qlm-mode = "0x012,xfi","0x012,xfi-10g-kr"; | ||
406 | reg = <0xe> ; | ||
407 | compatible = "cortina,cs4223-slice"; | ||
408 | }; | ||
409 | xfi13: xfi13 { | ||
410 | qlm-mode = "0x013,xfi","0x013,xfi-10g-kr"; | ||
411 | reg = <0xf> ; | ||
412 | compatible = "cortina,cs4223-slice"; | ||
413 | }; | ||
414 | xlaui10: xlaui10 { | ||
415 | qlm-mode = "0x010,xlaui","0x010,xlaui-40g-kr"; | ||
416 | reg = <0xc> ; | ||
417 | compatible = "cortina,cs4223-slice"; | ||
418 | }; | ||
419 | xaui10: xaui10 { | ||
420 | qlm-mode = "0x010,xaui"; | ||
421 | reg = <0xc> ; | ||
422 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
423 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
424 | }; | ||
425 | rxaui10: rxaui10 { | ||
426 | qlm-mode = "0x010,rxaui"; | ||
427 | reg = <0xc> ; | ||
428 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
429 | }; | ||
430 | rxaui11: rxaui11 { | ||
431 | qlm-mode = "0x011,rxaui"; | ||
432 | reg = <0xd> ; | ||
433 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
434 | }; | ||
435 | qsgmii10: qsgmii10 { | ||
436 | qlm-mode = "0x010,qsgmii"; | ||
437 | reg = <0xc> ; | ||
438 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
439 | }; | ||
440 | qsgmii11: qsgmii11 { | ||
441 | qlm-mode = "0x011,qsgmii"; | ||
442 | reg = <0xd> ; | ||
443 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
444 | }; | ||
445 | qsgmii12: qsgmii12 { | ||
446 | qlm-mode = "0x012,qsgmii"; | ||
447 | reg = <0xe> ; | ||
448 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
449 | }; | ||
450 | qsgmii13: qsgmii13 { | ||
451 | qlm-mode = "0x013,qsgmii"; | ||
452 | reg = <0xf> ; | ||
453 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
454 | }; | ||
455 | }; | ||
456 | }; | ||
457 | |||
458 | bgx0 { | ||
459 | /* typename+qlm+typenumber eg : | ||
460 | sgmii+bgx0+sgmmi0 | ||
461 | */ | ||
462 | sgmii00 { | ||
463 | reg = <0>; | ||
464 | qlm-mode = "0x000,sgmii"; | ||
465 | local-mac-address = [00 00 00 00 00 00]; | ||
466 | phy-handle = <&sgmii00>; | ||
467 | }; | ||
468 | sgmii01 { | ||
469 | reg = <1>; | ||
470 | qlm-mode = "0x001,sgmii"; | ||
471 | local-mac-address = [00 00 00 00 00 00]; | ||
472 | phy-handle = <&sgmii01>; | ||
473 | }; | ||
474 | sgmii02 { | ||
475 | reg = <2>; | ||
476 | qlm-mode = "0x002,sgmii"; | ||
477 | local-mac-address = [00 00 00 00 00 00]; | ||
478 | phy-handle = <&sgmii02>; | ||
479 | }; | ||
480 | sgmii03 { | ||
481 | reg = <3>; | ||
482 | qlm-mode = "0x003,sgmii"; | ||
483 | local-mac-address = [00 00 00 00 00 00]; | ||
484 | phy-handle = <&sgmii03>; | ||
485 | }; | ||
486 | xfi00 { | ||
487 | reg = <0>; | ||
488 | qlm-mode = "0x000,xfi"; | ||
489 | local-mac-address = [00 00 00 00 00 00]; | ||
490 | phy-handle = <&xfi00>; | ||
491 | }; | ||
492 | xfi01 { | ||
493 | reg = <1>; | ||
494 | qlm-mode = "0x001,xfi"; | ||
495 | local-mac-address = [00 00 00 00 00 00]; | ||
496 | phy-handle = <&xfi01>; | ||
497 | }; | ||
498 | xfi02 { | ||
499 | reg = <2>; | ||
500 | qlm-mode = "0x002,xfi"; | ||
501 | local-mac-address = [00 00 00 00 00 00]; | ||
502 | phy-handle = <&xfi02>; | ||
503 | }; | ||
504 | xfi03 { | ||
505 | reg = <3>; | ||
506 | qlm-mode = "0x003,xfi"; | ||
507 | local-mac-address = [00 00 00 00 00 00]; | ||
508 | phy-handle = <&xfi03>; | ||
509 | }; | ||
510 | xfi-10g-kr00 { | ||
511 | reg = <0>; | ||
512 | qlm-mode = "0x000,xfi-10g-kr"; | ||
513 | local-mac-address = [00 00 00 00 00 00]; | ||
514 | phy-handle = <&xfi00>; | ||
515 | }; | ||
516 | xfi-10g-kr01 { | ||
517 | reg = <1>; | ||
518 | qlm-mode = "0x001,xfi-10g-kr"; | ||
519 | local-mac-address = [00 00 00 00 00 00]; | ||
520 | phy-handle = <&xfi01>; | ||
521 | }; | ||
522 | xfi-10g-kr02 { | ||
523 | reg = <2>; | ||
524 | qlm-mode = "0x002,xfi-10g-kr"; | ||
525 | local-mac-address = [00 00 00 00 00 00]; | ||
526 | phy-handle = <&xfi02>; | ||
527 | }; | ||
528 | xfi-10g-kr03 { | ||
529 | reg = <3>; | ||
530 | qlm-mode = "0x003,xfi-10g-kr"; | ||
531 | local-mac-address = [00 00 00 00 00 00]; | ||
532 | phy-handle = <&xfi03>; | ||
533 | }; | ||
534 | xlaui00 { | ||
535 | reg = <0>; | ||
536 | qlm-mode = "0x000,xlaui"; | ||
537 | local-mac-address = [00 00 00 00 00 00]; | ||
538 | phy-handle = <&xlaui00>; | ||
539 | }; | ||
540 | xlaui-40g-kr00 { | ||
541 | reg = <0>; | ||
542 | qlm-mode = "0x000,xlaui-40g-kr"; | ||
543 | local-mac-address = [00 00 00 00 00 00]; | ||
544 | phy-handle = <&xlaui00>; | ||
545 | }; | ||
546 | xaui00 { | ||
547 | reg = <0>; | ||
548 | qlm-mode = "0x000,xaui"; | ||
549 | local-mac-address = [00 00 00 00 00 00]; | ||
550 | phy-handle = <&xaui00>; | ||
551 | }; | ||
552 | rxaui00 { | ||
553 | reg = <0>; | ||
554 | qlm-mode = "0x000,rxaui"; | ||
555 | local-mac-address = [00 00 00 00 00 00]; | ||
556 | phy-handle = <&rxaui00>; | ||
557 | }; | ||
558 | rxaui01 { | ||
559 | reg = <1>; | ||
560 | qlm-mode = "0x001,rxaui"; | ||
561 | local-mac-address = [00 00 00 00 00 00]; | ||
562 | phy-handle = <&rxaui01>; | ||
563 | }; | ||
564 | qsgmii00 { | ||
565 | reg = <0>; | ||
566 | qlm-mode = "0x000,qsgmii"; | ||
567 | local-mac-address = [00 00 00 00 00 00]; | ||
568 | phy-handle = <&qsgmii00>; | ||
569 | }; | ||
570 | qsgmii01 { | ||
571 | reg = <1>; | ||
572 | qlm-mode = "0x001,qsgmii"; | ||
573 | local-mac-address = [00 00 00 00 00 00]; | ||
574 | phy-handle = <&qsgmii01>; | ||
575 | }; | ||
576 | qsgmii02 { | ||
577 | reg = <2>; | ||
578 | qlm-mode = "0x002,qsgmii"; | ||
579 | local-mac-address = [00 00 00 00 00 00]; | ||
580 | phy-handle = <&qsgmii02>; | ||
581 | }; | ||
582 | qsgmii03 { | ||
583 | reg = <3>; | ||
584 | qlm-mode = "0x003,qsgmii"; | ||
585 | local-mac-address = [00 00 00 00 00 00]; | ||
586 | phy-handle = <&qsgmii03>; | ||
587 | }; | ||
588 | }; | ||
589 | bgx1 { | ||
590 | sgmii10 { | ||
591 | reg = <0>; | ||
592 | qlm-mode = "0x010,sgmii"; | ||
593 | local-mac-address = [00 00 00 00 00 00]; | ||
594 | phy-handle = <&sgmii10>; /*"sgmmi"+bgx+no */ | ||
595 | }; | ||
596 | sgmii11 { | ||
597 | reg = <1>; | ||
598 | qlm-mode = "0x011,sgmii"; | ||
599 | local-mac-address = [00 00 00 00 00 00]; | ||
600 | phy-handle = <&sgmii11>; | ||
601 | }; | ||
602 | sgmii12 { | ||
603 | reg = <2>; | ||
604 | qlm-mode = "0x012,sgmii"; | ||
605 | local-mac-address = [00 00 00 00 00 00]; | ||
606 | phy-handle = <&sgmii12>; | ||
607 | }; | ||
608 | sgmii13 { | ||
609 | reg = <3>; | ||
610 | qlm-mode = "0x013,sgmii"; | ||
611 | local-mac-address = [00 00 00 00 00 00]; | ||
612 | phy-handle = <&sgmii13>; | ||
613 | }; | ||
614 | xfi10 { | ||
615 | reg = <0>; | ||
616 | qlm-mode = "0x010,xfi"; | ||
617 | local-mac-address = [00 00 00 00 00 00]; | ||
618 | phy-handle = <&xfi10>; | ||
619 | }; | ||
620 | xfi11 { | ||
621 | reg = <1>; | ||
622 | qlm-mode = "0x011,xfi"; | ||
623 | local-mac-address = [00 00 00 00 00 00]; | ||
624 | phy-handle = <&xfi11>; | ||
625 | }; | ||
626 | xfi12 { | ||
627 | reg = <2>; | ||
628 | qlm-mode = "0x012,xfi"; | ||
629 | local-mac-address = [00 00 00 00 00 00]; | ||
630 | phy-handle = <&xfi12>; | ||
631 | }; | ||
632 | xfi13 { | ||
633 | reg = <3>; | ||
634 | qlm-mode = "0x013,xfi"; | ||
635 | local-mac-address = [00 00 00 00 00 00]; | ||
636 | phy-handle = <&xfi13>; | ||
637 | }; | ||
638 | xfi-10g-kr10 { | ||
639 | reg = <0>; | ||
640 | qlm-mode = "0x010,xfi-10g-kr"; | ||
641 | local-mac-address = [00 00 00 00 00 00]; | ||
642 | phy-handle = <&xfi10>; | ||
643 | }; | ||
644 | xfi-10g-kr11 { | ||
645 | reg = <1>; | ||
646 | qlm-mode = "0x011,xfi-10g-kr"; | ||
647 | local-mac-address = [00 00 00 00 00 00]; | ||
648 | phy-handle = <&xfi11>; | ||
649 | }; | ||
650 | xfi-10g-kr12 { | ||
651 | reg = <2>; | ||
652 | qlm-mode = "0x012,xfi-10g-kr"; | ||
653 | local-mac-address = [00 00 00 00 00 00]; | ||
654 | phy-handle = <&xfi12>; | ||
655 | }; | ||
656 | xfi-10g-kr13 { | ||
657 | reg = <3>; | ||
658 | qlm-mode = "0x013,xfi-10g-kr"; | ||
659 | local-mac-address = [00 00 00 00 00 00]; | ||
660 | phy-handle = <&xfi13>; | ||
661 | }; | ||
662 | xlaui10 { | ||
663 | reg = <0>; | ||
664 | qlm-mode = "0x010,xlaui"; | ||
665 | local-mac-address = [00 00 00 00 00 00]; | ||
666 | phy-handle = <&xlaui10>; | ||
667 | }; | ||
668 | xlaui-40g-kr-10 { | ||
669 | reg = <0>; | ||
670 | qlm-mode = "0x010,xlaui-40g-kr"; | ||
671 | local-mac-address = [00 00 00 00 00 00]; | ||
672 | phy-handle = <&xlaui10>; | ||
673 | }; | ||
674 | xaui10 { | ||
675 | reg = <0>; | ||
676 | qlm-mode = "0x010,xaui"; | ||
677 | local-mac-address = [00 00 00 00 00 00]; | ||
678 | phy-handle = <&xaui10>; | ||
679 | }; | ||
680 | rxaui10 { | ||
681 | reg = <8>; | ||
682 | qlm-mode = "0x010,rxaui"; | ||
683 | local-mac-address = [00 00 00 00 00 00]; | ||
684 | phy-handle = <&rxaui10>; | ||
685 | }; | ||
686 | rxaui11 { | ||
687 | reg = <9>; | ||
688 | qlm-mode = "0x011,rxaui"; | ||
689 | local-mac-address = [00 00 00 00 00 00]; | ||
690 | phy-handle = <&rxaui11>; | ||
691 | }; | ||
692 | qsgmii10 { | ||
693 | reg = <0>; | ||
694 | qlm-mode = "0x010,qsgmii"; | ||
695 | local-mac-address = [00 00 00 00 00 00]; | ||
696 | phy-handle = <&qsgmii10>; | ||
697 | }; | ||
698 | qsgmii11 { | ||
699 | reg = <1>; | ||
700 | qlm-mode = "0x011,qsgmii"; | ||
701 | local-mac-address = [00 00 00 00 00 00]; | ||
702 | phy-handle = <&qsgmii11>; | ||
703 | }; | ||
704 | qsgmii12 { | ||
705 | reg = <2>; | ||
706 | qlm-mode = "0x012,qsgmii"; | ||
707 | local-mac-address = [00 00 00 00 00 00]; | ||
708 | phy-handle = <&qsgmii12>; | ||
709 | }; | ||
710 | qsgmii13 { | ||
711 | reg = <3>; | ||
712 | qlm-mode = "0x013,qsgmii"; | ||
713 | local-mac-address = [00 00 00 00 00 00]; | ||
714 | phy-handle = <&qsgmii13>; | ||
715 | }; | ||
716 | }; | ||
717 | |||
718 | bgx2 { | ||
719 | sgmii20 { | ||
720 | reg = <0>; | ||
721 | qlm-mode = "0x020,sgmii"; | ||
722 | local-mac-address = [00 00 00 00 00 00]; | ||
723 | phy-handle = <&sgmii20>; | ||
724 | }; | ||
725 | sgmii21 { | ||
726 | reg = <1>; | ||
727 | qlm-mode = "0x021,sgmii"; | ||
728 | local-mac-address = [00 00 00 00 00 00]; | ||
729 | phy-handle = <&sgmii21>; | ||
730 | }; | ||
731 | sgmii22 { | ||
732 | reg = <2>; | ||
733 | qlm-mode = "0x022,sgmii"; | ||
734 | local-mac-address = [00 00 00 00 00 00]; | ||
735 | phy-handle = <&sgmii22>; | ||
736 | }; | ||
737 | sgmii23 { | ||
738 | reg = <3>; | ||
739 | qlm-mode = "0x023,sgmii"; | ||
740 | local-mac-address = [00 00 00 00 00 00]; | ||
741 | phy-handle = <&sgmii23>; | ||
742 | }; | ||
743 | xfi20 { | ||
744 | reg = <0>; | ||
745 | qlm-mode = "0x020,xfi"; | ||
746 | local-mac-address = [00 00 00 00 00 00]; | ||
747 | phy-handle = <&xfi20>; | ||
748 | }; | ||
749 | xfi21 { | ||
750 | reg = <1>; | ||
751 | qlm-mode = "0x021,xfi"; | ||
752 | local-mac-address = [00 00 00 00 00 00]; | ||
753 | phy-handle = <&xfi21>; | ||
754 | }; | ||
755 | xfi22 { | ||
756 | reg = <2>; | ||
757 | qlm-mode = "0x022,xfi"; | ||
758 | local-mac-address = [00 00 00 00 00 00]; | ||
759 | phy-handle = <&xfi22>; | ||
760 | }; | ||
761 | xfi23 { | ||
762 | reg = <3>; | ||
763 | qlm-mode = "0x023,xfi"; | ||
764 | local-mac-address = [00 00 00 00 00 00]; | ||
765 | phy-handle = <&xfi23>; | ||
766 | }; | ||
767 | xfi-10g-kr20 { | ||
768 | reg = <0>; | ||
769 | qlm-mode = "0x020,xfi-10g-kr"; | ||
770 | local-mac-address = [00 00 00 00 00 00]; | ||
771 | phy-handle = <&xfi20>; | ||
772 | }; | ||
773 | xfi-10g-kr21 { | ||
774 | reg = <1>; | ||
775 | qlm-mode = "0x021,xfi-10g-kr"; | ||
776 | local-mac-address = [00 00 00 00 00 00]; | ||
777 | phy-handle = <&xfi21>; | ||
778 | }; | ||
779 | xfi-10g-kr22 { | ||
780 | reg = <2>; | ||
781 | qlm-mode = "0x022,xfi-10g-kr"; | ||
782 | local-mac-address = [00 00 00 00 00 00]; | ||
783 | phy-handle = <&xfi22>; | ||
784 | }; | ||
785 | xfi-10g-kr23 { | ||
786 | reg = <3>; | ||
787 | qlm-mode = "0x023,xfi-10g-kr"; | ||
788 | local-mac-address = [00 00 00 00 00 00]; | ||
789 | phy-handle = <&xfi23>; | ||
790 | }; | ||
791 | xlaui20 { | ||
792 | reg = <0>; | ||
793 | qlm-mode = "0x020,xlaui"; | ||
794 | local-mac-address = [00 00 00 00 00 00]; | ||
795 | phy-handle = <&xlaui20>; | ||
796 | }; | ||
797 | xlaui-40g-kr20 { | ||
798 | reg = <0>; | ||
799 | qlm-mode = "0x020,xlaui-40g-kr"; | ||
800 | local-mac-address = [00 00 00 00 00 00]; | ||
801 | phy-handle = <&xlaui20>; | ||
802 | }; | ||
803 | xaui20 { | ||
804 | reg = <0>; | ||
805 | qlm-mode = "0x020,xaui"; | ||
806 | local-mac-address = [00 00 00 00 00 00]; | ||
807 | phy-handle = <&xaui20>; | ||
808 | }; | ||
809 | rxaui20 { | ||
810 | reg = <0>; | ||
811 | qlm-mode = "0x020,rxaui"; | ||
812 | local-mac-address = [00 00 00 00 00 00]; | ||
813 | phy-handle = <&rxaui20>; | ||
814 | }; | ||
815 | rxaui21 { | ||
816 | reg = <1>; | ||
817 | qlm-mode = "0x021,rxaui"; | ||
818 | local-mac-address = [00 00 00 00 00 00]; | ||
819 | phy-handle = <&rxaui21>; | ||
820 | }; | ||
821 | qsgmii20 { | ||
822 | reg = <0>; | ||
823 | qlm-mode = "0x020,qsgmii"; | ||
824 | local-mac-address = [00 00 00 00 00 00]; | ||
825 | phy-handle = <&qsgmii20>; | ||
826 | }; | ||
827 | qsgmii21 { | ||
828 | reg = <1>; | ||
829 | qlm-mode = "0x021,qsgmii"; | ||
830 | local-mac-address = [00 00 00 00 00 00]; | ||
831 | phy-handle = <&qsgmii21>; | ||
832 | }; | ||
833 | qsgmii22 { | ||
834 | reg = <2>; | ||
835 | qlm-mode = "0x022,qsgmii"; | ||
836 | local-mac-address = [00 00 00 00 00 00]; | ||
837 | phy-handle = <&qsgmii22>; | ||
838 | }; | ||
839 | qsgmii23 { | ||
840 | reg = <3>; | ||
841 | qlm-mode = "0x023,qsgmii"; | ||
842 | local-mac-address = [00 00 00 00 00 00]; | ||
843 | phy-handle = <&qsgmii23>; | ||
844 | }; | ||
845 | }; | ||
846 | |||
847 | bgx3 { | ||
848 | sgmii30 { | ||
849 | reg = <0>; | ||
850 | qlm-mode = "0x030,sgmii"; | ||
851 | local-mac-address = [00 00 00 00 00 00]; | ||
852 | phy-handle = <&sgmii30>; | ||
853 | }; | ||
854 | sgmii31 { | ||
855 | reg = <1>; | ||
856 | qlm-mode = "0x031,sgmii"; | ||
857 | local-mac-address = [00 00 00 00 00 00]; | ||
858 | phy-handle = <&sgmii31>; | ||
859 | }; | ||
860 | xfi30 { | ||
861 | reg = <0>; | ||
862 | qlm-mode = "0x030,xfi"; | ||
863 | local-mac-address = [00 00 00 00 00 00]; | ||
864 | phy-handle = <&xfi30>; | ||
865 | }; | ||
866 | xfi31 { | ||
867 | reg = <1>; | ||
868 | qlm-mode = "0x031,xfi"; | ||
869 | local-mac-address = [00 00 00 00 00 00]; | ||
870 | phy-handle = <&xfi31>; | ||
871 | }; | ||
872 | xfi-10g-kr30 { | ||
873 | reg = <0>; | ||
874 | qlm-mode = "0x030,xfi-10g-kr"; | ||
875 | local-mac-address = [00 00 00 00 00 00]; | ||
876 | phy-handle = <&xfi30>; | ||
877 | }; | ||
878 | xfi-10g-kr31 { | ||
879 | reg = <1>; | ||
880 | qlm-mode = "0x031,xfi-10g-kr"; | ||
881 | local-mac-address = [00 00 00 00 00 00]; | ||
882 | phy-handle = <&xfi31>; | ||
883 | }; | ||
884 | xaui30 { | ||
885 | reg = <0>; | ||
886 | qlm-mode = "0x030,xaui"; | ||
887 | local-mac-address = [00 00 00 00 00 00]; | ||
888 | phy-handle = <&xaui30>; | ||
889 | }; | ||
890 | rxaui30 { | ||
891 | reg = <0>; | ||
892 | qlm-mode = "0x030,rxaui"; | ||
893 | local-mac-address = [00 00 00 00 00 00]; | ||
894 | phy-handle = <&rxaui30>; | ||
895 | }; | ||
896 | rxaui31 { | ||
897 | reg = <1>; | ||
898 | qlm-mode = "0x031,rxaui"; | ||
899 | local-mac-address = [00 00 00 00 00 00]; | ||
900 | phy-handle = <&rxaui31>; | ||
901 | }; | ||
902 | qsgmii30 { | ||
903 | reg = <0>; | ||
904 | qlm-mode = "0x030,qsgmii"; | ||
905 | local-mac-address = [00 00 00 00 00 00]; | ||
906 | phy-handle = <&qsgmii30>; | ||
907 | }; | ||
908 | qsgmii31 { | ||
909 | reg = <1>; | ||
910 | qlm-mode = "0x031,qsgmii"; | ||
911 | local-mac-address = [00 00 00 00 00 00]; | ||
912 | phy-handle = <&qsgmii31>; | ||
913 | }; | ||
914 | qsgmii32 { | ||
915 | reg = <2>; | ||
916 | qlm-mode = "0x032,qsgmii"; | ||
917 | local-mac-address = [00 00 00 00 00 00]; | ||
918 | phy-handle = <&qsgmii32>; | ||
919 | }; | ||
920 | qsgmii33 { | ||
921 | reg = <3>; | ||
922 | qlm-mode = "0x033,qsgmii"; | ||
923 | local-mac-address = [00 00 00 00 00 00]; | ||
924 | phy-handle = <&qsgmii33>; | ||
925 | }; | ||
926 | }; | ||
927 | }; | ||
928 | |||
929 | &mmc_1_4 { | ||
930 | mmc-slot@0 { | ||
931 | compatible = "mmc-slot"; | ||
932 | reg = <0>; | ||
933 | vmmc-supply = <&mmc_supply_3v3>; | ||
934 | max-frequency = <26000000>; | ||
935 | mmc-ddr-3_3v; | ||
936 | /* 1.8v is not supported */ | ||
937 | no-1-8-v; | ||
938 | /* Bus width is only 8 bits maximum */ | ||
939 | bus-width = <8>; | ||
940 | /* Write-protect */ | ||
941 | wp-gpios = <&gpio_6_0 22 0>; | ||
942 | /* Card detect */ | ||
943 | cd-gpios = <&gpio_6_0 23 1>; | ||
944 | |||
945 | /* SD UHS SDR25 is supported */ | ||
946 | sd-uhs-sdr25; | ||
947 | /* High-speed mode is supported */ | ||
948 | cap-sd-highspeed; | ||
949 | cap-mmc-highspeed; | ||
950 | }; | ||
951 | mmc-slot@1 { | ||
952 | compatible = "mmc-slot"; | ||
953 | reg = <1>; | ||
954 | vmmc-supply = <&mmc_supply_3v3>; | ||
955 | max-frequency = <26000000>; | ||
956 | mmc-ddr-3_3v; | ||
957 | /* 1.8v is not supported */ | ||
958 | no-1-8-v; | ||
959 | /* Bus width is only 8 bits maximum */ | ||
960 | bus-width = <8>; | ||
961 | /* Write-protect */ | ||
962 | wp-gpios = <&gpio_6_0 24 0>; | ||
963 | /* Card detect */ | ||
964 | cd-gpios = <&gpio_6_0 25 1>; | ||
965 | /* SD UHS SDR25 is supported */ | ||
966 | sd-uhs-sdr25; | ||
967 | /* High-speed mode is supported */ | ||
968 | cap-sd-highspeed; | ||
969 | cap-mmc-highspeed; | ||
970 | }; | ||
971 | }; | ||
972 | |||
973 | &i2c_9_0 { | ||
974 | rtc@68 { | ||
975 | compatible = "dallas,ds1337"; | ||
976 | reg = <0x68>; | ||
977 | rtcmodel = <1>; | ||
978 | }; | ||
979 | }; | ||
980 | |||
981 | &spi_7_0 { | ||
982 | flash@0 { | ||
983 | compatible = "micron,n25q128a13", "jedec,spi-nor", "spi-flash"; | ||
984 | reg = <0x0>; | ||
985 | spi-max-frequency = <16000000>; | ||
986 | #address-cells = <1>; | ||
987 | #size-cells = <1>; | ||
988 | }; | ||
989 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/ebb8604-linux.dts b/recipes-kernel/linux/linux-cavium/dts/ebb8604-linux.dts deleted file mode 100644 index 6a4037d..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/ebb8604-linux.dts +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2014, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * Or, alternatively, | ||
22 | * | ||
23 | * b) Permission is hereby granted, free of charge, to any person | ||
24 | * obtaining a copy of this software and associated documentation | ||
25 | * files (the "Software"), to deal in the Software without | ||
26 | * restriction, including without limitation the rights to use, | ||
27 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
28 | * sell copies of the Software, and to permit persons to whom the | ||
29 | * Software is furnished to do so, subject to the following | ||
30 | * conditions: | ||
31 | * | ||
32 | * The above copyright notice and this permission notice shall be | ||
33 | * included in all copies or substantial portions of the Software. | ||
34 | * | ||
35 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
36 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
37 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
38 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
39 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
40 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
41 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
42 | * OTHER DEALINGS IN THE SOFTWARE. | ||
43 | */ | ||
44 | |||
45 | /dts-v1/; | ||
46 | |||
47 | /include/ "generic-linux.dtsi" | ||
48 | |||
49 | /include/ "ebb8604-phy.dtsi" \ No newline at end of file | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/ebb8604-phy.dtsi b/recipes-kernel/linux/linux-cavium/dts/ebb8604-phy.dtsi deleted file mode 100644 index 7cbc016..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/ebb8604-phy.dtsi +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | |||
2 | |||
3 | / { | ||
4 | soc@0 { | ||
5 | pci@848000000000 { | ||
6 | mrml-bridge@1,0 { | ||
7 | mdio-nexus@1,3 { | ||
8 | mdio@87e005003880 { | ||
9 | sgmii00: sgmii@8 { | ||
10 | qlm-mode = "0x000,sgmii"; | ||
11 | reg = <8> ; | ||
12 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
13 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
14 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
15 | <3 0x11 0 0x00aa>, | ||
16 | <3 0x12 0 0x4105>, | ||
17 | <3 0x13 0 0x8a08>; | ||
18 | |||
19 | }; | ||
20 | sgmii01: sgmii@9 { | ||
21 | qlm-mode = "0x001,sgmii"; | ||
22 | reg = <9> ; | ||
23 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
24 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
25 | <3 0x11 0 0x00aa>, | ||
26 | <3 0x12 0 0x4105>, | ||
27 | <3 0x13 0 0x8a08>; | ||
28 | }; | ||
29 | sgmii02: sgmii@a { | ||
30 | qlm-mode = "0x002,sgmii"; | ||
31 | reg = <0xa> ; | ||
32 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
33 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
34 | <3 0x11 0 0x00aa>, | ||
35 | <3 0x12 0 0x4105>, | ||
36 | <3 0x13 0 0x8a08>; | ||
37 | }; | ||
38 | sgmii03: sgmii@b { | ||
39 | qlm-mode = "0x003,sgmii"; | ||
40 | reg = <0xb> ; | ||
41 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
42 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
43 | <3 0x11 0 0x00aa>, | ||
44 | <3 0x12 0 0x4105>, | ||
45 | <3 0x13 0 0x8a08>; | ||
46 | }; | ||
47 | xaui00: xaui@8 { | ||
48 | qlm-mode = "0x000,xaui"; | ||
49 | reg = <8> ; | ||
50 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
51 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
52 | }; | ||
53 | rxaui00: rxaui@8 { | ||
54 | qlm-mode = "0x000,rxaui"; | ||
55 | reg = <8> ; | ||
56 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
57 | }; | ||
58 | rxaui02: rxaui@9 { | ||
59 | qlm-mode = "0x002,rxaui"; | ||
60 | reg = <9> ; | ||
61 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
62 | }; | ||
63 | |||
64 | |||
65 | sgmii10: sgmii@c { | ||
66 | qlm-mode = "0x010,sgmii"; | ||
67 | reg = <0xc> ; | ||
68 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
69 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
70 | <3 0x11 0 0x00aa>, | ||
71 | <3 0x12 0 0x4105>, | ||
72 | <3 0x13 0 0x8a08>; | ||
73 | }; | ||
74 | sgmii11: sgmii@d { | ||
75 | qlm-mode = "0x011,sgmii"; | ||
76 | reg = <0xd> ; | ||
77 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
78 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
79 | <3 0x11 0 0x00aa>, | ||
80 | <3 0x12 0 0x4105>, | ||
81 | <3 0x13 0 0x8a08>; | ||
82 | }; | ||
83 | sgmii12: sgmii@e { | ||
84 | qlm-mode = "0x012,sgmii"; | ||
85 | reg = <0xe> ; | ||
86 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
87 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
88 | <3 0x11 0 0x00aa>, | ||
89 | <3 0x12 0 0x4105>, | ||
90 | <3 0x13 0 0x8a08>; | ||
91 | }; | ||
92 | sgmii13: sgmii@f { | ||
93 | qlm-mode = "0x013,sgmii"; | ||
94 | reg = <0xf> ; | ||
95 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
96 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
97 | <3 0x11 0 0x00aa>, | ||
98 | <3 0x12 0 0x4105>, | ||
99 | <3 0x13 0 0x8a08>; | ||
100 | }; | ||
101 | xaui10: xaui@c { | ||
102 | qlm-mode = "0x010,xaui"; | ||
103 | reg = <0xc> ; | ||
104 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
105 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
106 | }; | ||
107 | rxaui10: rxaui@c { | ||
108 | qlm-mode = "0x010,rxaui"; | ||
109 | reg = <0xc> ; | ||
110 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
111 | }; | ||
112 | rxaui12: rxaui@d { | ||
113 | qlm-mode = "0x012,rxaui"; | ||
114 | reg = <0xd> ; | ||
115 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
116 | }; | ||
117 | }; | ||
118 | }; | ||
119 | }; | ||
120 | }; | ||
121 | }; | ||
122 | |||
123 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/ebb8800-phy.dtsi b/recipes-kernel/linux/linux-cavium/dts/ebb8800-phy.dtsi deleted file mode 100644 index 410ac4b..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/ebb8800-phy.dtsi +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | |||
2 | |||
3 | / { | ||
4 | soc@0 { | ||
5 | pci@848000000000 { | ||
6 | mrml-bridge@1,0 { | ||
7 | mdio-nexus@1,3 { | ||
8 | mdio@87e005003800 { | ||
9 | sgmii00: sgmii@0 { | ||
10 | qlm-mode = "0x000,sgmii"; | ||
11 | reg = <0> ; | ||
12 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
13 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
14 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
15 | <3 0x11 0 0x00aa>, | ||
16 | <3 0x12 0 0x4105>, | ||
17 | <3 0x13 0 0x8a08>; | ||
18 | |||
19 | }; | ||
20 | sgmii01: sgmii@1 { | ||
21 | qlm-mode = "0x001,sgmii"; | ||
22 | reg = <1> ; | ||
23 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
24 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
25 | <3 0x11 0 0x00aa>, | ||
26 | <3 0x12 0 0x4105>, | ||
27 | <3 0x13 0 0x8a08>; | ||
28 | }; | ||
29 | sgmii02: sgmii@2 { | ||
30 | qlm-mode = "0x002,sgmii"; | ||
31 | reg = <2> ; | ||
32 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
33 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
34 | <3 0x11 0 0x00aa>, | ||
35 | <3 0x12 0 0x4105>, | ||
36 | <3 0x13 0 0x8a08>; | ||
37 | }; | ||
38 | sgmii03: sgmii@3 { | ||
39 | qlm-mode = "0x003,sgmii"; | ||
40 | reg = <3> ; | ||
41 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
42 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
43 | <3 0x11 0 0x00aa>, | ||
44 | <3 0x12 0 0x4105>, | ||
45 | <3 0x13 0 0x8a08>; | ||
46 | }; | ||
47 | xaui00: xaui@0 { | ||
48 | qlm-mode = "0x000,xaui"; | ||
49 | reg = <0> ; | ||
50 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
51 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
52 | }; | ||
53 | rxaui00: rxaui@0 { | ||
54 | qlm-mode = "0x000,rxaui"; | ||
55 | reg = <0> ; | ||
56 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
57 | }; | ||
58 | rxaui02: rxaui@2 { | ||
59 | qlm-mode = "0x002,rxaui"; | ||
60 | reg = <1> ; | ||
61 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
62 | }; | ||
63 | }; | ||
64 | mdio@87e005003880 { | ||
65 | sgmii10: sgmii@4 { | ||
66 | qlm-mode = "0x010,sgmii"; | ||
67 | reg = <4> ; | ||
68 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
69 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
70 | <3 0x11 0 0x00aa>, | ||
71 | <3 0x12 0 0x4105>, | ||
72 | <3 0x13 0 0x8a08>; | ||
73 | }; | ||
74 | sgmii11: sgmii@5 { | ||
75 | qlm-mode = "0x011,sgmii"; | ||
76 | reg = <5> ; | ||
77 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
78 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
79 | <3 0x11 0 0x00aa>, | ||
80 | <3 0x12 0 0x4105>, | ||
81 | <3 0x13 0 0x8a08>; | ||
82 | }; | ||
83 | sgmii12: sgmii@6 { | ||
84 | qlm-mode = "0x012,sgmii"; | ||
85 | reg = <6> ; | ||
86 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
87 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
88 | <3 0x11 0 0x00aa>, | ||
89 | <3 0x12 0 0x4105>, | ||
90 | <3 0x13 0 0x8a08>; | ||
91 | }; | ||
92 | sgmii13: sgmii@7 { | ||
93 | qlm-mode = "0x013,sgmii"; | ||
94 | reg = <7> ; | ||
95 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
96 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
97 | <3 0x11 0 0x00aa>, | ||
98 | <3 0x12 0 0x4105>, | ||
99 | <3 0x13 0 0x8a08>; | ||
100 | }; | ||
101 | xaui10: xaui@4 { | ||
102 | qlm-mode = "0x010,xaui"; | ||
103 | reg = <4> ; | ||
104 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
105 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
106 | }; | ||
107 | rxaui10: rxaui@0 { | ||
108 | qlm-mode = "0x010,rxaui"; | ||
109 | reg = <0> ; | ||
110 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
111 | }; | ||
112 | rxaui12: rxaui@2 { | ||
113 | qlm-mode = "0x012,rxaui"; | ||
114 | reg = <1> ; | ||
115 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
116 | }; | ||
117 | }; | ||
118 | }; | ||
119 | }; | ||
120 | }; | ||
121 | }; | ||
122 | |||
123 | }; \ No newline at end of file | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/generic-linux.dts b/recipes-kernel/linux/linux-cavium/dts/generic-linux.dts deleted file mode 100644 index 53b9813..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/generic-linux.dts +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2014, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "generic-linux.dtsi" | ||
53 | |||
54 | /include/ "ebb8800-phy.dtsi" \ No newline at end of file | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/generic-linux.dtsi b/recipes-kernel/linux/linux-cavium/dts/generic-linux.dtsi deleted file mode 100644 index 68fc692..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/generic-linux.dtsi +++ /dev/null | |||
@@ -1,2721 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder SoC description | ||
3 | * | ||
4 | * Copyright (C) 2014-2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | / { | ||
51 | model = "Cavium ThunderX CN88XX board"; | ||
52 | compatible = "cavium,thunder-88xx"; | ||
53 | interrupt-parent = <&gic0>; | ||
54 | #address-cells = <2>; | ||
55 | #size-cells = <2>; | ||
56 | |||
57 | psci { | ||
58 | compatible = "arm,psci-0.2"; | ||
59 | method = "smc"; | ||
60 | }; | ||
61 | |||
62 | cpus { | ||
63 | #address-cells = <2>; | ||
64 | #size-cells = <0>; | ||
65 | |||
66 | cpu-map { | ||
67 | cluster0 { | ||
68 | core0 { | ||
69 | cpu = <&CPU0>; | ||
70 | }; | ||
71 | core1 { | ||
72 | cpu = <&CPU1>; | ||
73 | }; | ||
74 | core2 { | ||
75 | cpu = <&CPU2>; | ||
76 | }; | ||
77 | core3 { | ||
78 | cpu = <&CPU3>; | ||
79 | }; | ||
80 | core4 { | ||
81 | cpu = <&CPU4>; | ||
82 | }; | ||
83 | core5 { | ||
84 | cpu = <&CPU5>; | ||
85 | }; | ||
86 | core6 { | ||
87 | cpu = <&CPU6>; | ||
88 | }; | ||
89 | core7 { | ||
90 | cpu = <&CPU7>; | ||
91 | }; | ||
92 | core8 { | ||
93 | cpu = <&CPU8>; | ||
94 | }; | ||
95 | core9 { | ||
96 | cpu = <&CPU9>; | ||
97 | }; | ||
98 | core10 { | ||
99 | cpu = <&CPU10>; | ||
100 | }; | ||
101 | core11 { | ||
102 | cpu = <&CPU11>; | ||
103 | }; | ||
104 | core12 { | ||
105 | cpu = <&CPU12>; | ||
106 | }; | ||
107 | core13 { | ||
108 | cpu = <&CPU13>; | ||
109 | }; | ||
110 | core14 { | ||
111 | cpu = <&CPU14>; | ||
112 | }; | ||
113 | core15 { | ||
114 | cpu = <&CPU15>; | ||
115 | }; | ||
116 | core16 { | ||
117 | cpu = <&CPU16>; | ||
118 | }; | ||
119 | core17 { | ||
120 | cpu = <&CPU17>; | ||
121 | }; | ||
122 | core18 { | ||
123 | cpu = <&CPU18>; | ||
124 | }; | ||
125 | core19 { | ||
126 | cpu = <&CPU19>; | ||
127 | }; | ||
128 | core20 { | ||
129 | cpu = <&CPU20>; | ||
130 | }; | ||
131 | core21 { | ||
132 | cpu = <&CPU21>; | ||
133 | }; | ||
134 | core22 { | ||
135 | cpu = <&CPU22>; | ||
136 | }; | ||
137 | core23 { | ||
138 | cpu = <&CPU23>; | ||
139 | }; | ||
140 | core24 { | ||
141 | cpu = <&CPU24>; | ||
142 | }; | ||
143 | core25 { | ||
144 | cpu = <&CPU25>; | ||
145 | }; | ||
146 | core26 { | ||
147 | cpu = <&CPU26>; | ||
148 | }; | ||
149 | core27 { | ||
150 | cpu = <&CPU27>; | ||
151 | }; | ||
152 | core28 { | ||
153 | cpu = <&CPU28>; | ||
154 | }; | ||
155 | core29 { | ||
156 | cpu = <&CPU29>; | ||
157 | }; | ||
158 | core30 { | ||
159 | cpu = <&CPU30>; | ||
160 | }; | ||
161 | core31 { | ||
162 | cpu = <&CPU31>; | ||
163 | }; | ||
164 | core32 { | ||
165 | cpu = <&CPU32>; | ||
166 | }; | ||
167 | core33 { | ||
168 | cpu = <&CPU33>; | ||
169 | }; | ||
170 | core34 { | ||
171 | cpu = <&CPU34>; | ||
172 | }; | ||
173 | core35 { | ||
174 | cpu = <&CPU35>; | ||
175 | }; | ||
176 | core36 { | ||
177 | cpu = <&CPU36>; | ||
178 | }; | ||
179 | core37 { | ||
180 | cpu = <&CPU37>; | ||
181 | }; | ||
182 | core38 { | ||
183 | cpu = <&CPU38>; | ||
184 | }; | ||
185 | core39 { | ||
186 | cpu = <&CPU39>; | ||
187 | }; | ||
188 | core40 { | ||
189 | cpu = <&CPU40>; | ||
190 | }; | ||
191 | core41 { | ||
192 | cpu = <&CPU41>; | ||
193 | }; | ||
194 | core42 { | ||
195 | cpu = <&CPU42>; | ||
196 | }; | ||
197 | core43 { | ||
198 | cpu = <&CPU43>; | ||
199 | }; | ||
200 | core44 { | ||
201 | cpu = <&CPU44>; | ||
202 | }; | ||
203 | core45 { | ||
204 | cpu = <&CPU45>; | ||
205 | }; | ||
206 | core46 { | ||
207 | cpu = <&CPU46>; | ||
208 | }; | ||
209 | core47 { | ||
210 | cpu = <&CPU47>; | ||
211 | }; | ||
212 | }; | ||
213 | |||
214 | cluster1 { | ||
215 | core0 { | ||
216 | cpu = <&CPU48>; | ||
217 | }; | ||
218 | core1 { | ||
219 | cpu = <&CPU49>; | ||
220 | }; | ||
221 | core2 { | ||
222 | cpu = <&CPU50>; | ||
223 | }; | ||
224 | core3 { | ||
225 | cpu = <&CPU51>; | ||
226 | }; | ||
227 | core4 { | ||
228 | cpu = <&CPU52>; | ||
229 | }; | ||
230 | core5 { | ||
231 | cpu = <&CPU53>; | ||
232 | }; | ||
233 | core6 { | ||
234 | cpu = <&CPU54>; | ||
235 | }; | ||
236 | core7 { | ||
237 | cpu = <&CPU55>; | ||
238 | }; | ||
239 | core8 { | ||
240 | cpu = <&CPU56>; | ||
241 | }; | ||
242 | core9 { | ||
243 | cpu = <&CPU57>; | ||
244 | }; | ||
245 | core10 { | ||
246 | cpu = <&CPU58>; | ||
247 | }; | ||
248 | core11 { | ||
249 | cpu = <&CPU59>; | ||
250 | }; | ||
251 | core12 { | ||
252 | cpu = <&CPU60>; | ||
253 | }; | ||
254 | core13 { | ||
255 | cpu = <&CPU61>; | ||
256 | }; | ||
257 | core14 { | ||
258 | cpu = <&CPU62>; | ||
259 | }; | ||
260 | core15 { | ||
261 | cpu = <&CPU63>; | ||
262 | }; | ||
263 | core16 { | ||
264 | cpu = <&CPU64>; | ||
265 | }; | ||
266 | core17 { | ||
267 | cpu = <&CPU65>; | ||
268 | }; | ||
269 | core18 { | ||
270 | cpu = <&CPU66>; | ||
271 | }; | ||
272 | core19 { | ||
273 | cpu = <&CPU67>; | ||
274 | }; | ||
275 | core20 { | ||
276 | cpu = <&CPU68>; | ||
277 | }; | ||
278 | core21 { | ||
279 | cpu = <&CPU69>; | ||
280 | }; | ||
281 | core22 { | ||
282 | cpu = <&CPU70>; | ||
283 | }; | ||
284 | core23 { | ||
285 | cpu = <&CPU71>; | ||
286 | }; | ||
287 | core24 { | ||
288 | cpu = <&CPU72>; | ||
289 | }; | ||
290 | core25 { | ||
291 | cpu = <&CPU73>; | ||
292 | }; | ||
293 | core26 { | ||
294 | cpu = <&CPU74>; | ||
295 | }; | ||
296 | core27 { | ||
297 | cpu = <&CPU75>; | ||
298 | }; | ||
299 | core28 { | ||
300 | cpu = <&CPU76>; | ||
301 | }; | ||
302 | core29 { | ||
303 | cpu = <&CPU77>; | ||
304 | }; | ||
305 | core30 { | ||
306 | cpu = <&CPU78>; | ||
307 | }; | ||
308 | core31 { | ||
309 | cpu = <&CPU79>; | ||
310 | }; | ||
311 | core32 { | ||
312 | cpu = <&CPU80>; | ||
313 | }; | ||
314 | core33 { | ||
315 | cpu = <&CPU81>; | ||
316 | }; | ||
317 | core34 { | ||
318 | cpu = <&CPU82>; | ||
319 | }; | ||
320 | core35 { | ||
321 | cpu = <&CPU83>; | ||
322 | }; | ||
323 | core36 { | ||
324 | cpu = <&CPU84>; | ||
325 | }; | ||
326 | core37 { | ||
327 | cpu = <&CPU85>; | ||
328 | }; | ||
329 | core38 { | ||
330 | cpu = <&CPU86>; | ||
331 | }; | ||
332 | core39 { | ||
333 | cpu = <&CPU87>; | ||
334 | }; | ||
335 | core40 { | ||
336 | cpu = <&CPU88>; | ||
337 | }; | ||
338 | core41 { | ||
339 | cpu = <&CPU89>; | ||
340 | }; | ||
341 | core42 { | ||
342 | cpu = <&CPU90>; | ||
343 | }; | ||
344 | core43 { | ||
345 | cpu = <&CPU91>; | ||
346 | }; | ||
347 | core44 { | ||
348 | cpu = <&CPU92>; | ||
349 | }; | ||
350 | core45 { | ||
351 | cpu = <&CPU93>; | ||
352 | }; | ||
353 | core46 { | ||
354 | cpu = <&CPU94>; | ||
355 | }; | ||
356 | core47 { | ||
357 | cpu = <&CPU95>; | ||
358 | }; | ||
359 | }; | ||
360 | }; | ||
361 | |||
362 | CPU0: cpu@0 { | ||
363 | device_type = "cpu"; | ||
364 | compatible = "cavium,thunder", "arm,armv8"; | ||
365 | reg = <0x0 0x000>; | ||
366 | enable-method = "psci"; | ||
367 | /* socket 0 */ | ||
368 | numa-node-id = <0>; | ||
369 | next-level-cache = <&thunderx_L2_0>; | ||
370 | }; | ||
371 | CPU1: cpu@1 { | ||
372 | device_type = "cpu"; | ||
373 | compatible = "cavium,thunder", "arm,armv8"; | ||
374 | reg = <0x0 0x001>; | ||
375 | enable-method = "psci"; | ||
376 | numa-node-id = <0>; | ||
377 | next-level-cache = <&thunderx_L2_0>; | ||
378 | }; | ||
379 | CPU2: cpu@2 { | ||
380 | device_type = "cpu"; | ||
381 | compatible = "cavium,thunder", "arm,armv8"; | ||
382 | reg = <0x0 0x002>; | ||
383 | enable-method = "psci"; | ||
384 | numa-node-id = <0>; | ||
385 | next-level-cache = <&thunderx_L2_0>; | ||
386 | }; | ||
387 | CPU3: cpu@3 { | ||
388 | device_type = "cpu"; | ||
389 | compatible = "cavium,thunder", "arm,armv8"; | ||
390 | reg = <0x0 0x003>; | ||
391 | enable-method = "psci"; | ||
392 | numa-node-id = <0>; | ||
393 | next-level-cache = <&thunderx_L2_0>; | ||
394 | }; | ||
395 | CPU4: cpu@4 { | ||
396 | device_type = "cpu"; | ||
397 | compatible = "cavium,thunder", "arm,armv8"; | ||
398 | reg = <0x0 0x004>; | ||
399 | enable-method = "psci"; | ||
400 | numa-node-id = <0>; | ||
401 | next-level-cache = <&thunderx_L2_0>; | ||
402 | }; | ||
403 | CPU5: cpu@5 { | ||
404 | device_type = "cpu"; | ||
405 | compatible = "cavium,thunder", "arm,armv8"; | ||
406 | reg = <0x0 0x005>; | ||
407 | enable-method = "psci"; | ||
408 | numa-node-id = <0>; | ||
409 | next-level-cache = <&thunderx_L2_0>; | ||
410 | }; | ||
411 | CPU6: cpu@6 { | ||
412 | device_type = "cpu"; | ||
413 | compatible = "cavium,thunder", "arm,armv8"; | ||
414 | reg = <0x0 0x006>; | ||
415 | enable-method = "psci"; | ||
416 | numa-node-id = <0>; | ||
417 | next-level-cache = <&thunderx_L2_0>; | ||
418 | }; | ||
419 | CPU7: cpu@7 { | ||
420 | device_type = "cpu"; | ||
421 | compatible = "cavium,thunder", "arm,armv8"; | ||
422 | reg = <0x0 0x007>; | ||
423 | enable-method = "psci"; | ||
424 | numa-node-id = <0>; | ||
425 | next-level-cache = <&thunderx_L2_0>; | ||
426 | }; | ||
427 | CPU8: cpu@8 { | ||
428 | device_type = "cpu"; | ||
429 | compatible = "cavium,thunder", "arm,armv8"; | ||
430 | reg = <0x0 0x008>; | ||
431 | enable-method = "psci"; | ||
432 | numa-node-id = <0>; | ||
433 | next-level-cache = <&thunderx_L2_0>; | ||
434 | }; | ||
435 | CPU9: cpu@9 { | ||
436 | device_type = "cpu"; | ||
437 | compatible = "cavium,thunder", "arm,armv8"; | ||
438 | reg = <0x0 0x009>; | ||
439 | enable-method = "psci"; | ||
440 | numa-node-id = <0>; | ||
441 | next-level-cache = <&thunderx_L2_0>; | ||
442 | }; | ||
443 | CPU10: cpu@a { | ||
444 | device_type = "cpu"; | ||
445 | compatible = "cavium,thunder", "arm,armv8"; | ||
446 | reg = <0x0 0x00a>; | ||
447 | enable-method = "psci"; | ||
448 | numa-node-id = <0>; | ||
449 | next-level-cache = <&thunderx_L2_0>; | ||
450 | }; | ||
451 | CPU11: cpu@b { | ||
452 | device_type = "cpu"; | ||
453 | compatible = "cavium,thunder", "arm,armv8"; | ||
454 | reg = <0x0 0x00b>; | ||
455 | enable-method = "psci"; | ||
456 | numa-node-id = <0>; | ||
457 | next-level-cache = <&thunderx_L2_0>; | ||
458 | }; | ||
459 | CPU12: cpu@c { | ||
460 | device_type = "cpu"; | ||
461 | compatible = "cavium,thunder", "arm,armv8"; | ||
462 | reg = <0x0 0x00c>; | ||
463 | enable-method = "psci"; | ||
464 | numa-node-id = <0>; | ||
465 | next-level-cache = <&thunderx_L2_0>; | ||
466 | }; | ||
467 | CPU13: cpu@d { | ||
468 | device_type = "cpu"; | ||
469 | compatible = "cavium,thunder", "arm,armv8"; | ||
470 | reg = <0x0 0x00d>; | ||
471 | enable-method = "psci"; | ||
472 | numa-node-id = <0>; | ||
473 | next-level-cache = <&thunderx_L2_0>; | ||
474 | }; | ||
475 | CPU14: cpu@e { | ||
476 | device_type = "cpu"; | ||
477 | compatible = "cavium,thunder", "arm,armv8"; | ||
478 | reg = <0x0 0x00e>; | ||
479 | enable-method = "psci"; | ||
480 | numa-node-id = <0>; | ||
481 | next-level-cache = <&thunderx_L2_0>; | ||
482 | }; | ||
483 | CPU15: cpu@f { | ||
484 | device_type = "cpu"; | ||
485 | compatible = "cavium,thunder", "arm,armv8"; | ||
486 | reg = <0x0 0x00f>; | ||
487 | enable-method = "psci"; | ||
488 | numa-node-id = <0>; | ||
489 | next-level-cache = <&thunderx_L2_0>; | ||
490 | }; | ||
491 | CPU16: cpu@100 { | ||
492 | device_type = "cpu"; | ||
493 | compatible = "cavium,thunder", "arm,armv8"; | ||
494 | reg = <0x0 0x100>; | ||
495 | enable-method = "psci"; | ||
496 | numa-node-id = <0>; | ||
497 | next-level-cache = <&thunderx_L2_0>; | ||
498 | }; | ||
499 | CPU17: cpu@101 { | ||
500 | device_type = "cpu"; | ||
501 | compatible = "cavium,thunder", "arm,armv8"; | ||
502 | reg = <0x0 0x101>; | ||
503 | enable-method = "psci"; | ||
504 | numa-node-id = <0>; | ||
505 | next-level-cache = <&thunderx_L2_0>; | ||
506 | }; | ||
507 | CPU18: cpu@102 { | ||
508 | device_type = "cpu"; | ||
509 | compatible = "cavium,thunder", "arm,armv8"; | ||
510 | reg = <0x0 0x102>; | ||
511 | enable-method = "psci"; | ||
512 | numa-node-id = <0>; | ||
513 | next-level-cache = <&thunderx_L2_0>; | ||
514 | }; | ||
515 | CPU19: cpu@103 { | ||
516 | device_type = "cpu"; | ||
517 | compatible = "cavium,thunder", "arm,armv8"; | ||
518 | reg = <0x0 0x103>; | ||
519 | enable-method = "psci"; | ||
520 | numa-node-id = <0>; | ||
521 | next-level-cache = <&thunderx_L2_0>; | ||
522 | }; | ||
523 | CPU20: cpu@104 { | ||
524 | device_type = "cpu"; | ||
525 | compatible = "cavium,thunder", "arm,armv8"; | ||
526 | reg = <0x0 0x104>; | ||
527 | enable-method = "psci"; | ||
528 | numa-node-id = <0>; | ||
529 | next-level-cache = <&thunderx_L2_0>; | ||
530 | }; | ||
531 | CPU21: cpu@105 { | ||
532 | device_type = "cpu"; | ||
533 | compatible = "cavium,thunder", "arm,armv8"; | ||
534 | reg = <0x0 0x105>; | ||
535 | enable-method = "psci"; | ||
536 | numa-node-id = <0>; | ||
537 | next-level-cache = <&thunderx_L2_0>; | ||
538 | }; | ||
539 | CPU22: cpu@106 { | ||
540 | device_type = "cpu"; | ||
541 | compatible = "cavium,thunder", "arm,armv8"; | ||
542 | reg = <0x0 0x106>; | ||
543 | enable-method = "psci"; | ||
544 | numa-node-id = <0>; | ||
545 | next-level-cache = <&thunderx_L2_0>; | ||
546 | }; | ||
547 | CPU23: cpu@107 { | ||
548 | device_type = "cpu"; | ||
549 | compatible = "cavium,thunder", "arm,armv8"; | ||
550 | reg = <0x0 0x107>; | ||
551 | enable-method = "psci"; | ||
552 | numa-node-id = <0>; | ||
553 | next-level-cache = <&thunderx_L2_0>; | ||
554 | }; | ||
555 | CPU24: cpu@108 { | ||
556 | device_type = "cpu"; | ||
557 | compatible = "cavium,thunder", "arm,armv8"; | ||
558 | reg = <0x0 0x108>; | ||
559 | enable-method = "psci"; | ||
560 | numa-node-id = <0>; | ||
561 | next-level-cache = <&thunderx_L2_0>; | ||
562 | }; | ||
563 | CPU25: cpu@109 { | ||
564 | device_type = "cpu"; | ||
565 | compatible = "cavium,thunder", "arm,armv8"; | ||
566 | reg = <0x0 0x109>; | ||
567 | enable-method = "psci"; | ||
568 | numa-node-id = <0>; | ||
569 | next-level-cache = <&thunderx_L2_0>; | ||
570 | }; | ||
571 | CPU26: cpu@10a { | ||
572 | device_type = "cpu"; | ||
573 | compatible = "cavium,thunder", "arm,armv8"; | ||
574 | reg = <0x0 0x10a>; | ||
575 | enable-method = "psci"; | ||
576 | numa-node-id = <0>; | ||
577 | next-level-cache = <&thunderx_L2_0>; | ||
578 | }; | ||
579 | CPU27: cpu@10b { | ||
580 | device_type = "cpu"; | ||
581 | compatible = "cavium,thunder", "arm,armv8"; | ||
582 | reg = <0x0 0x10b>; | ||
583 | enable-method = "psci"; | ||
584 | numa-node-id = <0>; | ||
585 | next-level-cache = <&thunderx_L2_0>; | ||
586 | }; | ||
587 | CPU28: cpu@10c { | ||
588 | device_type = "cpu"; | ||
589 | compatible = "cavium,thunder", "arm,armv8"; | ||
590 | reg = <0x0 0x10c>; | ||
591 | enable-method = "psci"; | ||
592 | numa-node-id = <0>; | ||
593 | next-level-cache = <&thunderx_L2_0>; | ||
594 | }; | ||
595 | CPU29: cpu@10d { | ||
596 | device_type = "cpu"; | ||
597 | compatible = "cavium,thunder", "arm,armv8"; | ||
598 | reg = <0x0 0x10d>; | ||
599 | enable-method = "psci"; | ||
600 | numa-node-id = <0>; | ||
601 | next-level-cache = <&thunderx_L2_0>; | ||
602 | }; | ||
603 | CPU30: cpu@10e { | ||
604 | device_type = "cpu"; | ||
605 | compatible = "cavium,thunder", "arm,armv8"; | ||
606 | reg = <0x0 0x10e>; | ||
607 | enable-method = "psci"; | ||
608 | numa-node-id = <0>; | ||
609 | next-level-cache = <&thunderx_L2_0>; | ||
610 | }; | ||
611 | CPU31: cpu@10f { | ||
612 | device_type = "cpu"; | ||
613 | compatible = "cavium,thunder", "arm,armv8"; | ||
614 | reg = <0x0 0x10f>; | ||
615 | enable-method = "psci"; | ||
616 | numa-node-id = <0>; | ||
617 | next-level-cache = <&thunderx_L2_0>; | ||
618 | }; | ||
619 | CPU32: cpu@200 { | ||
620 | device_type = "cpu"; | ||
621 | compatible = "cavium,thunder", "arm,armv8"; | ||
622 | reg = <0x0 0x200>; | ||
623 | enable-method = "psci"; | ||
624 | numa-node-id = <0>; | ||
625 | next-level-cache = <&thunderx_L2_0>; | ||
626 | }; | ||
627 | CPU33: cpu@201 { | ||
628 | device_type = "cpu"; | ||
629 | compatible = "cavium,thunder", "arm,armv8"; | ||
630 | reg = <0x0 0x201>; | ||
631 | enable-method = "psci"; | ||
632 | numa-node-id = <0>; | ||
633 | next-level-cache = <&thunderx_L2_0>; | ||
634 | }; | ||
635 | CPU34: cpu@202 { | ||
636 | device_type = "cpu"; | ||
637 | compatible = "cavium,thunder", "arm,armv8"; | ||
638 | reg = <0x0 0x202>; | ||
639 | enable-method = "psci"; | ||
640 | numa-node-id = <0>; | ||
641 | next-level-cache = <&thunderx_L2_0>; | ||
642 | }; | ||
643 | CPU35: cpu@203 { | ||
644 | device_type = "cpu"; | ||
645 | compatible = "cavium,thunder", "arm,armv8"; | ||
646 | reg = <0x0 0x203>; | ||
647 | enable-method = "psci"; | ||
648 | numa-node-id = <0>; | ||
649 | next-level-cache = <&thunderx_L2_0>; | ||
650 | }; | ||
651 | CPU36: cpu@204 { | ||
652 | device_type = "cpu"; | ||
653 | compatible = "cavium,thunder", "arm,armv8"; | ||
654 | reg = <0x0 0x204>; | ||
655 | enable-method = "psci"; | ||
656 | numa-node-id = <0>; | ||
657 | next-level-cache = <&thunderx_L2_0>; | ||
658 | }; | ||
659 | CPU37: cpu@205 { | ||
660 | device_type = "cpu"; | ||
661 | compatible = "cavium,thunder", "arm,armv8"; | ||
662 | reg = <0x0 0x205>; | ||
663 | enable-method = "psci"; | ||
664 | numa-node-id = <0>; | ||
665 | next-level-cache = <&thunderx_L2_0>; | ||
666 | }; | ||
667 | CPU38: cpu@206 { | ||
668 | device_type = "cpu"; | ||
669 | compatible = "cavium,thunder", "arm,armv8"; | ||
670 | reg = <0x0 0x206>; | ||
671 | enable-method = "psci"; | ||
672 | numa-node-id = <0>; | ||
673 | next-level-cache = <&thunderx_L2_0>; | ||
674 | }; | ||
675 | CPU39: cpu@207 { | ||
676 | device_type = "cpu"; | ||
677 | compatible = "cavium,thunder", "arm,armv8"; | ||
678 | reg = <0x0 0x207>; | ||
679 | enable-method = "psci"; | ||
680 | numa-node-id = <0>; | ||
681 | next-level-cache = <&thunderx_L2_0>; | ||
682 | }; | ||
683 | CPU40: cpu@208 { | ||
684 | device_type = "cpu"; | ||
685 | compatible = "cavium,thunder", "arm,armv8"; | ||
686 | reg = <0x0 0x208>; | ||
687 | enable-method = "psci"; | ||
688 | numa-node-id = <0>; | ||
689 | next-level-cache = <&thunderx_L2_0>; | ||
690 | }; | ||
691 | CPU41: cpu@209 { | ||
692 | device_type = "cpu"; | ||
693 | compatible = "cavium,thunder", "arm,armv8"; | ||
694 | reg = <0x0 0x209>; | ||
695 | enable-method = "psci"; | ||
696 | numa-node-id = <0>; | ||
697 | next-level-cache = <&thunderx_L2_0>; | ||
698 | }; | ||
699 | CPU42: cpu@20a { | ||
700 | device_type = "cpu"; | ||
701 | compatible = "cavium,thunder", "arm,armv8"; | ||
702 | reg = <0x0 0x20a>; | ||
703 | enable-method = "psci"; | ||
704 | numa-node-id = <0>; | ||
705 | next-level-cache = <&thunderx_L2_0>; | ||
706 | }; | ||
707 | CPU43: cpu@20b { | ||
708 | device_type = "cpu"; | ||
709 | compatible = "cavium,thunder", "arm,armv8"; | ||
710 | reg = <0x0 0x20b>; | ||
711 | enable-method = "psci"; | ||
712 | numa-node-id = <0>; | ||
713 | next-level-cache = <&thunderx_L2_0>; | ||
714 | }; | ||
715 | CPU44: cpu@20c { | ||
716 | device_type = "cpu"; | ||
717 | compatible = "cavium,thunder", "arm,armv8"; | ||
718 | reg = <0x0 0x20c>; | ||
719 | enable-method = "psci"; | ||
720 | numa-node-id = <0>; | ||
721 | next-level-cache = <&thunderx_L2_0>; | ||
722 | }; | ||
723 | CPU45: cpu@20d { | ||
724 | device_type = "cpu"; | ||
725 | compatible = "cavium,thunder", "arm,armv8"; | ||
726 | reg = <0x0 0x20d>; | ||
727 | enable-method = "psci"; | ||
728 | numa-node-id = <0>; | ||
729 | next-level-cache = <&thunderx_L2_0>; | ||
730 | }; | ||
731 | CPU46: cpu@20e { | ||
732 | device_type = "cpu"; | ||
733 | compatible = "cavium,thunder", "arm,armv8"; | ||
734 | reg = <0x0 0x20e>; | ||
735 | enable-method = "psci"; | ||
736 | numa-node-id = <0>; | ||
737 | next-level-cache = <&thunderx_L2_0>; | ||
738 | }; | ||
739 | CPU47: cpu@20f { | ||
740 | device_type = "cpu"; | ||
741 | compatible = "cavium,thunder", "arm,armv8"; | ||
742 | reg = <0x0 0x20f>; | ||
743 | enable-method = "psci"; | ||
744 | numa-node-id = <0>; | ||
745 | next-level-cache = <&thunderx_L2_0>; | ||
746 | }; | ||
747 | CPU48: cpu@10000 { | ||
748 | device_type = "cpu"; | ||
749 | compatible = "cavium,thunder", "arm,armv8"; | ||
750 | reg = <0x0 0x10000>; | ||
751 | enable-method = "psci"; | ||
752 | /* socket 1 */ | ||
753 | numa-node-id = <1>; | ||
754 | next-level-cache = <&thunderx_L2_1>; | ||
755 | }; | ||
756 | CPU49: cpu@10001 { | ||
757 | device_type = "cpu"; | ||
758 | compatible = "cavium,thunder", "arm,armv8"; | ||
759 | reg = <0x0 0x10001>; | ||
760 | enable-method = "psci"; | ||
761 | numa-node-id = <1>; | ||
762 | next-level-cache = <&thunderx_L2_1>; | ||
763 | }; | ||
764 | CPU50: cpu@10002 { | ||
765 | device_type = "cpu"; | ||
766 | compatible = "cavium,thunder", "arm,armv8"; | ||
767 | reg = <0x0 0x10002>; | ||
768 | enable-method = "psci"; | ||
769 | numa-node-id = <1>; | ||
770 | next-level-cache = <&thunderx_L2_1>; | ||
771 | }; | ||
772 | CPU51: cpu@10003 { | ||
773 | device_type = "cpu"; | ||
774 | compatible = "cavium,thunder", "arm,armv8"; | ||
775 | reg = <0x0 0x10003>; | ||
776 | enable-method = "psci"; | ||
777 | numa-node-id = <1>; | ||
778 | next-level-cache = <&thunderx_L2_1>; | ||
779 | }; | ||
780 | CPU52: cpu@10004 { | ||
781 | device_type = "cpu"; | ||
782 | compatible = "cavium,thunder", "arm,armv8"; | ||
783 | reg = <0x0 0x10004>; | ||
784 | enable-method = "psci"; | ||
785 | numa-node-id = <1>; | ||
786 | next-level-cache = <&thunderx_L2_1>; | ||
787 | }; | ||
788 | CPU53: cpu@10005 { | ||
789 | device_type = "cpu"; | ||
790 | compatible = "cavium,thunder", "arm,armv8"; | ||
791 | reg = <0x0 0x10005>; | ||
792 | enable-method = "psci"; | ||
793 | numa-node-id = <1>; | ||
794 | next-level-cache = <&thunderx_L2_1>; | ||
795 | }; | ||
796 | CPU54: cpu@10006 { | ||
797 | device_type = "cpu"; | ||
798 | compatible = "cavium,thunder", "arm,armv8"; | ||
799 | reg = <0x0 0x10006>; | ||
800 | enable-method = "psci"; | ||
801 | numa-node-id = <1>; | ||
802 | next-level-cache = <&thunderx_L2_1>; | ||
803 | }; | ||
804 | CPU55: cpu@10007 { | ||
805 | device_type = "cpu"; | ||
806 | compatible = "cavium,thunder", "arm,armv8"; | ||
807 | reg = <0x0 0x10007>; | ||
808 | enable-method = "psci"; | ||
809 | numa-node-id = <1>; | ||
810 | next-level-cache = <&thunderx_L2_1>; | ||
811 | }; | ||
812 | CPU56: cpu@10008 { | ||
813 | device_type = "cpu"; | ||
814 | compatible = "cavium,thunder", "arm,armv8"; | ||
815 | reg = <0x0 0x10008>; | ||
816 | enable-method = "psci"; | ||
817 | numa-node-id = <1>; | ||
818 | next-level-cache = <&thunderx_L2_1>; | ||
819 | }; | ||
820 | CPU57: cpu@10009 { | ||
821 | device_type = "cpu"; | ||
822 | compatible = "cavium,thunder", "arm,armv8"; | ||
823 | reg = <0x0 0x10009>; | ||
824 | enable-method = "psci"; | ||
825 | numa-node-id = <1>; | ||
826 | next-level-cache = <&thunderx_L2_1>; | ||
827 | }; | ||
828 | CPU58: cpu@1000a { | ||
829 | device_type = "cpu"; | ||
830 | compatible = "cavium,thunder", "arm,armv8"; | ||
831 | reg = <0x0 0x1000a>; | ||
832 | enable-method = "psci"; | ||
833 | numa-node-id = <1>; | ||
834 | next-level-cache = <&thunderx_L2_1>; | ||
835 | }; | ||
836 | CPU59: cpu@1000b { | ||
837 | device_type = "cpu"; | ||
838 | compatible = "cavium,thunder", "arm,armv8"; | ||
839 | reg = <0x0 0x1000b>; | ||
840 | enable-method = "psci"; | ||
841 | numa-node-id = <1>; | ||
842 | next-level-cache = <&thunderx_L2_1>; | ||
843 | }; | ||
844 | CPU60: cpu@1000c { | ||
845 | device_type = "cpu"; | ||
846 | compatible = "cavium,thunder", "arm,armv8"; | ||
847 | reg = <0x0 0x1000c>; | ||
848 | enable-method = "psci"; | ||
849 | numa-node-id = <1>; | ||
850 | next-level-cache = <&thunderx_L2_1>; | ||
851 | }; | ||
852 | CPU61: cpu@1000d { | ||
853 | device_type = "cpu"; | ||
854 | compatible = "cavium,thunder", "arm,armv8"; | ||
855 | reg = <0x0 0x1000d>; | ||
856 | enable-method = "psci"; | ||
857 | numa-node-id = <1>; | ||
858 | next-level-cache = <&thunderx_L2_1>; | ||
859 | }; | ||
860 | CPU62: cpu@1000e { | ||
861 | device_type = "cpu"; | ||
862 | compatible = "cavium,thunder", "arm,armv8"; | ||
863 | reg = <0x0 0x1000e>; | ||
864 | enable-method = "psci"; | ||
865 | numa-node-id = <1>; | ||
866 | next-level-cache = <&thunderx_L2_1>; | ||
867 | }; | ||
868 | CPU63: cpu@1000f { | ||
869 | device_type = "cpu"; | ||
870 | compatible = "cavium,thunder", "arm,armv8"; | ||
871 | reg = <0x0 0x1000f>; | ||
872 | enable-method = "psci"; | ||
873 | numa-node-id = <1>; | ||
874 | next-level-cache = <&thunderx_L2_1>; | ||
875 | }; | ||
876 | CPU64: cpu@10100 { | ||
877 | device_type = "cpu"; | ||
878 | compatible = "cavium,thunder", "arm,armv8"; | ||
879 | reg = <0x0 0x10100>; | ||
880 | enable-method = "psci"; | ||
881 | numa-node-id = <1>; | ||
882 | next-level-cache = <&thunderx_L2_1>; | ||
883 | }; | ||
884 | CPU65: cpu@10101 { | ||
885 | device_type = "cpu"; | ||
886 | compatible = "cavium,thunder", "arm,armv8"; | ||
887 | reg = <0x0 0x10101>; | ||
888 | enable-method = "psci"; | ||
889 | numa-node-id = <1>; | ||
890 | next-level-cache = <&thunderx_L2_1>; | ||
891 | }; | ||
892 | CPU66: cpu@10102 { | ||
893 | device_type = "cpu"; | ||
894 | compatible = "cavium,thunder", "arm,armv8"; | ||
895 | reg = <0x0 0x10102>; | ||
896 | enable-method = "psci"; | ||
897 | numa-node-id = <1>; | ||
898 | next-level-cache = <&thunderx_L2_1>; | ||
899 | }; | ||
900 | CPU67: cpu@10103 { | ||
901 | device_type = "cpu"; | ||
902 | compatible = "cavium,thunder", "arm,armv8"; | ||
903 | reg = <0x0 0x10103>; | ||
904 | enable-method = "psci"; | ||
905 | numa-node-id = <1>; | ||
906 | next-level-cache = <&thunderx_L2_1>; | ||
907 | }; | ||
908 | CPU68: cpu@10104 { | ||
909 | device_type = "cpu"; | ||
910 | compatible = "cavium,thunder", "arm,armv8"; | ||
911 | reg = <0x0 0x10104>; | ||
912 | enable-method = "psci"; | ||
913 | numa-node-id = <1>; | ||
914 | next-level-cache = <&thunderx_L2_1>; | ||
915 | }; | ||
916 | CPU69: cpu@10105 { | ||
917 | device_type = "cpu"; | ||
918 | compatible = "cavium,thunder", "arm,armv8"; | ||
919 | reg = <0x0 0x10105>; | ||
920 | enable-method = "psci"; | ||
921 | numa-node-id = <1>; | ||
922 | next-level-cache = <&thunderx_L2_1>; | ||
923 | }; | ||
924 | CPU70: cpu@10106 { | ||
925 | device_type = "cpu"; | ||
926 | compatible = "cavium,thunder", "arm,armv8"; | ||
927 | reg = <0x0 0x10106>; | ||
928 | enable-method = "psci"; | ||
929 | numa-node-id = <1>; | ||
930 | next-level-cache = <&thunderx_L2_1>; | ||
931 | }; | ||
932 | CPU71: cpu@10107 { | ||
933 | device_type = "cpu"; | ||
934 | compatible = "cavium,thunder", "arm,armv8"; | ||
935 | reg = <0x0 0x10107>; | ||
936 | enable-method = "psci"; | ||
937 | numa-node-id = <1>; | ||
938 | next-level-cache = <&thunderx_L2_1>; | ||
939 | }; | ||
940 | CPU72: cpu@10108 { | ||
941 | device_type = "cpu"; | ||
942 | compatible = "cavium,thunder", "arm,armv8"; | ||
943 | reg = <0x0 0x10108>; | ||
944 | enable-method = "psci"; | ||
945 | numa-node-id = <1>; | ||
946 | next-level-cache = <&thunderx_L2_1>; | ||
947 | }; | ||
948 | CPU73: cpu@10109 { | ||
949 | device_type = "cpu"; | ||
950 | compatible = "cavium,thunder", "arm,armv8"; | ||
951 | reg = <0x0 0x10109>; | ||
952 | enable-method = "psci"; | ||
953 | numa-node-id = <1>; | ||
954 | next-level-cache = <&thunderx_L2_1>; | ||
955 | }; | ||
956 | CPU74: cpu@1010a { | ||
957 | device_type = "cpu"; | ||
958 | compatible = "cavium,thunder", "arm,armv8"; | ||
959 | reg = <0x0 0x1010a>; | ||
960 | enable-method = "psci"; | ||
961 | numa-node-id = <1>; | ||
962 | next-level-cache = <&thunderx_L2_1>; | ||
963 | }; | ||
964 | CPU75: cpu@1010b { | ||
965 | device_type = "cpu"; | ||
966 | compatible = "cavium,thunder", "arm,armv8"; | ||
967 | reg = <0x0 0x1010b>; | ||
968 | enable-method = "psci"; | ||
969 | numa-node-id = <1>; | ||
970 | next-level-cache = <&thunderx_L2_1>; | ||
971 | }; | ||
972 | CPU76: cpu@1010c { | ||
973 | device_type = "cpu"; | ||
974 | compatible = "cavium,thunder", "arm,armv8"; | ||
975 | reg = <0x0 0x1010c>; | ||
976 | enable-method = "psci"; | ||
977 | numa-node-id = <1>; | ||
978 | next-level-cache = <&thunderx_L2_1>; | ||
979 | }; | ||
980 | CPU77: cpu@1010d { | ||
981 | device_type = "cpu"; | ||
982 | compatible = "cavium,thunder", "arm,armv8"; | ||
983 | reg = <0x0 0x1010d>; | ||
984 | enable-method = "psci"; | ||
985 | numa-node-id = <1>; | ||
986 | next-level-cache = <&thunderx_L2_1>; | ||
987 | }; | ||
988 | CPU78: cpu@1010e { | ||
989 | device_type = "cpu"; | ||
990 | compatible = "cavium,thunder", "arm,armv8"; | ||
991 | reg = <0x0 0x1010e>; | ||
992 | enable-method = "psci"; | ||
993 | numa-node-id = <1>; | ||
994 | next-level-cache = <&thunderx_L2_1>; | ||
995 | }; | ||
996 | CPU79: cpu@1010f { | ||
997 | device_type = "cpu"; | ||
998 | compatible = "cavium,thunder", "arm,armv8"; | ||
999 | reg = <0x0 0x1010f>; | ||
1000 | enable-method = "psci"; | ||
1001 | numa-node-id = <1>; | ||
1002 | next-level-cache = <&thunderx_L2_1>; | ||
1003 | }; | ||
1004 | CPU80: cpu@10200 { | ||
1005 | device_type = "cpu"; | ||
1006 | compatible = "cavium,thunder", "arm,armv8"; | ||
1007 | reg = <0x0 0x10200>; | ||
1008 | enable-method = "psci"; | ||
1009 | numa-node-id = <1>; | ||
1010 | next-level-cache = <&thunderx_L2_1>; | ||
1011 | }; | ||
1012 | CPU81: cpu@10201 { | ||
1013 | device_type = "cpu"; | ||
1014 | compatible = "cavium,thunder", "arm,armv8"; | ||
1015 | reg = <0x0 0x10201>; | ||
1016 | enable-method = "psci"; | ||
1017 | numa-node-id = <1>; | ||
1018 | next-level-cache = <&thunderx_L2_1>; | ||
1019 | }; | ||
1020 | CPU82: cpu@10202 { | ||
1021 | device_type = "cpu"; | ||
1022 | compatible = "cavium,thunder", "arm,armv8"; | ||
1023 | reg = <0x0 0x10202>; | ||
1024 | enable-method = "psci"; | ||
1025 | numa-node-id = <1>; | ||
1026 | next-level-cache = <&thunderx_L2_1>; | ||
1027 | }; | ||
1028 | CPU83: cpu@10203 { | ||
1029 | device_type = "cpu"; | ||
1030 | compatible = "cavium,thunder", "arm,armv8"; | ||
1031 | reg = <0x0 0x10203>; | ||
1032 | enable-method = "psci"; | ||
1033 | numa-node-id = <1>; | ||
1034 | next-level-cache = <&thunderx_L2_1>; | ||
1035 | }; | ||
1036 | CPU84: cpu@10204 { | ||
1037 | device_type = "cpu"; | ||
1038 | compatible = "cavium,thunder", "arm,armv8"; | ||
1039 | reg = <0x0 0x10204>; | ||
1040 | enable-method = "psci"; | ||
1041 | numa-node-id = <1>; | ||
1042 | next-level-cache = <&thunderx_L2_1>; | ||
1043 | }; | ||
1044 | CPU85: cpu@10205 { | ||
1045 | device_type = "cpu"; | ||
1046 | compatible = "cavium,thunder", "arm,armv8"; | ||
1047 | reg = <0x0 0x10205>; | ||
1048 | enable-method = "psci"; | ||
1049 | numa-node-id = <1>; | ||
1050 | next-level-cache = <&thunderx_L2_1>; | ||
1051 | }; | ||
1052 | CPU86: cpu@10206 { | ||
1053 | device_type = "cpu"; | ||
1054 | compatible = "cavium,thunder", "arm,armv8"; | ||
1055 | reg = <0x0 0x10206>; | ||
1056 | enable-method = "psci"; | ||
1057 | numa-node-id = <1>; | ||
1058 | next-level-cache = <&thunderx_L2_1>; | ||
1059 | }; | ||
1060 | CPU87: cpu@10207 { | ||
1061 | device_type = "cpu"; | ||
1062 | compatible = "cavium,thunder", "arm,armv8"; | ||
1063 | reg = <0x0 0x10207>; | ||
1064 | enable-method = "psci"; | ||
1065 | numa-node-id = <1>; | ||
1066 | next-level-cache = <&thunderx_L2_1>; | ||
1067 | }; | ||
1068 | CPU88: cpu@10208 { | ||
1069 | device_type = "cpu"; | ||
1070 | compatible = "cavium,thunder", "arm,armv8"; | ||
1071 | reg = <0x0 0x10208>; | ||
1072 | enable-method = "psci"; | ||
1073 | numa-node-id = <1>; | ||
1074 | next-level-cache = <&thunderx_L2_1>; | ||
1075 | }; | ||
1076 | CPU89: cpu@10209 { | ||
1077 | device_type = "cpu"; | ||
1078 | compatible = "cavium,thunder", "arm,armv8"; | ||
1079 | reg = <0x0 0x10209>; | ||
1080 | enable-method = "psci"; | ||
1081 | numa-node-id = <1>; | ||
1082 | next-level-cache = <&thunderx_L2_1>; | ||
1083 | }; | ||
1084 | CPU90: cpu@1020a { | ||
1085 | device_type = "cpu"; | ||
1086 | compatible = "cavium,thunder", "arm,armv8"; | ||
1087 | reg = <0x0 0x1020a>; | ||
1088 | enable-method = "psci"; | ||
1089 | numa-node-id = <1>; | ||
1090 | next-level-cache = <&thunderx_L2_1>; | ||
1091 | }; | ||
1092 | CPU91: cpu@1020b { | ||
1093 | device_type = "cpu"; | ||
1094 | compatible = "cavium,thunder", "arm,armv8"; | ||
1095 | reg = <0x0 0x1020b>; | ||
1096 | enable-method = "psci"; | ||
1097 | numa-node-id = <1>; | ||
1098 | next-level-cache = <&thunderx_L2_1>; | ||
1099 | }; | ||
1100 | CPU92: cpu@1020c { | ||
1101 | device_type = "cpu"; | ||
1102 | compatible = "cavium,thunder", "arm,armv8"; | ||
1103 | reg = <0x0 0x1020c>; | ||
1104 | enable-method = "psci"; | ||
1105 | numa-node-id = <1>; | ||
1106 | next-level-cache = <&thunderx_L2_1>; | ||
1107 | }; | ||
1108 | CPU93: cpu@1020d { | ||
1109 | device_type = "cpu"; | ||
1110 | compatible = "cavium,thunder", "arm,armv8"; | ||
1111 | reg = <0x0 0x1020d>; | ||
1112 | enable-method = "psci"; | ||
1113 | numa-node-id = <1>; | ||
1114 | next-level-cache = <&thunderx_L2_1>; | ||
1115 | }; | ||
1116 | CPU94: cpu@1020e { | ||
1117 | device_type = "cpu"; | ||
1118 | compatible = "cavium,thunder", "arm,armv8"; | ||
1119 | reg = <0x0 0x1020e>; | ||
1120 | enable-method = "psci"; | ||
1121 | numa-node-id = <1>; | ||
1122 | next-level-cache = <&thunderx_L2_1>; | ||
1123 | }; | ||
1124 | CPU95: cpu@1020f { | ||
1125 | device_type = "cpu"; | ||
1126 | compatible = "cavium,thunder", "arm,armv8"; | ||
1127 | reg = <0x0 0x1020f>; | ||
1128 | enable-method = "psci"; | ||
1129 | numa-node-id = <1>; | ||
1130 | next-level-cache = <&thunderx_L2_1>; | ||
1131 | }; | ||
1132 | thunderx_L2_0: l2-cache0 { | ||
1133 | compatible = "cache"; | ||
1134 | numa-node-id = <0>; | ||
1135 | }; | ||
1136 | thunderx_L2_1: l2-cache1 { | ||
1137 | compatible = "cache"; | ||
1138 | numa-node-id = <1>; | ||
1139 | }; | ||
1140 | }; | ||
1141 | |||
1142 | timer { | ||
1143 | compatible = "arm,armv8-timer"; | ||
1144 | interrupts = <1 13 4>, | ||
1145 | <1 14 4>, | ||
1146 | <1 11 4>, | ||
1147 | <1 10 4>; | ||
1148 | }; | ||
1149 | |||
1150 | pmu { | ||
1151 | compatible = "cavium,thunder-pmu", "arm,armv8-pmuv3"; | ||
1152 | interrupts = <1 7 4>; | ||
1153 | }; | ||
1154 | |||
1155 | gic0: interrupt-controller@801000000000 { | ||
1156 | compatible = "arm,gic-v3"; | ||
1157 | #interrupt-cells = <3>; | ||
1158 | #address-cells = <2>; | ||
1159 | #size-cells = <2>; | ||
1160 | #redistributor-regions = <2>; | ||
1161 | ranges; | ||
1162 | interrupt-controller; | ||
1163 | reg = <0x8010 0x00000000 0x0 0x010000>, /* GICD */ | ||
1164 | <0x8010 0x80000000 0x0 0x600000>, /* GICR Node 0 */ | ||
1165 | <0x9010 0x80000000 0x0 0x600000>; /* GICR Node 1 */ | ||
1166 | interrupts = <1 9 4>; | ||
1167 | |||
1168 | its: gic-its@801000020000 { | ||
1169 | compatible = "arm,gic-v3-its"; | ||
1170 | reg = <0x8010 0x20000 0x0 0x200000>; | ||
1171 | msi-controller; | ||
1172 | numa-node-id = <0>; | ||
1173 | }; | ||
1174 | |||
1175 | its1: gic-its@901000020000 { | ||
1176 | compatible = "arm,gic-v3-its"; | ||
1177 | reg = <0x9010 0x20000 0x0 0x200000>; | ||
1178 | msi-controller; | ||
1179 | numa-node-id = <1>; | ||
1180 | }; | ||
1181 | }; | ||
1182 | |||
1183 | soc@0 { | ||
1184 | compatible = "simple-bus"; | ||
1185 | #address-cells = <2>; | ||
1186 | #size-cells = <2>; | ||
1187 | ranges; | ||
1188 | numa-node-id = <0>; | ||
1189 | |||
1190 | gpio-keys { | ||
1191 | compatible = "gpio-keys"; | ||
1192 | button@1 { | ||
1193 | lable = "GPIO Key Power"; | ||
1194 | /* 116 is the value of KEY_POWER, which | ||
1195 | is defined in include/uapi/linux/input.h | ||
1196 | of Linux kernel code */ | ||
1197 | linux,code = <116>; | ||
1198 | /* Interrupt type: SPI; | ||
1199 | Interrupt nunmber: 0, which corresponds to | ||
1200 | KEY_POWER_IRQ definition in | ||
1201 | plat/thunder/include/thunder_io.h of ATF code; | ||
1202 | Flag: 1, edge triggered */ | ||
1203 | interrupts = <0 0 1>; | ||
1204 | }; | ||
1205 | }; | ||
1206 | |||
1207 | refclkuaa: refclkuaa { | ||
1208 | compatible = "fixed-clock"; | ||
1209 | #clock-cells = <0>; | ||
1210 | clock-frequency = <116640000>; | ||
1211 | clock-output-names = "refclkuaa"; | ||
1212 | }; | ||
1213 | |||
1214 | sclk: sclk { | ||
1215 | compatible = "fixed-clock"; | ||
1216 | #clock-cells = <0>; | ||
1217 | clock-frequency = <800000000>; | ||
1218 | clock-output-names = "sclk"; | ||
1219 | }; | ||
1220 | |||
1221 | uaa0: serial@87e024000000 { | ||
1222 | compatible = "arm,pl011", "arm,primecell"; | ||
1223 | reg = <0x87e0 0x24000000 0x0 0x1000>; | ||
1224 | interrupts = <0 5 4>; | ||
1225 | clocks = <&refclkuaa>; | ||
1226 | clock-names = "apb_pclk"; | ||
1227 | }; | ||
1228 | |||
1229 | uaa1: serial@87e025000000 { | ||
1230 | compatible = "arm,pl011", "arm,primecell"; | ||
1231 | reg = <0x87e0 0x25000000 0x0 0x1000>; | ||
1232 | interrupts = <0 6 4>; | ||
1233 | clocks = <&refclkuaa>; | ||
1234 | clock-names = "apb_pclk"; | ||
1235 | }; | ||
1236 | |||
1237 | smmu0@830000000000 { | ||
1238 | compatible = "cavium,smmu-v2"; | ||
1239 | reg = <0x8300 0x0 0x0 0x2000000>; | ||
1240 | #global-interrupts = <1>; | ||
1241 | interrupts = <0 68 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1242 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1243 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1244 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1245 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1246 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1247 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1248 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1249 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1250 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1251 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1252 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1253 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1254 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1255 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1256 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1257 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1258 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1259 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1260 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1261 | <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, <0 69 4>, | ||
1262 | <0 69 4>, <0 69 4>, <0 69 4>; | ||
1263 | |||
1264 | mmu-masters = <&ecam0 0x100>; | ||
1265 | }; | ||
1266 | |||
1267 | smmu1@831000000000 { | ||
1268 | compatible = "cavium,smmu-v2"; | ||
1269 | reg = <0x8310 0x0 0x0 0x2000000>; | ||
1270 | #global-interrupts = <1>; | ||
1271 | interrupts = <0 70 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1272 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1273 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1274 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1275 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1276 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1277 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1278 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1279 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1280 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1281 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1282 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1283 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1284 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1285 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1286 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1287 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1288 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1289 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1290 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1291 | <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, <0 71 4>, | ||
1292 | <0 71 4>, <0 71 4>, <0 71 4>; | ||
1293 | |||
1294 | mmu-masters = <&ecam1 0x100>, | ||
1295 | <&pem0 0x200>, | ||
1296 | <&pem1 0x300>, | ||
1297 | <&pem2 0x400>; | ||
1298 | }; | ||
1299 | |||
1300 | smmu2@832000000000 { | ||
1301 | compatible = "cavium,smmu-v2"; | ||
1302 | reg = <0x8320 0x0 0x0 0x2000000>; | ||
1303 | #global-interrupts = <1>; | ||
1304 | interrupts = <0 72 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1305 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1306 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1307 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1308 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1309 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1310 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1311 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1312 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1313 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1314 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1315 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1316 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1317 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1318 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1319 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1320 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1321 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1322 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1323 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1324 | <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, <0 73 4>, | ||
1325 | <0 73 4>, <0 73 4>, <0 73 4>; | ||
1326 | |||
1327 | mmu-masters = <&ecam2 0x100>; | ||
1328 | }; | ||
1329 | |||
1330 | smmu3@833000000000 { | ||
1331 | compatible = "cavium,smmu-v2"; | ||
1332 | reg = <0x8330 0x0 0x0 0x2000000>; | ||
1333 | #global-interrupts = <1>; | ||
1334 | interrupts = <0 74 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1335 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1336 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1337 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1338 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1339 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1340 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1341 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1342 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1343 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1344 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1345 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1346 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1347 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1348 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1349 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1350 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1351 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1352 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1353 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1354 | <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, <0 75 4>, | ||
1355 | <0 75 4>, <0 75 4>, <0 75 4>; | ||
1356 | |||
1357 | mmu-masters = <&ecam3 0x100>, | ||
1358 | <&pem3 0x200>, | ||
1359 | <&pem4 0x300>, | ||
1360 | <&pem5 0x400>; | ||
1361 | }; | ||
1362 | |||
1363 | ecam0: pci@848000000000 { | ||
1364 | compatible = "cavium,pci-host-thunder-ecam"; | ||
1365 | device_type = "pci"; | ||
1366 | msi-parent = <&its>; | ||
1367 | msi-map = <0 &its 0 0x10000>; | ||
1368 | bus-range = <0 31>; | ||
1369 | #size-cells = <2>; | ||
1370 | #address-cells = <3>; | ||
1371 | #stream-id-cells = <1>; | ||
1372 | dma-coherent; | ||
1373 | reg = <0x8480 0x00000000 0 0x02000000>; /* Configuration space */ | ||
1374 | ranges = <0x03000000 0x8020 0x00000000 0x8020 0x00000000 0x060 0x00000000>, /* mem ranges */ | ||
1375 | <0x03000000 0x8380 0x00000000 0x8380 0x00000000 0x0a0 0x00000000>, /* ZIP et al. */ | ||
1376 | <0x03000000 0x8460 0x00000000 0x8460 0x00000000 0x020 0x00000000>, /* DFA et al. */ | ||
1377 | <0x03000000 0x8680 0x00000000 0x8680 0x00000000 0x160 0x24000000>, /* hole for UARTs */ | ||
1378 | <0x03000000 0x87e0 0x26000000 0x87e0 0x26000000 0x000 0x9a000000>, /* hole for PEMs */ | ||
1379 | <0x03000000 0x87e0 0xc6000000 0x87e0 0xc6000000 0x01f 0x3a000000>; | ||
1380 | |||
1381 | mrml-bridge@1,0 { | ||
1382 | compatible = "cavium,thunder-8890-mrml-bridge"; | ||
1383 | device_type = "pci"; | ||
1384 | #size-cells = <2>; | ||
1385 | #address-cells = <3>; | ||
1386 | ranges = <0x03000000 0x87e0 0x00000000 0x03000000 0x87e0 0x00000000 0x10 0x00000000>; | ||
1387 | reg = <0x0800 0 0 0 0>; /* DEVFN = 0x08 (1:0) */ | ||
1388 | |||
1389 | mdio-nexus@1,3 { | ||
1390 | compatible = "cavium,thunder-8890-mdio-nexus"; | ||
1391 | #address-cells = <2>; | ||
1392 | #size-cells = <2>; | ||
1393 | reg = <0x0b00 0 0 0 0>; /* DEVFN = 0x0b (1:3) */ | ||
1394 | assigned-addresses = <0x03000000 0x87e0 0x05000000 0x0 0x800000>; | ||
1395 | ranges = <0x87e0 0x05000000 0x03000000 0x87e0 0x05000000 0x0 0x800000>; | ||
1396 | |||
1397 | mdio@87e005003800 { | ||
1398 | compatible = "cavium,thunder-8890-mdio"; | ||
1399 | #address-cells = <1>; | ||
1400 | #size-cells = <0>; | ||
1401 | reg = <0x87e0 0x05003800 0x0 0x30>; | ||
1402 | |||
1403 | xfi00: xfi@0 { | ||
1404 | qlm-mode = "0x000,xfi","0x000,xfi-10g-kr"; | ||
1405 | reg = <0> ; | ||
1406 | compatible = "cortina,cs4223-slice"; | ||
1407 | }; | ||
1408 | xfi01: xfi@1 { | ||
1409 | qlm-mode = "0x001,xfi","0x001,xfi-10g-kr"; | ||
1410 | reg = <1> ; | ||
1411 | compatible = "cortina,cs4223-slice"; | ||
1412 | }; | ||
1413 | xfi02: xfi@2 { | ||
1414 | qlm-mode = "0x002,xfi","0x002,xfi-10g-kr"; | ||
1415 | reg = <2> ; | ||
1416 | compatible = "cortina,cs4223-slice"; | ||
1417 | }; | ||
1418 | xfi03: xfi@3 { | ||
1419 | qlm-mode = "0x003,xfi","0x003,xfi-10g-kr"; | ||
1420 | reg = <3> ; | ||
1421 | compatible = "cortina,cs4223-slice"; | ||
1422 | }; | ||
1423 | xlaui00: xlaui@0 { | ||
1424 | qlm-mode = "0x000,xlaui","0x000,xlaui-40g-kr"; | ||
1425 | reg = <0> ; | ||
1426 | compatible = "cortina,cs4223-slice"; | ||
1427 | }; | ||
1428 | }; | ||
1429 | |||
1430 | mdio@87e005003880 { | ||
1431 | compatible = "cavium,thunder-8890-mdio"; | ||
1432 | #address-cells = <1>; | ||
1433 | #size-cells = <0>; | ||
1434 | reg = <0x87e0 0x05003880 0x0 0x30>; | ||
1435 | |||
1436 | xfi10: xfi@0 { | ||
1437 | qlm-mode = "0x010,xfi","0x010,xfi-10g-kr"; | ||
1438 | reg = <0> ; | ||
1439 | compatible = "cortina,cs4223-slice"; | ||
1440 | }; | ||
1441 | xfi11: xfi@1 { | ||
1442 | qlm-mode = "0x011,xfi","0x011,xfi-10g-kr"; | ||
1443 | reg = <1> ; | ||
1444 | compatible = "cortina,cs4223-slice"; | ||
1445 | }; | ||
1446 | xfi12: xfi@2 { | ||
1447 | qlm-mode = "0x012,xfi","0x012,xfi-10g-kr"; | ||
1448 | reg = <2> ; | ||
1449 | compatible = "cortina,cs4223-slice"; | ||
1450 | }; | ||
1451 | xfi13: xfi@3 { | ||
1452 | qlm-mode = "0x013,xfi","0x013,xfi-10g-kr"; | ||
1453 | reg = <3> ; | ||
1454 | compatible = "cortina,cs4223-slice"; | ||
1455 | }; | ||
1456 | xlaui10: xlaui@0 { | ||
1457 | qlm-mode = "0x010,xlaui","0x010,xlaui-40g-kr"; | ||
1458 | reg = <0> ; | ||
1459 | compatible = "cortina,cs4223-slice"; | ||
1460 | }; | ||
1461 | }; | ||
1462 | }; | ||
1463 | |||
1464 | // I2C configuration for EBB8800 testing | ||
1465 | // i2c@9,0 { | ||
1466 | // #address-cells = <1>; | ||
1467 | // #size-cells = <0>; | ||
1468 | // compatible = "cavium,thunder-8890-twsi"; | ||
1469 | // reg = <0x4800 0 0 0 0>; /* DEVFN = 0x48 (9:0) */ | ||
1470 | // clock-frequency = <100000>; | ||
1471 | // clocks = <&sclk>; | ||
1472 | // | ||
1473 | // rtc@68 { | ||
1474 | // compatible = "dallas,ds1337"; | ||
1475 | // reg = <0x68>; | ||
1476 | // }; | ||
1477 | // }; | ||
1478 | // | ||
1479 | bgx0 { | ||
1480 | #address-cells = <1>; | ||
1481 | #size-cells = <0>; | ||
1482 | reg = <0x8000 0 0 0 0>; /* DEVFN = 0x80 (16:0) */ | ||
1483 | /* typename+qlm+typenumber eg : | ||
1484 | sgmii+bgx0+sgmmi0 | ||
1485 | */ | ||
1486 | // SGMII | ||
1487 | sgmii@0 { | ||
1488 | reg = <0>; | ||
1489 | qlm-mode = "0x000,sgmii"; | ||
1490 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1491 | phy-handle = <&sgmii00>; | ||
1492 | }; | ||
1493 | sgmii@1 { | ||
1494 | reg = <1>; | ||
1495 | qlm-mode = "0x001,sgmii"; | ||
1496 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1497 | phy-handle = <&sgmii01>; | ||
1498 | }; | ||
1499 | sgmii@2 { | ||
1500 | reg = <2>; | ||
1501 | qlm-mode = "0x002,sgmii"; | ||
1502 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1503 | phy-handle = <&sgmii02>; | ||
1504 | }; | ||
1505 | sgmii@3 { | ||
1506 | reg = <3>; | ||
1507 | qlm-mode = "0x003,sgmii"; | ||
1508 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1509 | phy-handle = <&sgmii03>; | ||
1510 | }; | ||
1511 | xfi@0 { | ||
1512 | reg = <0>; | ||
1513 | qlm-mode = "0x000,xfi"; | ||
1514 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1515 | phy-handle = <&xfi00>; | ||
1516 | }; | ||
1517 | xfi@1 { | ||
1518 | reg = <1>; | ||
1519 | qlm-mode = "0x001,xfi"; | ||
1520 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1521 | phy-handle = <&xfi01>; | ||
1522 | }; | ||
1523 | xfi@2 { | ||
1524 | reg = <2>; | ||
1525 | qlm-mode = "0x002,xfi"; | ||
1526 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1527 | phy-handle = <&xfi02>; | ||
1528 | }; | ||
1529 | xfi@3 { | ||
1530 | reg = <3>; | ||
1531 | qlm-mode = "0x003,xfi"; | ||
1532 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1533 | phy-handle = <&xfi03>; | ||
1534 | }; | ||
1535 | // 10g-kr | ||
1536 | xfi-10g-kr@0 { | ||
1537 | reg = <0>; | ||
1538 | qlm-mode = "0x000,xfi-10g-kr"; | ||
1539 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1540 | phy-handle = <&xfi00>; | ||
1541 | }; | ||
1542 | xfi-10g-kr@1 { | ||
1543 | reg = <1>; | ||
1544 | qlm-mode = "0x001,xfi-10g-kr"; | ||
1545 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1546 | phy-handle = <&xfi01>; | ||
1547 | }; | ||
1548 | xfi-10g-kr@2 { | ||
1549 | reg = <2>; | ||
1550 | qlm-mode = "0x002,xfi-10g-kr"; | ||
1551 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1552 | phy-handle = <&xfi02>; | ||
1553 | }; | ||
1554 | xfi-10g-kr@3 { | ||
1555 | reg = <3>; | ||
1556 | qlm-mode = "0x003,xfi-10g-kr"; | ||
1557 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1558 | phy-handle = <&xfi03>; | ||
1559 | }; | ||
1560 | xlaui@0 { | ||
1561 | reg = <0>; | ||
1562 | qlm-mode = "0x000,xlaui"; | ||
1563 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1564 | phy-handle = <&xlaui00>; | ||
1565 | }; | ||
1566 | xlaui-40g-kr@0 { | ||
1567 | reg = <0>; | ||
1568 | qlm-mode = "0x000,xlaui-40g-kr"; | ||
1569 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1570 | phy-handle = <&xlaui00>; | ||
1571 | }; | ||
1572 | xaui@0 { | ||
1573 | reg = <0>; | ||
1574 | qlm-mode = "0x000,xaui"; | ||
1575 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1576 | phy-handle = <&xaui00>; | ||
1577 | }; | ||
1578 | rxaui@0 { | ||
1579 | reg = <0>; | ||
1580 | qlm-mode = "0x000,rxaui"; | ||
1581 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1582 | phy-handle = <&rxaui00>; | ||
1583 | }; | ||
1584 | rxaui@2 { | ||
1585 | reg = <2>; | ||
1586 | qlm-mode = "0x002,rxaui"; | ||
1587 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1588 | phy-handle = <&rxaui02>; | ||
1589 | }; | ||
1590 | }; | ||
1591 | |||
1592 | bgx1 { | ||
1593 | #address-cells = <1>; | ||
1594 | #size-cells = <0>; | ||
1595 | reg = <0x8100 0 0 0 0>; /* DEVFN = 0x81 (16:1) */ | ||
1596 | |||
1597 | sgmii@0 { | ||
1598 | reg = <0>; | ||
1599 | qlm-mode = "0x010,sgmii"; | ||
1600 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1601 | phy-handle = <&sgmii10>; /*"sgmmi"+bgx+no */ | ||
1602 | }; | ||
1603 | sgmii@1 { | ||
1604 | reg = <1>; | ||
1605 | qlm-mode = "0x011,sgmii"; | ||
1606 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1607 | phy-handle = <&sgmii11>; | ||
1608 | }; | ||
1609 | sgmii@2 { | ||
1610 | reg = <2>; | ||
1611 | qlm-mode = "0x012,sgmii"; | ||
1612 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1613 | phy-handle = <&sgmii12>; | ||
1614 | }; | ||
1615 | sgmii@3 { | ||
1616 | reg = <3>; | ||
1617 | qlm-mode = "0x013,sgmii"; | ||
1618 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1619 | phy-handle = <&sgmii13>; | ||
1620 | }; | ||
1621 | xfi@0 { | ||
1622 | reg = <0>; | ||
1623 | qlm-mode = "0x010,xfi"; | ||
1624 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1625 | phy-handle = <&xfi10>; | ||
1626 | }; | ||
1627 | xfi@1 { | ||
1628 | reg = <1>; | ||
1629 | qlm-mode = "0x011,xfi"; | ||
1630 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1631 | phy-handle = <&xfi11>; | ||
1632 | }; | ||
1633 | xfi@2 { | ||
1634 | reg = <2>; | ||
1635 | qlm-mode = "0x012,xfi"; | ||
1636 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1637 | phy-handle = <&xfi12>; | ||
1638 | }; | ||
1639 | xfi@3 { | ||
1640 | reg = <3>; | ||
1641 | qlm-mode = "0x013,xfi"; | ||
1642 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1643 | phy-handle = <&xfi13>; | ||
1644 | }; | ||
1645 | // 10g_kr | ||
1646 | xfi-10g-kr@0 { | ||
1647 | reg = <0>; | ||
1648 | qlm-mode = "0x010,xfi-10g-kr"; | ||
1649 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1650 | phy-handle = <&xfi10>; | ||
1651 | }; | ||
1652 | xfi-10g-kr@1 { | ||
1653 | reg = <1>; | ||
1654 | qlm-mode = "0x011,xfi-10g-kr"; | ||
1655 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1656 | phy-handle = <&xfi11>; | ||
1657 | }; | ||
1658 | xfi-10g-kr@2 { | ||
1659 | reg = <2>; | ||
1660 | qlm-mode = "0x012,xfi-10g-kr"; | ||
1661 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1662 | phy-handle = <&xfi12>; | ||
1663 | }; | ||
1664 | xfi-10g-kr@3 { | ||
1665 | reg = <3>; | ||
1666 | qlm-mode = "0x013,xfi-10g-kr"; | ||
1667 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1668 | phy-handle = <&xfi13>; | ||
1669 | }; | ||
1670 | xlaui@0 { | ||
1671 | reg = <0>; | ||
1672 | qlm-mode = "0x010,xlaui"; | ||
1673 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1674 | phy-handle = <&xlaui10>; | ||
1675 | }; | ||
1676 | xlaui-40g-kr-@0 { | ||
1677 | reg = <0>; | ||
1678 | qlm-mode = "0x010,xlaui-40g-kr"; | ||
1679 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1680 | phy-handle = <&xlaui10>; | ||
1681 | }; | ||
1682 | xaui@0 { | ||
1683 | reg = <0>; | ||
1684 | qlm-mode = "0x010,xaui"; | ||
1685 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1686 | phy-handle = <&xaui10>; | ||
1687 | }; | ||
1688 | rxaui@0 { | ||
1689 | reg = <0>; | ||
1690 | qlm-mode = "0x010,rxaui"; | ||
1691 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1692 | phy-handle = <&rxaui10>; | ||
1693 | }; | ||
1694 | rxaui@2 { | ||
1695 | reg = <2>; | ||
1696 | qlm-mode = "0x012,rxaui"; | ||
1697 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
1698 | phy-handle = <&rxaui12>; | ||
1699 | }; | ||
1700 | }; | ||
1701 | }; | ||
1702 | |||
1703 | // SPI configuration for EBB8800 testing | ||
1704 | // spi@7,0 { | ||
1705 | // compatible = "cavium,thunder-8890-spi"; | ||
1706 | // reg = <0x3800 0 0 0 0>; /* DEVFN = 0x38 (7:0) */ | ||
1707 | // #address-cells = <1>; | ||
1708 | // #size-cells = <0>; | ||
1709 | // clocks = <&sclk>; | ||
1710 | // | ||
1711 | // flash@0 { | ||
1712 | // compatible = "jedec,spi-nor"; | ||
1713 | // reg = <0>; | ||
1714 | // spi-max-frequency = <16000000>; | ||
1715 | // #address-cells = <1>; | ||
1716 | // #size-cells = <1>; | ||
1717 | // }; | ||
1718 | // }; | ||
1719 | // | ||
1720 | }; | ||
1721 | |||
1722 | ecam1: pci@849000000000 { | ||
1723 | compatible = "cavium,pci-host-thunder-ecam"; | ||
1724 | device_type = "pci"; | ||
1725 | msi-parent = <&its>; | ||
1726 | msi-map = <0 &its 0x10000 0x10000>; | ||
1727 | bus-range = <0 31>; | ||
1728 | #size-cells = <2>; | ||
1729 | #address-cells = <3>; | ||
1730 | #stream-id-cells = <1>; | ||
1731 | dma-coherent; | ||
1732 | reg = <0x8490 0x00000000 0 0x02000000>; /* Configuration space */ | ||
1733 | ranges = <0x03000000 0x8100 0x00000000 0x8100 0x00000000 0x80 0x00000000>; /* mem ranges */ | ||
1734 | }; | ||
1735 | |||
1736 | ecam2: pci@84a000000000 { | ||
1737 | compatible = "cavium,pci-host-thunder-ecam"; | ||
1738 | device_type = "pci"; | ||
1739 | msi-parent = <&its>; | ||
1740 | msi-map = <0 &its 0x20000 0x10000>; | ||
1741 | bus-range = <0 31>; | ||
1742 | #size-cells = <2>; | ||
1743 | #address-cells = <3>; | ||
1744 | #stream-id-cells = <1>; | ||
1745 | dma-coherent; | ||
1746 | reg = <0x84a0 0x00000000 0 0x02000000>; /* Configuration space */ | ||
1747 | ranges = <0x03000000 0x8420 0x00000000 0x8420 0x00000000 0x20 0x00000000>; /* mem ranges */ | ||
1748 | }; | ||
1749 | |||
1750 | ecam3: pci@84b000000000 { | ||
1751 | compatible = "cavium,pci-host-thunder-ecam"; | ||
1752 | device_type = "pci"; | ||
1753 | msi-parent = <&its>; | ||
1754 | msi-map = <0 &its 0x30000 0x10000>; | ||
1755 | bus-range = <0 31>; | ||
1756 | #size-cells = <2>; | ||
1757 | #address-cells = <3>; | ||
1758 | #stream-id-cells = <1>; | ||
1759 | dma-coherent; | ||
1760 | reg = <0x84b0 0x00000000 0 0x02000000>; /* Configuration space */ | ||
1761 | ranges = <0x03000000 0x8180 0x00000000 0x8180 0x00000000 0x80 0x00000000>; /* mem ranges */ | ||
1762 | }; | ||
1763 | |||
1764 | pem0: pci@87e0c0000000 { | ||
1765 | |||
1766 | /* "cavium,pci-host-thunder-pem" implies that | ||
1767 | the first bus in bus-range has config access | ||
1768 | via the "PEM space", subsequent buses have | ||
1769 | config assess via the "Configuration space". | ||
1770 | The "mem64 PEM" range is used to map the PEM | ||
1771 | BAR0, which is used by the AER and PME MSI-X | ||
1772 | sources. UEFI and Linux must assign the same | ||
1773 | bus number to each device, otherwise Linux | ||
1774 | enumeration gets confused. Because UEFI | ||
1775 | skips the PEM bus and its PCIe-RC bridge it | ||
1776 | uses a numbering that starts 1 bus higher. | ||
1777 | */ | ||
1778 | |||
1779 | compatible = "cavium,pci-host-thunder-pem"; | ||
1780 | device_type = "pci"; | ||
1781 | msi-parent = <&its>; | ||
1782 | msi-map = <0 &its 0x10000 0x10000>; | ||
1783 | bus-range = <0x1f 0x57>; | ||
1784 | #size-cells = <2>; | ||
1785 | #address-cells = <3>; | ||
1786 | #stream-id-cells = <1>; | ||
1787 | dma-coherent; | ||
1788 | reg = <0x8800 0x1f000000 0x0 0x39000000>, /* Configuration space */ | ||
1789 | <0x87e0 0xc0000000 0x0 0x01000000>; /* PEM space */ | ||
1790 | ranges = <0x01000000 0x00 0x00000000 0x8830 0x00000000 0x00 0x00010000>, /* I/O */ | ||
1791 | <0x03000000 0x00 0x10000000 0x8810 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
1792 | <0x43000000 0x10 0x00000000 0x8820 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
1793 | <0x03000000 0x87e0 0xc0000000 0x87e0 0xc0000000 0x00 0x01000000>; /* mem64 PEM */ | ||
1794 | |||
1795 | #interrupt-cells = <1>; | ||
1796 | interrupt-map-mask = <0 0 0 7>; | ||
1797 | interrupt-map = <0 0 0 1 &gic0 0 0 0 16 4>, /* INTA */ | ||
1798 | <0 0 0 2 &gic0 0 0 0 17 4>, /* INTB */ | ||
1799 | <0 0 0 3 &gic0 0 0 0 18 4>, /* INTC */ | ||
1800 | <0 0 0 4 &gic0 0 0 0 19 4>; /* INTD */ | ||
1801 | }; | ||
1802 | |||
1803 | pem1: pci@87e0c1000000 { | ||
1804 | compatible = "cavium,pci-host-thunder-pem"; | ||
1805 | device_type = "pci"; | ||
1806 | msi-parent = <&its>; | ||
1807 | msi-map = <0 &its 0x10000 0x10000>; | ||
1808 | bus-range = <0x57 0x8f>; | ||
1809 | #size-cells = <2>; | ||
1810 | #address-cells = <3>; | ||
1811 | #stream-id-cells = <1>; | ||
1812 | dma-coherent; | ||
1813 | reg = <0x8840 0x57000000 0x0 0x39000000>, /* Configuration space */ | ||
1814 | <0x87e0 0xc1000000 0x0 0x01000000>; /* PEM space */ | ||
1815 | ranges = <0x01000000 0x00 0x00010000 0x8870 0x00010000 0x00 0x00010000>, /* I/O */ | ||
1816 | <0x03000000 0x00 0x10000000 0x8850 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
1817 | <0x43000000 0x10 0x00000000 0x8860 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
1818 | <0x03000000 0x87e0 0xc1000000 0x87e0 0xc1000000 0x00 0x01000000>; /* mem64 PEM */ | ||
1819 | |||
1820 | #interrupt-cells = <1>; | ||
1821 | interrupt-map-mask = <0 0 0 7>; | ||
1822 | interrupt-map = <0 0 0 1 &gic0 0 0 0 20 4>, /* INTA */ | ||
1823 | <0 0 0 2 &gic0 0 0 0 21 4>, /* INTB */ | ||
1824 | <0 0 0 3 &gic0 0 0 0 22 4>, /* INTC */ | ||
1825 | <0 0 0 4 &gic0 0 0 0 23 4>; /* INTD */ | ||
1826 | }; | ||
1827 | |||
1828 | pem2: pci@87e0c2000000 { | ||
1829 | compatible = "cavium,pci-host-thunder-pem"; | ||
1830 | device_type = "pci"; | ||
1831 | msi-parent = <&its>; | ||
1832 | msi-map = <0 &its 0x10000 0x10000>; | ||
1833 | bus-range = <0x8f 0xc7>; | ||
1834 | #size-cells = <2>; | ||
1835 | #address-cells = <3>; | ||
1836 | #stream-id-cells = <1>; | ||
1837 | dma-coherent; | ||
1838 | reg = <0x8880 0x8f000000 0x0 0x39000000>, /* Configuration space */ | ||
1839 | <0x87e0 0xc2000000 0x0 0x01000000>; /* PEM space */ | ||
1840 | ranges = <0x01000000 0x00 0x00020000 0x88b0 0x00020000 0x00 0x00010000>, /* I/O */ | ||
1841 | <0x03000000 0x00 0x10000000 0x8890 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
1842 | <0x43000000 0x10 0x00000000 0x88a0 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
1843 | <0x03000000 0x87e0 0xc2000000 0x87e0 0xc2000000 0x00 0x01000000>; /* mem64 PEM */ | ||
1844 | |||
1845 | #interrupt-cells = <1>; | ||
1846 | interrupt-map-mask = <0 0 0 7>; | ||
1847 | interrupt-map = <0 0 0 1 &gic0 0 0 0 24 4>, /* INTA */ | ||
1848 | <0 0 0 2 &gic0 0 0 0 25 4>, /* INTB */ | ||
1849 | <0 0 0 3 &gic0 0 0 0 26 4>, /* INTC */ | ||
1850 | <0 0 0 4 &gic0 0 0 0 27 4>; /* INTD */ | ||
1851 | }; | ||
1852 | |||
1853 | pem3: pci@87e0c3000000 { | ||
1854 | compatible = "cavium,pci-host-thunder-pem"; | ||
1855 | device_type = "pci"; | ||
1856 | msi-parent = <&its>; | ||
1857 | msi-map = <0 &its 0x30000 0x10000>; | ||
1858 | bus-range = <0x1f 0x57>; | ||
1859 | #size-cells = <2>; | ||
1860 | #address-cells = <3>; | ||
1861 | #stream-id-cells = <1>; | ||
1862 | dma-coherent; | ||
1863 | reg = <0x8900 0x1f000000 0x0 0x39000000>, /* Configuration space */ | ||
1864 | <0x87e0 0xc3000000 0x0 0x01000000>; /* PEM space */ | ||
1865 | ranges = <0x01000000 0x00 0x00030000 0x8930 0x00030000 0x00 0x00010000>, /* I/O */ | ||
1866 | <0x03000000 0x00 0x10000000 0x8910 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
1867 | <0x43000000 0x10 0x00000000 0x8920 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
1868 | <0x03000000 0x87e0 0xc3000000 0x87e0 0xc3000000 0x00 0x01000000>; /* mem64 PEM */ | ||
1869 | |||
1870 | #interrupt-cells = <1>; | ||
1871 | interrupt-map-mask = <0 0 0 7>; | ||
1872 | interrupt-map = <0 0 0 1 &gic0 0 0 0 28 4>, /* INTA */ | ||
1873 | <0 0 0 2 &gic0 0 0 0 29 4>, /* INTB */ | ||
1874 | <0 0 0 3 &gic0 0 0 0 30 4>, /* INTC */ | ||
1875 | <0 0 0 4 &gic0 0 0 0 31 4>; /* INTD */ | ||
1876 | }; | ||
1877 | |||
1878 | pem4: pci@87e0c4000000 { | ||
1879 | compatible = "cavium,pci-host-thunder-pem"; | ||
1880 | device_type = "pci"; | ||
1881 | msi-parent = <&its>; | ||
1882 | msi-map = <0 &its 0x30000 0x10000>; | ||
1883 | bus-range = <0x57 0x8f>; | ||
1884 | #size-cells = <2>; | ||
1885 | #address-cells = <3>; | ||
1886 | #stream-id-cells = <1>; | ||
1887 | dma-coherent; | ||
1888 | reg = <0x8940 0x57000000 0x0 0x39000000>, /* Configuration space */ | ||
1889 | <0x87e0 0xc4000000 0x0 0x01000000>; /* PEM space */ | ||
1890 | ranges = <0x01000000 0x00 0x00040000 0x8970 0x00040000 0x00 0x00010000>, /* I/O */ | ||
1891 | <0x03000000 0x00 0x10000000 0x8950 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
1892 | <0x43000000 0x10 0x00000000 0x8960 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
1893 | <0x03000000 0x87e0 0xc4000000 0x87e0 0xc4000000 0x00 0x01000000>; /* mem64 PEM */ | ||
1894 | |||
1895 | #interrupt-cells = <1>; | ||
1896 | interrupt-map-mask = <0 0 0 7>; | ||
1897 | interrupt-map = <0 0 0 1 &gic0 0 0 0 32 4>, /* INTA */ | ||
1898 | <0 0 0 2 &gic0 0 0 0 33 4>, /* INTB */ | ||
1899 | <0 0 0 3 &gic0 0 0 0 34 4>, /* INTC */ | ||
1900 | <0 0 0 4 &gic0 0 0 0 35 4>; /* INTD */ | ||
1901 | }; | ||
1902 | |||
1903 | pem5: pci@87e0c5000000 { | ||
1904 | compatible = "cavium,pci-host-thunder-pem"; | ||
1905 | device_type = "pci"; | ||
1906 | msi-parent = <&its>; | ||
1907 | msi-map = <0 &its 0x30000 0x10000>; | ||
1908 | bus-range = <0x8f 0xc7>; | ||
1909 | #size-cells = <2>; | ||
1910 | #address-cells = <3>; | ||
1911 | #stream-id-cells = <1>; | ||
1912 | dma-coherent; | ||
1913 | reg = <0x8980 0x8f000000 0x0 0x39000000>, /* Configuration space */ | ||
1914 | <0x87e0 0xc5000000 0x0 0x01000000>; /* PEM space */ | ||
1915 | ranges = <0x01000000 0x00 0x00050000 0x89b0 0x00050000 0x00 0x00010000>, /* I/O */ | ||
1916 | <0x03000000 0x00 0x10000000 0x8990 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
1917 | <0x43000000 0x10 0x00000000 0x89a0 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
1918 | <0x03000000 0x87e0 0xc5000000 0x87e0 0xc5000000 0x00 0x01000000>; /* mem64 PEM */ | ||
1919 | |||
1920 | #interrupt-cells = <1>; | ||
1921 | interrupt-map-mask = <0 0 0 7>; | ||
1922 | interrupt-map = <0 0 0 1 &gic0 0 0 0 36 4>, /* INTA */ | ||
1923 | <0 0 0 2 &gic0 0 0 0 37 4>, /* INTB */ | ||
1924 | <0 0 0 3 &gic0 0 0 0 38 4>, /* INTC */ | ||
1925 | <0 0 0 4 &gic0 0 0 0 39 4>; /* INTD */ | ||
1926 | }; | ||
1927 | |||
1928 | }; | ||
1929 | |||
1930 | soc@100000000000 { | ||
1931 | compatible = "simple-bus"; | ||
1932 | #address-cells = <2>; | ||
1933 | #size-cells = <2>; | ||
1934 | ranges = <0x8000 0 0x9000 0x00000000 0x1000 0x00000000>; | ||
1935 | numa-node-id = <1>; | ||
1936 | |||
1937 | smmu4@830000000000 { | ||
1938 | compatible = "cavium,smmu-v2"; | ||
1939 | reg = <0x8300 0x0 0x0 0x2000000>; | ||
1940 | #global-interrupts = <1>; | ||
1941 | interrupts = <0 76 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1942 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1943 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1944 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1945 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1946 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1947 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1948 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1949 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1950 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1951 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1952 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1953 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1954 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1955 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1956 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1957 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1958 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1959 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1960 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1961 | <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, <0 77 4>, | ||
1962 | <0 77 4>, <0 77 4>, <0 77 4>; | ||
1963 | |||
1964 | mmu-masters = <&ecam4 0x100>; | ||
1965 | }; | ||
1966 | |||
1967 | smmu5@831000000000 { | ||
1968 | compatible = "cavium,smmu-v2"; | ||
1969 | reg = <0x8310 0x0 0x0 0x2000000>; | ||
1970 | #global-interrupts = <1>; | ||
1971 | interrupts = <0 78 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1972 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1973 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1974 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1975 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1976 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1977 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1978 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1979 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1980 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1981 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1982 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1983 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1984 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1985 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1986 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1987 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1988 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1989 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1990 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1991 | <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, <0 79 4>, | ||
1992 | <0 79 4>, <0 79 4>, <0 79 4>; | ||
1993 | |||
1994 | mmu-masters = <&ecam5 0x100>, | ||
1995 | <&pem6 0x200>, | ||
1996 | <&pem7 0x300>, | ||
1997 | <&pem8 0x400>; | ||
1998 | }; | ||
1999 | |||
2000 | smmu6@832000000000 { | ||
2001 | compatible = "cavium,smmu-v2"; | ||
2002 | reg = <0x8320 0x0 0x0 0x2000000>; | ||
2003 | #global-interrupts = <1>; | ||
2004 | interrupts = <0 80 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2005 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2006 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2007 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2008 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2009 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2010 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2011 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2012 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2013 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2014 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2015 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2016 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2017 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2018 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2019 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2020 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2021 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2022 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2023 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2024 | <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, <0 81 4>, | ||
2025 | <0 81 4>, <0 81 4>, <0 81 4>; | ||
2026 | |||
2027 | mmu-masters = <&ecam6 0x100>; | ||
2028 | }; | ||
2029 | |||
2030 | smmu7@833000000000 { | ||
2031 | compatible = "cavium,smmu-v2"; | ||
2032 | reg = <0x8330 0x0 0x0 0x2000000>; | ||
2033 | #global-interrupts = <1>; | ||
2034 | |||
2035 | interrupts = <0 82 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2036 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2037 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2038 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2039 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2040 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2041 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2042 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2043 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2044 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2045 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2046 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2047 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2048 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2049 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2050 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2051 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2052 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2053 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2054 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2055 | <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, <0 83 4>, | ||
2056 | <0 83 4>, <0 83 4>, <0 83 4>; | ||
2057 | |||
2058 | mmu-masters = <&ecam7 0x100>, | ||
2059 | <&pem9 0x200>, | ||
2060 | <&pem10 0x300>, | ||
2061 | <&pem11 0x400>; | ||
2062 | }; | ||
2063 | |||
2064 | |||
2065 | ecam4: pci@848000000000 { | ||
2066 | compatible = "cavium,pci-host-thunder-ecam"; | ||
2067 | device_type = "pci"; | ||
2068 | msi-parent = <&its1>; | ||
2069 | msi-map = <0 &its1 0x80000 0x10000>; | ||
2070 | bus-range = <0 31>; | ||
2071 | #size-cells = <2>; | ||
2072 | #address-cells = <3>; | ||
2073 | #stream-id-cells = <1>; | ||
2074 | dma-coherent; | ||
2075 | reg = <0x8480 0x00000000 0 0x02000000>; /* Configuration space */ | ||
2076 | ranges = <0x03000000 0x8020 0x00000000 0x8020 0x00000000 0x060 0x00000000>, /* mem ranges */ | ||
2077 | <0x03000000 0x8380 0x00000000 0x8380 0x00000000 0x0a0 0x00000000>, /* ZIP et al. */ | ||
2078 | <0x03000000 0x8460 0x00000000 0x8460 0x00000000 0x020 0x00000000>, /* DFA et al. */ | ||
2079 | <0x03000000 0x8680 0x00000000 0x8680 0x00000000 0x160 0x24000000>, /* hole for UARTs */ | ||
2080 | <0x03000000 0x87e0 0x26000000 0x87e0 0x26000000 0x000 0x9a000000>, /* hole for PEMs */ | ||
2081 | <0x03000000 0x87e0 0xc6000000 0x87e0 0xc6000000 0x01f 0x3a000000>; | ||
2082 | |||
2083 | mrml-bridge@1,0 { | ||
2084 | compatible = "cavium,thunder-8890-mrml-bridge"; | ||
2085 | device_type = "pci"; | ||
2086 | #size-cells = <2>; | ||
2087 | #address-cells = <3>; | ||
2088 | ranges = <0x03000000 0x87e0 0x00000000 0x03000000 0x87e0 0x00000000 0x10 0x00000000>; | ||
2089 | reg = <0x0800 0 0 0 0>; /* DEVFN = 0x08 (1:0) */ | ||
2090 | |||
2091 | mdio-nexus@1,3 { | ||
2092 | compatible = "cavium,thunder-8890-mdio-nexus"; | ||
2093 | #address-cells = <2>; | ||
2094 | #size-cells = <2>; | ||
2095 | reg = <0x0b00 0 0 0 0>; /* DEVFN = 0x0b (1:3) */ | ||
2096 | assigned-addresses = <0x03000000 0x87e0 0x05000000 0x0 0x800000>; | ||
2097 | ranges = <0x87e0 0x05000000 0x03000000 0x87e0 0x05000000 0x0 0x800000>; | ||
2098 | |||
2099 | mdio@87e05003800 { | ||
2100 | compatible = "cavium,thunder-8890-mdio"; | ||
2101 | #address-cells = <1>; | ||
2102 | #size-cells = <0>; | ||
2103 | reg = <0x87e0 0x05003800 0x0 0x30>; | ||
2104 | |||
2105 | sgmii20: sgmii@0 { | ||
2106 | qlm-mode = "0x100,sgmii"; | ||
2107 | reg = <0> ; | ||
2108 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
2109 | /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ | ||
2110 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
2111 | <3 0x11 0 0x00aa>, | ||
2112 | <3 0x12 0 0x4105>, | ||
2113 | <3 0x13 0 0x8a08>; | ||
2114 | }; | ||
2115 | sgmii21: sgmii@1 { | ||
2116 | qlm-mode = "0x101,sgmii"; | ||
2117 | reg = <1> ; | ||
2118 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
2119 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
2120 | <3 0x11 0 0x00aa>, | ||
2121 | <3 0x12 0 0x4105>, | ||
2122 | <3 0x13 0 0x8a08>; | ||
2123 | }; | ||
2124 | sgmii22: sgmii@2 { | ||
2125 | qlm-mode = "0x102,sgmii"; | ||
2126 | reg = <2> ; | ||
2127 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
2128 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
2129 | <3 0x11 0 0x00aa>, | ||
2130 | <3 0x12 0 0x4105>, | ||
2131 | <3 0x13 0 0x8a08>; | ||
2132 | }; | ||
2133 | sgmii23: sgmii@3 { | ||
2134 | qlm-mode = "0x103,sgmii"; | ||
2135 | reg = <3> ; | ||
2136 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
2137 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
2138 | <3 0x11 0 0x00aa>, | ||
2139 | <3 0x12 0 0x4105>, | ||
2140 | <3 0x13 0 0x8a08>; | ||
2141 | }; | ||
2142 | xfi20: xfi@0 { | ||
2143 | qlm-mode = "0x100,xfi","0x100,xfi-10g-kr"; | ||
2144 | reg = <0> ; | ||
2145 | compatible = "cortina,cs4223-slice"; | ||
2146 | }; | ||
2147 | xfi21: xfi@1 { | ||
2148 | qlm-mode = "0x101,xfi","0x101,xfi-10g-kr"; | ||
2149 | reg = <1> ; | ||
2150 | compatible = "cortina,cs4223-slice"; | ||
2151 | }; | ||
2152 | xfi22: xfi@2 { | ||
2153 | qlm-mode = "0x102,xfi","0x102,xfi-10g-kr"; | ||
2154 | reg = <2> ; | ||
2155 | compatible = "cortina,cs4223-slice"; | ||
2156 | }; | ||
2157 | xfi23: xfi@3 { | ||
2158 | qlm-mode = "0x103,xfi","0x103,xfi-10g-kr"; | ||
2159 | reg = <3> ; | ||
2160 | compatible = "cortina,cs4223-slice"; | ||
2161 | }; | ||
2162 | xlaui20: xlaui@0 { | ||
2163 | qlm-mode = "0x100,xlaui","0x100,xlaui-40g-kr"; | ||
2164 | reg = <0> ; | ||
2165 | compatible = "cortina,cs4223-slice"; | ||
2166 | }; | ||
2167 | xaui20: xaui@0 { | ||
2168 | qlm-mode = "0x100,xaui"; | ||
2169 | reg = <0> ; | ||
2170 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
2171 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
2172 | }; | ||
2173 | rxaui20: rxaui@0 { | ||
2174 | qlm-mode = "0x100,rxaui"; | ||
2175 | reg = <0> ; | ||
2176 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
2177 | }; | ||
2178 | rxaui22: rxaui@1 { | ||
2179 | qlm-mode = "0x102,rxaui"; | ||
2180 | reg = <1> ; | ||
2181 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
2182 | }; | ||
2183 | }; | ||
2184 | |||
2185 | mdio@87e005003880 { | ||
2186 | compatible = "cavium,thunder-8890-mdio"; | ||
2187 | #address-cells = <1>; | ||
2188 | #size-cells = <0>; | ||
2189 | reg = <0x87e0 0x05003880 0x0 0x30>; | ||
2190 | |||
2191 | sgmii30: sgmii@4 { | ||
2192 | qlm-mode = "0x110,sgmii"; | ||
2193 | reg = <4> ; | ||
2194 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
2195 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
2196 | <3 0x11 0 0x00aa>, | ||
2197 | <3 0x12 0 0x4105>, | ||
2198 | <3 0x13 0 0x8a08>; | ||
2199 | }; | ||
2200 | sgmii31: sgmii@5 { | ||
2201 | qlm-mode = "0x111,sgmii"; | ||
2202 | reg = <5> ; | ||
2203 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
2204 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
2205 | <3 0x11 0 0x00aa>, | ||
2206 | <3 0x12 0 0x4105>, | ||
2207 | <3 0x13 0 0x8a08>; | ||
2208 | |||
2209 | }; | ||
2210 | sgmii32: sgmii@6 { | ||
2211 | qlm-mode = "0x112,sgmii"; | ||
2212 | reg = <6> ; | ||
2213 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
2214 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
2215 | <3 0x11 0 0x00aa>, | ||
2216 | <3 0x12 0 0x4105>, | ||
2217 | <3 0x13 0 0x8a08>; | ||
2218 | }; | ||
2219 | sgmii33: sgmii@7 { | ||
2220 | qlm-mode = "0x113,sgmii"; | ||
2221 | reg = <7> ; | ||
2222 | compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; | ||
2223 | marvell,reg-init = <3 0x10 0 0x8665>, | ||
2224 | <3 0x11 0 0x00aa>, | ||
2225 | <3 0x12 0 0x4105>, | ||
2226 | <3 0x13 0 0x8a08>; | ||
2227 | }; | ||
2228 | xfi30: xfi@0 { | ||
2229 | qlm-mode = "0x110,xfi","0x110,xfi-10g-kr"; | ||
2230 | reg = <0> ; | ||
2231 | compatible = "cortina,cs4223-slice"; | ||
2232 | }; | ||
2233 | xfi31: xfi@1 { | ||
2234 | qlm-mode = "0x111,xfi","0x111,xfi-10g-kr"; | ||
2235 | reg = <1> ; | ||
2236 | compatible = "cortina,cs4223-slice"; | ||
2237 | }; | ||
2238 | xfi32: xfi@2 { | ||
2239 | qlm-mode = "0x112,xfi","0x112,xfi-10g-kr"; | ||
2240 | reg = <2> ; | ||
2241 | compatible = "cortina,cs4223-slice"; | ||
2242 | }; | ||
2243 | xfi33: xfi@3 { | ||
2244 | qlm-mode = "0x113,xfi","0x113,xfi-10g-kr"; | ||
2245 | reg = <3> ; | ||
2246 | compatible = "cortina,cs4223-slice"; | ||
2247 | }; | ||
2248 | xlaui30: xlaui@0 { | ||
2249 | qlm-mode = "0x110,xlaui","0x110,xlaui-40g-kr"; | ||
2250 | reg = <0> ; | ||
2251 | compatible = "cortina,cs4223-slice"; | ||
2252 | }; | ||
2253 | xaui30: xaui@4 { | ||
2254 | qlm-mode = "0x110,xaui"; | ||
2255 | reg = <4> ; | ||
2256 | compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; | ||
2257 | broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; | ||
2258 | }; | ||
2259 | rxaui30: rxaui@0 { | ||
2260 | qlm-mode = "0x110,rxaui"; | ||
2261 | reg = <0> ; | ||
2262 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
2263 | }; | ||
2264 | rxaui32: rxaui@1 { | ||
2265 | qlm-mode = "0x112,rxaui"; | ||
2266 | reg = <1> ; | ||
2267 | compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; | ||
2268 | }; | ||
2269 | }; | ||
2270 | }; | ||
2271 | |||
2272 | |||
2273 | |||
2274 | bgx2 { | ||
2275 | #address-cells = <1>; | ||
2276 | #size-cells = <0>; | ||
2277 | reg = <0x8000 0 0 0 0>; /* DEVFN = 0x80 (16:0) */ | ||
2278 | /* typename+qlm+typenumber eg : | ||
2279 | sgmii+bgx0+sgmmi0 | ||
2280 | */ | ||
2281 | // SGMII | ||
2282 | sgmii@0 { | ||
2283 | reg = <0>; | ||
2284 | qlm-mode = "0x100,sgmii"; | ||
2285 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2286 | phy-handle = <&sgmii20>; | ||
2287 | }; | ||
2288 | sgmii@1 { | ||
2289 | reg = <1>; | ||
2290 | qlm-mode = "0x101,sgmii"; | ||
2291 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2292 | phy-handle = <&sgmii21>; | ||
2293 | }; | ||
2294 | sgmii@2 { | ||
2295 | reg = <2>; | ||
2296 | qlm-mode = "0x102,sgmii"; | ||
2297 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2298 | phy-handle = <&sgmii22>; | ||
2299 | }; | ||
2300 | sgmii@3 { | ||
2301 | reg = <3>; | ||
2302 | qlm-mode = "0x103,sgmii"; | ||
2303 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2304 | phy-handle = <&sgmii23>; | ||
2305 | }; | ||
2306 | xfi@0 { | ||
2307 | reg = <0>; | ||
2308 | qlm-mode = "0x100,xfi"; | ||
2309 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2310 | phy-handle = <&xfi20>; | ||
2311 | }; | ||
2312 | xfi@1 { | ||
2313 | reg = <1>; | ||
2314 | qlm-mode = "0x101,xfi"; | ||
2315 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2316 | phy-handle = <&xfi21>; | ||
2317 | }; | ||
2318 | xfi@2 { | ||
2319 | reg = <2>; | ||
2320 | qlm-mode = "0x102,xfi"; | ||
2321 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2322 | phy-handle = <&xfi22>; | ||
2323 | }; | ||
2324 | xfi@3 { | ||
2325 | reg = <3>; | ||
2326 | qlm-mode = "0x103,xfi"; | ||
2327 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2328 | phy-handle = <&xfi23>; | ||
2329 | }; | ||
2330 | // 10g-kr | ||
2331 | xfi-10g-kr@0 { | ||
2332 | reg = <0>; | ||
2333 | qlm-mode = "0x100,xfi-10g-kr"; | ||
2334 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2335 | phy-handle = <&xfi20>; | ||
2336 | }; | ||
2337 | xfi-10g-kr@1 { | ||
2338 | reg = <1>; | ||
2339 | qlm-mode = "0x101,xfi-10g-kr"; | ||
2340 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2341 | phy-handle = <&xfi21>; | ||
2342 | }; | ||
2343 | xfi-10g-kr@2 { | ||
2344 | reg = <2>; | ||
2345 | qlm-mode = "0x102,xfi-10g-kr"; | ||
2346 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2347 | phy-handle = <&xfi22>; | ||
2348 | }; | ||
2349 | xfi-10g-kr@3 { | ||
2350 | reg = <3>; | ||
2351 | qlm-mode = "0x103,xfi-10g-kr"; | ||
2352 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2353 | phy-handle = <&xfi23>; | ||
2354 | }; | ||
2355 | xlaui@0 { | ||
2356 | reg = <0>; | ||
2357 | qlm-mode = "0x100,xlaui"; | ||
2358 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2359 | phy-handle = <&xlaui20>; | ||
2360 | }; | ||
2361 | xlaui-40g-kr@0 { | ||
2362 | reg = <0>; | ||
2363 | qlm-mode = "0x100,xlaui-40g-kr"; | ||
2364 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2365 | phy-handle = <&xlaui20>; | ||
2366 | }; | ||
2367 | xaui@0 { | ||
2368 | reg = <0>; | ||
2369 | qlm-mode = "0x100,xaui"; | ||
2370 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2371 | phy-handle = <&xaui20>; | ||
2372 | }; | ||
2373 | rxaui@0 { | ||
2374 | reg = <0>; | ||
2375 | qlm-mode = "0x100,rxaui"; | ||
2376 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2377 | phy-handle = <&rxaui20>; | ||
2378 | }; | ||
2379 | rxaui@2 { | ||
2380 | reg = <2>; | ||
2381 | qlm-mode = "0x102,rxaui"; | ||
2382 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2383 | phy-handle = <&rxaui22>; | ||
2384 | }; | ||
2385 | }; | ||
2386 | |||
2387 | bgx3 { | ||
2388 | #address-cells = <1>; | ||
2389 | #size-cells = <0>; | ||
2390 | reg = <0x8100 0 0 0 0>; /* DEVFN = 0x81 (16:1) */ | ||
2391 | |||
2392 | sgmii@0 { | ||
2393 | reg = <0>; | ||
2394 | qlm-mode = "0x110,sgmii"; | ||
2395 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2396 | phy-handle = <&sgmii30>; /*"sgmmi"+bgx+no */ | ||
2397 | }; | ||
2398 | sgmii@1 { | ||
2399 | reg = <1>; | ||
2400 | qlm-mode = "0x111,sgmii"; | ||
2401 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2402 | phy-handle = <&sgmii31>; | ||
2403 | }; | ||
2404 | sgmii@2 { | ||
2405 | reg = <2>; | ||
2406 | qlm-mode = "0x112,sgmii"; | ||
2407 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2408 | phy-handle = <&sgmii32>; | ||
2409 | }; | ||
2410 | sgmii@3 { | ||
2411 | reg = <3>; | ||
2412 | qlm-mode = "0x113,sgmii"; | ||
2413 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2414 | phy-handle = <&sgmii33>; | ||
2415 | }; | ||
2416 | xfi@0 { | ||
2417 | reg = <0>; | ||
2418 | qlm-mode = "0x110,xfi"; | ||
2419 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2420 | phy-handle = <&xfi30>; | ||
2421 | }; | ||
2422 | xfi@1 { | ||
2423 | reg = <1>; | ||
2424 | qlm-mode = "0x111,xfi"; | ||
2425 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2426 | phy-handle = <&xfi31>; | ||
2427 | }; | ||
2428 | xfi@2 { | ||
2429 | reg = <2>; | ||
2430 | qlm-mode = "0x112,xfi"; | ||
2431 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2432 | phy-handle = <&xfi32>; | ||
2433 | }; | ||
2434 | xfi@3 { | ||
2435 | reg = <3>; | ||
2436 | qlm-mode = "0x113,xfi"; | ||
2437 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2438 | phy-handle = <&xfi33>; | ||
2439 | }; | ||
2440 | // 10g_kr | ||
2441 | xfi-10g-kr@0 { | ||
2442 | reg = <0>; | ||
2443 | qlm-mode = "0x110,xfi-10g-kr"; | ||
2444 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2445 | phy-handle = <&xfi30>; | ||
2446 | }; | ||
2447 | xfi-10g-kr@1 { | ||
2448 | reg = <1>; | ||
2449 | qlm-mode = "0x111,xfi-10g-kr"; | ||
2450 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2451 | phy-handle = <&xfi31>; | ||
2452 | }; | ||
2453 | xfi-10g-kr@2 { | ||
2454 | reg = <2>; | ||
2455 | qlm-mode = "0x112,xfi-10g-kr"; | ||
2456 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2457 | phy-handle = <&xfi32>; | ||
2458 | }; | ||
2459 | xfi-10g-kr@3 { | ||
2460 | reg = <3>; | ||
2461 | qlm-mode = "0x113,xfi-10g-kr"; | ||
2462 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2463 | phy-handle = <&xfi33>; | ||
2464 | }; | ||
2465 | xlaui@0 { | ||
2466 | reg = <0>; | ||
2467 | qlm-mode = "0x110,xlaui"; | ||
2468 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2469 | phy-handle = <&xlaui30>; | ||
2470 | }; | ||
2471 | xlaui-40g-kr@0 { | ||
2472 | reg = <0>; | ||
2473 | qlm-mode = "0x110,xlaui-40g-kr"; | ||
2474 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2475 | phy-handle = <&xlaui30>; | ||
2476 | }; | ||
2477 | xaui@0 { | ||
2478 | reg = <0>; | ||
2479 | qlm-mode = "0x110,xaui"; | ||
2480 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2481 | phy-handle = <&xaui30>; | ||
2482 | }; | ||
2483 | rxaui@0 { | ||
2484 | reg = <0>; | ||
2485 | qlm-mode = "0x110,rxaui"; | ||
2486 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2487 | phy-handle = <&rxaui30>; | ||
2488 | }; | ||
2489 | rxaui@2 { | ||
2490 | reg = <2>; | ||
2491 | qlm-mode = "0x112,rxaui"; | ||
2492 | local-mac-address = [ 00 00 00 00 00 00 ]; | ||
2493 | phy-handle = <&rxaui32>; | ||
2494 | }; | ||
2495 | }; | ||
2496 | }; | ||
2497 | }; | ||
2498 | |||
2499 | ecam5: pci@849000000000 { | ||
2500 | compatible = "cavium,pci-host-thunder-ecam"; | ||
2501 | device_type = "pci"; | ||
2502 | msi-parent = <&its1>; | ||
2503 | msi-map = <0 &its1 0x90000 0x10000>; | ||
2504 | bus-range = <0 31>; | ||
2505 | #size-cells = <2>; | ||
2506 | #address-cells = <3>; | ||
2507 | #stream-id-cells = <1>; | ||
2508 | dma-coherent; | ||
2509 | reg = <0x8490 0x00000000 0 0x02000000>; /* Configuration space */ | ||
2510 | ranges = <0x03000000 0x8100 0x00000000 0x8100 0x00000000 0x80 0x00000000>; /* mem ranges */ | ||
2511 | }; | ||
2512 | |||
2513 | ecam6: pci@84a000000000 { | ||
2514 | compatible = "cavium,pci-host-thunder-ecam"; | ||
2515 | device_type = "pci"; | ||
2516 | msi-parent = <&its1>; | ||
2517 | msi-map = <0 &its1 0xa0000 0x10000>; | ||
2518 | bus-range = <0 31>; | ||
2519 | #size-cells = <2>; | ||
2520 | #address-cells = <3>; | ||
2521 | #stream-id-cells = <1>; | ||
2522 | dma-coherent; | ||
2523 | reg = <0x84a0 0x00000000 0 0x02000000>; /* Configuration space */ | ||
2524 | ranges = <0x03000000 0x8420 0x00000000 0x8420 0x00000000 0x20 0x00000000>; /* mem ranges */ | ||
2525 | }; | ||
2526 | |||
2527 | ecam7: pci@84b000000000 { | ||
2528 | compatible = "cavium,pci-host-thunder-ecam"; | ||
2529 | device_type = "pci"; | ||
2530 | msi-parent = <&its1>; | ||
2531 | msi-map = <0 &its1 0xb0000 0x10000>; | ||
2532 | bus-range = <0 31>; | ||
2533 | #size-cells = <2>; | ||
2534 | #address-cells = <3>; | ||
2535 | #stream-id-cells = <1>; | ||
2536 | dma-coherent; | ||
2537 | reg = <0x84b0 0x00000000 0 0x02000000>; /* Configuration space */ | ||
2538 | ranges = <0x03000000 0x8180 0x00000000 0x8180 0x00000000 0x80 0x00000000>; /* mem ranges */ | ||
2539 | }; | ||
2540 | |||
2541 | pem6: pci@87e0c0000000 { | ||
2542 | compatible = "cavium,pci-host-thunder-pem"; | ||
2543 | device_type = "pci"; | ||
2544 | msi-parent = <&its1>; | ||
2545 | msi-map = <0 &its1 0x90000 0x10000>; | ||
2546 | bus-range = <0x1f 0x57>; | ||
2547 | #size-cells = <2>; | ||
2548 | #address-cells = <3>; | ||
2549 | #stream-id-cells = <1>; | ||
2550 | dma-coherent; | ||
2551 | reg = <0x8800 0x1f000000 0x0 0x39000000>, /* Configuration space */ | ||
2552 | <0x87e0 0xc0000000 0x0 0x01000000>; /* PEM space */ | ||
2553 | ranges = <0x01000000 0x00 0x00000000 0x8830 0x00000000 0x00 0x00010000>, /* I/O */ | ||
2554 | <0x03000000 0x00 0x10000000 0x8810 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
2555 | <0x43000000 0x10 0x00000000 0x8820 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
2556 | <0x03000000 0x87e0 0xc0000000 0x87e0 0xc0000000 0x00 0x01000000>; /* mem64 PEM */ | ||
2557 | |||
2558 | #interrupt-cells = <1>; | ||
2559 | interrupt-map-mask = <0 0 0 7>; | ||
2560 | interrupt-map = <0 0 0 1 &gic0 0 0 0 40 4>, /* INTA */ | ||
2561 | <0 0 0 2 &gic0 0 0 0 41 4>, /* INTB */ | ||
2562 | <0 0 0 3 &gic0 0 0 0 42 4>, /* INTC */ | ||
2563 | <0 0 0 4 &gic0 0 0 0 43 4>; /* INTD */ | ||
2564 | }; | ||
2565 | |||
2566 | pem7: pci@87e0c1000000 { | ||
2567 | compatible = "cavium,pci-host-thunder-pem"; | ||
2568 | device_type = "pci"; | ||
2569 | msi-parent = <&its1>; | ||
2570 | msi-map = <0 &its1 0x90000 0x10000>; | ||
2571 | bus-range = <0x57 0x8f>; | ||
2572 | #size-cells = <2>; | ||
2573 | #address-cells = <3>; | ||
2574 | #stream-id-cells = <1>; | ||
2575 | dma-coherent; | ||
2576 | reg = <0x8840 0x57000000 0x0 0x39000000>, /* Configuration space */ | ||
2577 | <0x87e0 0xc1000000 0x0 0x01000000>; /* PEM space */ | ||
2578 | ranges = <0x01000000 0x00 0x00010000 0x8870 0x00010000 0x00 0x00010000>, /* I/O */ | ||
2579 | <0x03000000 0x00 0x10000000 0x8850 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
2580 | <0x43000000 0x10 0x00000000 0x8860 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
2581 | <0x03000000 0x87e0 0xc1000000 0x87e0 0xc1000000 0x00 0x01000000>; /* mem64 PEM */ | ||
2582 | |||
2583 | #interrupt-cells = <1>; | ||
2584 | interrupt-map-mask = <0 0 0 7>; | ||
2585 | interrupt-map = <0 0 0 1 &gic0 0 0 0 44 4>, /* INTA */ | ||
2586 | <0 0 0 2 &gic0 0 0 0 45 4>, /* INTB */ | ||
2587 | <0 0 0 3 &gic0 0 0 0 46 4>, /* INTC */ | ||
2588 | <0 0 0 4 &gic0 0 0 0 47 4>; /* INTD */ | ||
2589 | }; | ||
2590 | |||
2591 | pem8: pci@87e0c2000000 { | ||
2592 | compatible = "cavium,pci-host-thunder-pem"; | ||
2593 | device_type = "pci"; | ||
2594 | msi-parent = <&its1>; | ||
2595 | msi-map = <0 &its1 0x90000 0x10000>; | ||
2596 | bus-range = <0x8f 0xc7>; | ||
2597 | #size-cells = <2>; | ||
2598 | #address-cells = <3>; | ||
2599 | #stream-id-cells = <1>; | ||
2600 | dma-coherent; | ||
2601 | reg = <0x8880 0x8f000000 0x0 0x39000000>, /* Configuration space */ | ||
2602 | <0x87e0 0xc2000000 0x0 0x01000000>; /* PEM space */ | ||
2603 | ranges = <0x01000000 0x00 0x00020000 0x88b0 0x00020000 0x00 0x00010000>, /* I/O */ | ||
2604 | <0x03000000 0x00 0x10000000 0x8890 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
2605 | <0x43000000 0x10 0x00000000 0x88a0 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
2606 | <0x03000000 0x87e0 0xc2000000 0x87e0 0xc2000000 0x00 0x01000000>; /* mem64 PEM */ | ||
2607 | |||
2608 | #interrupt-cells = <1>; | ||
2609 | interrupt-map-mask = <0 0 0 7>; | ||
2610 | interrupt-map = <0 0 0 1 &gic0 0 0 0 48 4>, /* INTA */ | ||
2611 | <0 0 0 2 &gic0 0 0 0 49 4>, /* INTB */ | ||
2612 | <0 0 0 3 &gic0 0 0 0 50 4>, /* INTC */ | ||
2613 | <0 0 0 4 &gic0 0 0 0 51 4>; /* INTD */ | ||
2614 | }; | ||
2615 | |||
2616 | pem9: pci@87e0c3000000 { | ||
2617 | compatible = "cavium,pci-host-thunder-pem"; | ||
2618 | device_type = "pci"; | ||
2619 | msi-parent = <&its1>; | ||
2620 | msi-map = <0 &its1 0xb0000 0x10000>; | ||
2621 | bus-range = <0x1f 0x57>; | ||
2622 | #size-cells = <2>; | ||
2623 | #address-cells = <3>; | ||
2624 | #stream-id-cells = <1>; | ||
2625 | dma-coherent; | ||
2626 | reg = <0x8900 0x1f000000 0x0 0x39000000>, /* Configuration space */ | ||
2627 | <0x87e0 0xc3000000 0x0 0x01000000>; /* PEM space */ | ||
2628 | ranges = <0x01000000 0x00 0x00030000 0x8930 0x00030000 0x00 0x00010000>, /* I/O */ | ||
2629 | <0x03000000 0x00 0x10000000 0x8910 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
2630 | <0x43000000 0x10 0x00000000 0x8920 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
2631 | <0x03000000 0x87e0 0xc3000000 0x87e0 0xc3000000 0x00 0x01000000>; /* mem64 PEM */ | ||
2632 | |||
2633 | #interrupt-cells = <1>; | ||
2634 | interrupt-map-mask = <0 0 0 7>; | ||
2635 | interrupt-map = <0 0 0 1 &gic0 0 0 0 52 4>, /* INTA */ | ||
2636 | <0 0 0 2 &gic0 0 0 0 53 4>, /* INTB */ | ||
2637 | <0 0 0 3 &gic0 0 0 0 54 4>, /* INTC */ | ||
2638 | <0 0 0 4 &gic0 0 0 0 55 4>; /* INTD */ | ||
2639 | }; | ||
2640 | |||
2641 | pem10: pci@87e0c4000000 { | ||
2642 | compatible = "cavium,pci-host-thunder-pem"; | ||
2643 | device_type = "pci"; | ||
2644 | msi-parent = <&its1>; | ||
2645 | msi-map = <0 &its1 0xb0000 0x10000>; | ||
2646 | bus-range = <0x57 0x8f>; | ||
2647 | #size-cells = <2>; | ||
2648 | #address-cells = <3>; | ||
2649 | #stream-id-cells = <1>; | ||
2650 | dma-coherent; | ||
2651 | reg = <0x8940 0x57000000 0x0 0x39000000>, /* Configuration space */ | ||
2652 | <0x87e0 0xc4000000 0x0 0x01000000>; /* PEM space */ | ||
2653 | ranges = <0x01000000 0x00 0x00040000 0x8970 0x00040000 0x00 0x00010000>, /* I/O */ | ||
2654 | <0x03000000 0x00 0x10000000 0x8950 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
2655 | <0x43000000 0x10 0x00000000 0x8960 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
2656 | <0x03000000 0x87e0 0xc4000000 0x87e0 0xc4000000 0x00 0x01000000>; /* mem64 PEM */ | ||
2657 | |||
2658 | #interrupt-cells = <1>; | ||
2659 | interrupt-map-mask = <0 0 0 7>; | ||
2660 | interrupt-map = <0 0 0 1 &gic0 0 0 0 56 4>, /* INTA */ | ||
2661 | <0 0 0 2 &gic0 0 0 0 57 4>, /* INTB */ | ||
2662 | <0 0 0 3 &gic0 0 0 0 58 4>, /* INTC */ | ||
2663 | <0 0 0 4 &gic0 0 0 0 59 4>; /* INTD */ | ||
2664 | }; | ||
2665 | |||
2666 | pem11: pci@87e0c5000000 { | ||
2667 | compatible = "cavium,pci-host-thunder-pem"; | ||
2668 | device_type = "pci"; | ||
2669 | msi-parent = <&its1>; | ||
2670 | msi-map = <0 &its1 0xb0000 0x10000>; | ||
2671 | bus-range = <0x8f 0xc7>; | ||
2672 | #size-cells = <2>; | ||
2673 | #address-cells = <3>; | ||
2674 | #stream-id-cells = <1>; | ||
2675 | dma-coherent; | ||
2676 | reg = <0x8980 0x8f000000 0x0 0x39000000>, /* Configuration space */ | ||
2677 | <0x87e0 0xc5000000 0x0 0x01000000>; /* PEM space */ | ||
2678 | ranges = <0x01000000 0x00 0x00050000 0x89b0 0x00050000 0x00 0x00010000>, /* I/O */ | ||
2679 | <0x03000000 0x00 0x10000000 0x8990 0x10000000 0x0f 0xf0000000>, /* mem64 */ | ||
2680 | <0x43000000 0x10 0x00000000 0x89a0 0x00000000 0x10 0x00000000>, /* mem64-pref */ | ||
2681 | <0x03000000 0x87e0 0xc5000000 0x87e0 0xc5000000 0x00 0x01000000>; /* mem64 PEM */ | ||
2682 | |||
2683 | #interrupt-cells = <1>; | ||
2684 | interrupt-map-mask = <0 0 0 7>; | ||
2685 | interrupt-map = <0 0 0 1 &gic0 0 0 0 60 4>, /* INTA */ | ||
2686 | <0 0 0 2 &gic0 0 0 0 61 4>, /* INTB */ | ||
2687 | <0 0 0 3 &gic0 0 0 0 62 4>, /* INTC */ | ||
2688 | <0 0 0 4 &gic0 0 0 0 63 4>; /* INTD */ | ||
2689 | }; | ||
2690 | }; | ||
2691 | |||
2692 | aliases { | ||
2693 | serial0 = &uaa0; | ||
2694 | serial1 = &uaa1; | ||
2695 | }; | ||
2696 | |||
2697 | chosen { | ||
2698 | stdout-path = "serial0:115200n8"; | ||
2699 | }; | ||
2700 | |||
2701 | memory@0 { | ||
2702 | device_type = "memory"; | ||
2703 | reg = <0x0 0x01400000 0x3 0xFEC00000>; | ||
2704 | /* socket 0 */ | ||
2705 | numa-node-id = <0>; | ||
2706 | }; | ||
2707 | |||
2708 | memory@10000000000 { | ||
2709 | device_type = "memory"; | ||
2710 | reg = <0x100 0x00400000 0x3 0xFFC00000>; | ||
2711 | /* socket 1 */ | ||
2712 | numa-node-id = <1>; | ||
2713 | }; | ||
2714 | |||
2715 | distance-map { | ||
2716 | compatible = "numa-distance-map-v1"; | ||
2717 | distance-matrix = <0 0 10>, | ||
2718 | <0 1 20>, | ||
2719 | <1 1 10>; | ||
2720 | }; | ||
2721 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/nas8104-linux.dts b/recipes-kernel/linux/linux-cavium/dts/nas8104-linux.dts deleted file mode 100644 index 5541daa..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/nas8104-linux.dts +++ /dev/null | |||
@@ -1,156 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn81xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | mdio-nexus@1,3 { | ||
56 | mdio0@87e005003800 { | ||
57 | sgmii00: sgmii00 { | ||
58 | qlm-mode = "0x000,sgmii"; | ||
59 | reg = <0x0> ; | ||
60 | compatible = "marvell,88e1510", "ethernet-phy-ieee802.3-c22"; | ||
61 | }; | ||
62 | sgmii01: sgmii01 { | ||
63 | qlm-mode = "0x001,sgmii"; | ||
64 | reg = <0x1> ; | ||
65 | compatible = "marvell,88e1510", "ethernet-phy-ieee802.3-c22"; | ||
66 | }; | ||
67 | }; | ||
68 | mdio1@87e005003880 { | ||
69 | xfi10: xfi10 { | ||
70 | qlm-mode = "0x010,xfi"; | ||
71 | reg = <0x0>; | ||
72 | compatible = "aquantia,aqr105", "ethernet-phy-ieee802.3-c45"; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
76 | |||
77 | bgx0 { | ||
78 | /* typename+qlm+typenumber eg : | ||
79 | sgmii+bgx0+sgmmi0 | ||
80 | */ | ||
81 | sgmii00 { | ||
82 | reg = <0>; | ||
83 | qlm-mode = "0x000,sgmii"; | ||
84 | local-mac-address = [00 00 00 00 00 00]; | ||
85 | phy-handle = <&sgmii00>; | ||
86 | }; | ||
87 | sgmii01 { | ||
88 | reg = <1>; | ||
89 | qlm-mode = "0x001,sgmii"; | ||
90 | local-mac-address = [00 00 00 00 00 00]; | ||
91 | phy-handle = <&sgmii01>; | ||
92 | }; | ||
93 | |||
94 | }; | ||
95 | |||
96 | bgx1 { | ||
97 | xfi10 { | ||
98 | reg = <0>; | ||
99 | qlm-mode = "0x010,xfi"; | ||
100 | local-mac-address = [00 00 00 00 00 00]; | ||
101 | phy-handle = <&xfi10>; | ||
102 | }; | ||
103 | }; | ||
104 | }; | ||
105 | |||
106 | &mmc_1_4 { | ||
107 | /* NOTE: the BDK is responsible for swapping the two slots. | ||
108 | * Unfortunately there does not appear to be any way to read the | ||
109 | * position of SW2-7 in software. | ||
110 | */ | ||
111 | mmc-slot@0 { | ||
112 | compatible = "mmc-slot"; | ||
113 | reg = <0>; | ||
114 | vmmc-supply = <&mmc_supply_3v3>; | ||
115 | max-frequency = <26000000>; | ||
116 | /* 1.8v is not supported */ | ||
117 | no-1-8-v; | ||
118 | /* Bus width is only 4 bits maximum */ | ||
119 | bus-width = <4>; | ||
120 | /* No write-protect switch is present */ | ||
121 | disable-wp; | ||
122 | /* There is no card detection available; polling must be used. */ | ||
123 | broken-cd; | ||
124 | /* High-speed mode is supported */ | ||
125 | cap-sd-highspeed; | ||
126 | }; | ||
127 | mmc-slot@1 { | ||
128 | compatible = "mmc-slot"; | ||
129 | reg = <1>; | ||
130 | vmmc-supply = <&mmc_supply_3v3>; | ||
131 | max-frequency = <26000000>; | ||
132 | mmc-ddr-3_3v; | ||
133 | /* 1.8v is not supported */ | ||
134 | no-1-8-v; | ||
135 | /* Bus width is only 8 bits maximum */ | ||
136 | bus-width = <8>; | ||
137 | /* No write-protect switch is present */ | ||
138 | disable-wp; | ||
139 | /* There is no card detection available; polling must be used. */ | ||
140 | broken-cd; | ||
141 | /* High-speed mode is supported */ | ||
142 | cap-mmc-highspeed; | ||
143 | /* eMMC device is soldered onto the board */ | ||
144 | non-removable; | ||
145 | }; | ||
146 | }; | ||
147 | |||
148 | &spi_7_0 { | ||
149 | flash@0 { | ||
150 | compatible = "macronix,mx25l3206e", "jedec,spi-nor"; | ||
151 | reg = <0x0>; | ||
152 | spi-max-frequency = <16000000>; | ||
153 | #address-cells = <1>; | ||
154 | #size-cells = <1>; | ||
155 | }; | ||
156 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/rbd8030-linux.dts b/recipes-kernel/linux/linux-cavium/dts/rbd8030-linux.dts deleted file mode 100644 index 2289707..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/rbd8030-linux.dts +++ /dev/null | |||
@@ -1,190 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn81xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | mdio-nexus@1,3 { | ||
56 | mdio0@87e005003800 { | ||
57 | rgmii00: rgmii00 { | ||
58 | reg = <0> ; | ||
59 | compatible = "vitesse,vsc8531", "ethernet-phy-ieee802.3-c22"; | ||
60 | }; | ||
61 | }; | ||
62 | mdio1@87e005003880 { | ||
63 | xfi11: xfi11 { | ||
64 | qlm-mode = "0x011,xfi"; | ||
65 | reg = <0>; | ||
66 | compatible = "aquantia,aqr105", "ethernet-phy-ieee802.3-c45"; | ||
67 | }; | ||
68 | }; | ||
69 | }; | ||
70 | |||
71 | rgx0 { | ||
72 | rgmii00 { | ||
73 | reg = <0>; | ||
74 | local-mac-address = [00 00 00 00 00 00]; | ||
75 | phy-handle = <&rgmii00>; | ||
76 | }; | ||
77 | }; | ||
78 | |||
79 | bgx0 { | ||
80 | /* typename+qlm+typenumber eg : | ||
81 | qsgmii+bgx0+sgmmi0 | ||
82 | */ | ||
83 | qsgmii00 { | ||
84 | reg = <0>; | ||
85 | qlm-mode = "0x000,qsgmii"; | ||
86 | local-mac-address = [00 00 00 00 00 00]; | ||
87 | cavium,disable-autonegotiation; | ||
88 | }; | ||
89 | qsgmii01 { | ||
90 | reg = <1>; | ||
91 | qlm-mode = "0x001,qsgmii"; | ||
92 | local-mac-address = [00 00 00 00 00 00]; | ||
93 | cavium,disable-autonegotiation; | ||
94 | }; | ||
95 | qsgmii02 { | ||
96 | reg = <2>; | ||
97 | qlm-mode = "0x002,qsgmii"; | ||
98 | local-mac-address = [00 00 00 00 00 00]; | ||
99 | cavium,disable-autonegotiation; | ||
100 | }; | ||
101 | qsgmii03 { | ||
102 | reg = <3>; | ||
103 | qlm-mode = "0x003,qsgmii"; | ||
104 | local-mac-address = [00 00 00 00 00 00]; | ||
105 | cavium,disable-autonegotiation; | ||
106 | }; | ||
107 | }; | ||
108 | |||
109 | bgx1 { | ||
110 | /* vitesse vsc7224 */ | ||
111 | xfi10 { | ||
112 | reg = <0>; | ||
113 | qlm-mode = "0x010,xfi"; | ||
114 | local-mac-address = [00 00 00 00 00 00]; | ||
115 | cavium,disable-autonegotiation; | ||
116 | }; | ||
117 | /* aquantia aqr107 */ | ||
118 | xfi11 { | ||
119 | reg = <1>; | ||
120 | qlm-mode = "0x011,xfi"; | ||
121 | local-mac-address = [00 00 00 00 00 00]; | ||
122 | phy-handle = <&xfi11>; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | |||
127 | &mmc_1_4 { | ||
128 | /* NOTE: the BDK is responsible for swapping the two slots. | ||
129 | * Unfortunately there does not appear to be any way to read the | ||
130 | * position of SW2-7 in software. | ||
131 | */ | ||
132 | mmc-slot@0 { | ||
133 | compatible = "mmc-slot"; | ||
134 | reg = <0>; | ||
135 | vmmc-supply = <&mmc_supply_3v3>; | ||
136 | max-frequency = <26000000>; | ||
137 | /* 1.8v is not supported */ | ||
138 | no-1-8-v; | ||
139 | /* Bus width is only 4 bits maximum */ | ||
140 | bus-width = <4>; | ||
141 | /* No write-protect switch is present */ | ||
142 | disable-wp; | ||
143 | /* There is no card detection available; polling must be used. */ | ||
144 | broken-cd; | ||
145 | /* High-speed mode is supported */ | ||
146 | cap-sd-highspeed; | ||
147 | /* speed up device probing */ | ||
148 | no-sdio; | ||
149 | no-mmc; | ||
150 | }; | ||
151 | mmc-slot@1 { | ||
152 | compatible = "mmc-slot"; | ||
153 | reg = <1>; | ||
154 | vmmc-supply = <&mmc_supply_3v3>; | ||
155 | max-frequency = <26000000>; | ||
156 | mmc-ddr-3_3v; | ||
157 | /* 1.8v is not supported */ | ||
158 | no-1-8-v; | ||
159 | /* Bus width is only 8 bits maximum */ | ||
160 | bus-width = <8>; | ||
161 | /* No write-protect switch is present */ | ||
162 | disable-wp; | ||
163 | /* There is no card detection available; polling must be used. */ | ||
164 | broken-cd; | ||
165 | /* High-speed mode is supported */ | ||
166 | cap-mmc-highspeed; | ||
167 | /* eMMC device is soldered onto the board */ | ||
168 | non-removable; | ||
169 | /* speed up device probing */ | ||
170 | no-sdio; | ||
171 | no-sd; | ||
172 | }; | ||
173 | }; | ||
174 | |||
175 | &i2c_9_0 { | ||
176 | rtc@68 { | ||
177 | compatible = "dallas,ds1337"; | ||
178 | reg = <0x68>; | ||
179 | }; | ||
180 | }; | ||
181 | |||
182 | &spi_7_0 { | ||
183 | flash@0 { | ||
184 | compatible = "micron,n25q128a13", "spi-flash"; | ||
185 | reg = <0x0>; | ||
186 | spi-max-frequency = <16000000>; | ||
187 | #address-cells = <1>; | ||
188 | #size-cells = <1>; | ||
189 | }; | ||
190 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/sff8104-linux.dts b/recipes-kernel/linux/linux-cavium/dts/sff8104-linux.dts deleted file mode 100644 index 1f45e25..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/sff8104-linux.dts +++ /dev/null | |||
@@ -1,317 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2016, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn81xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | mdio-nexus@1,3 { | ||
56 | mdio0@87e005003800 { | ||
57 | rgmii00: rgmii00 { | ||
58 | reg = <0> ; | ||
59 | compatible = "marvell,88e1510", "ethernet-phy-ieee802.3-c22"; | ||
60 | }; | ||
61 | |||
62 | qsgmii00: qsgmii00 { | ||
63 | qlm-mode = "0x000,qsgmii"; | ||
64 | reg = <0x10> ; | ||
65 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
66 | }; | ||
67 | qsgmii01: qsgmii01 { | ||
68 | qlm-mode = "0x001,qsgmii"; | ||
69 | reg = <0x11> ; | ||
70 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
71 | }; | ||
72 | qsgmii02: qsgmii02 { | ||
73 | qlm-mode = "0x002,qsgmii"; | ||
74 | reg = <0x12> ; | ||
75 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
76 | }; | ||
77 | qsgmii03: qsgmii03 { | ||
78 | qlm-mode = "0x003,qsgmii"; | ||
79 | reg = <0x13> ; | ||
80 | compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; | ||
81 | }; | ||
82 | }; | ||
83 | mdio1@87e005003880 { | ||
84 | xfi00: xfi00 { | ||
85 | qlm-mode = "0x000,xfi"; | ||
86 | reg = <0x0>; | ||
87 | compatible = "aquantia,aqr105", "ethernet-phy-ieee802.3-c45"; | ||
88 | }; | ||
89 | }; | ||
90 | }; | ||
91 | |||
92 | rgx0 { | ||
93 | rgmii00 { | ||
94 | reg = <0>; | ||
95 | local-mac-address = [00 00 00 00 00 00]; | ||
96 | phy-handle = <&rgmii00>; | ||
97 | }; | ||
98 | }; | ||
99 | |||
100 | bgx0 { | ||
101 | /* typename+qlm+typenumber eg : | ||
102 | qsgmii+bgx0+sgmmi0 | ||
103 | */ | ||
104 | qsgmii00 { | ||
105 | reg = <0>; | ||
106 | qlm-mode = "0x000,qsgmii"; | ||
107 | local-mac-address = [00 00 00 00 00 00]; | ||
108 | phy-handle = <&qsgmii00>; | ||
109 | }; | ||
110 | qsgmii01 { | ||
111 | reg = <1>; | ||
112 | qlm-mode = "0x001,qsgmii"; | ||
113 | local-mac-address = [00 00 00 00 00 00]; | ||
114 | phy-handle = <&qsgmii01>; | ||
115 | }; | ||
116 | qsgmii02 { | ||
117 | reg = <2>; | ||
118 | qlm-mode = "0x002,qsgmii"; | ||
119 | local-mac-address = [00 00 00 00 00 00]; | ||
120 | phy-handle = <&qsgmii02>; | ||
121 | }; | ||
122 | qsgmii03 { | ||
123 | reg = <3>; | ||
124 | qlm-mode = "0x003,qsgmii"; | ||
125 | local-mac-address = [00 00 00 00 00 00]; | ||
126 | phy-handle = <&qsgmii03>; | ||
127 | }; | ||
128 | |||
129 | xfi00 { | ||
130 | reg = <0>; | ||
131 | qlm-mode = "0x000,xfi"; | ||
132 | local-mac-address = [00 00 00 00 00 00]; | ||
133 | phy-handle = <&xfi00>; | ||
134 | }; | ||
135 | }; | ||
136 | |||
137 | bgx1 { | ||
138 | xfi10 { | ||
139 | reg = <0>; | ||
140 | qlm-mode = "0x010,xfi"; | ||
141 | local-mac-address = [00 00 00 00 00 00]; | ||
142 | }; | ||
143 | |||
144 | xfi11 { | ||
145 | reg = <1>; | ||
146 | qlm-mode = "0x011,xfi"; | ||
147 | local-mac-address = [00 00 00 00 00 00]; | ||
148 | }; | ||
149 | }; | ||
150 | |||
151 | |||
152 | }; | ||
153 | |||
154 | &mmc_1_4 { | ||
155 | /* NOTE: the BDK is responsible for swapping the two slots. | ||
156 | * Unfortunately there does not appear to be any way to read the | ||
157 | * position of SW2-7 in software. | ||
158 | */ | ||
159 | mmc-slot@0 { | ||
160 | compatible = "mmc-slot"; | ||
161 | reg = <0>; | ||
162 | vmmc-supply = <&mmc_supply_3v3>; | ||
163 | max-frequency = <26000000>; | ||
164 | /* 1.8v is not supported */ | ||
165 | no-1-8-v; | ||
166 | /* Bus width is only 4 bits maximum */ | ||
167 | bus-width = <4>; | ||
168 | /* No write-protect switch is present */ | ||
169 | disable-wp; | ||
170 | /* There is no card detection available; polling must be used. */ | ||
171 | broken-cd; | ||
172 | /* High-speed mode is supported */ | ||
173 | cap-sd-highspeed; | ||
174 | /* speed up device probing */ | ||
175 | no-sdio; | ||
176 | no-mmc; | ||
177 | }; | ||
178 | mmc-slot@1 { | ||
179 | compatible = "mmc-slot"; | ||
180 | reg = <1>; | ||
181 | vmmc-supply = <&mmc_supply_3v3>; | ||
182 | max-frequency = <26000000>; | ||
183 | mmc-ddr-3_3v; | ||
184 | /* 1.8v is not supported */ | ||
185 | no-1-8-v; | ||
186 | /* Bus width is only 8 bits maximum */ | ||
187 | bus-width = <8>; | ||
188 | /* No write-protect switch is present */ | ||
189 | disable-wp; | ||
190 | /* There is no card detection available; polling must be used. */ | ||
191 | broken-cd; | ||
192 | /* High-speed mode is supported */ | ||
193 | cap-mmc-highspeed; | ||
194 | /* eMMC device is soldered onto the board */ | ||
195 | non-removable; | ||
196 | /* speed up device probing */ | ||
197 | no-sdio; | ||
198 | no-sd; | ||
199 | }; | ||
200 | }; | ||
201 | |||
202 | &i2c_9_0 { | ||
203 | /* another pca9535 at 0x20 is only visible via jtag */ | ||
204 | gpio1: gpio-i2c@21 { | ||
205 | compatible = "nxp,pca9535"; | ||
206 | gpio-controller; | ||
207 | reg = <0x21>; | ||
208 | gpio_base = <48>; | ||
209 | pins = <48 16>; | ||
210 | ngpios = <16>; // standard | ||
211 | n_gpios = <16>; // deprecated, driver required | ||
212 | #gpio-cells = <2>; | ||
213 | }; | ||
214 | |||
215 | gpio2: gpio-i2c@22 { | ||
216 | compatible = "nxp,pca9535"; | ||
217 | gpio-controller; | ||
218 | reg = <0x22>; | ||
219 | gpio_base = <64>; | ||
220 | pins = <64 16>; | ||
221 | ngpios = <16>; // standard | ||
222 | n_gpios = <16>; // deprecated, driver required | ||
223 | #gpio-cells = <2>; | ||
224 | }; | ||
225 | |||
226 | mux@70 { | ||
227 | compatible = "nxp,pca9546"; | ||
228 | reg = <0x70>; | ||
229 | #address-cells = <1>; | ||
230 | #size-cells = <0>; | ||
231 | |||
232 | i2c@0 { | ||
233 | #address-cells = <1>; | ||
234 | #size-cells = <0>; | ||
235 | reg = <0>; | ||
236 | }; | ||
237 | |||
238 | i2c@1 { | ||
239 | #address-cells = <1>; | ||
240 | #size-cells = <0>; | ||
241 | reg = <1>; | ||
242 | }; | ||
243 | |||
244 | i2c@2 { | ||
245 | #address-cells = <1>; | ||
246 | #size-cells = <0>; | ||
247 | reg = <2>; | ||
248 | }; | ||
249 | }; | ||
250 | }; | ||
251 | |||
252 | &i2c_9_1 { | ||
253 | rom@54 { | ||
254 | compatible = "atmel,24c256"; | ||
255 | reg = <0x54>; | ||
256 | pagesize = <64>; | ||
257 | }; | ||
258 | |||
259 | rtc@68 { | ||
260 | compatible = "isil,isl12057"; | ||
261 | reg = <0x68>; | ||
262 | }; | ||
263 | }; | ||
264 | |||
265 | &spi_7_0 { | ||
266 | flash@0 { | ||
267 | compatible = "micron,n25q128a13", "spi-flash"; | ||
268 | reg = <0x0>; | ||
269 | spi-max-frequency = <16000000>; | ||
270 | #address-cells = <1>; | ||
271 | #size-cells = <1>; | ||
272 | }; | ||
273 | }; | ||
274 | |||
275 | &nfc { | ||
276 | nand@1 { | ||
277 | reg = <0x1>; | ||
278 | nand-ecc-mode = "none"; | ||
279 | }; | ||
280 | }; | ||
281 | |||
282 | &tdm { | ||
283 | // need corresponding mmc_etc.enable = <&gpio_6_0 39 1>; | ||
284 | pcm-enable-gpios = <&gpio_6_0 39 0>; | ||
285 | }; | ||
286 | |||
287 | &spi_7_0 { | ||
288 | spi-mux-gpios = <&gpio1 4 1>; | ||
289 | |||
290 | flash@0 { | ||
291 | compatible = "jedec,spi-nor"; | ||
292 | reg = <0x0>; | ||
293 | spi-max-frequency = <16000000>; | ||
294 | #address-cells = <1>; | ||
295 | #size-cells = <1>; | ||
296 | }; | ||
297 | |||
298 | slic@4 { | ||
299 | compatible = "silabs,si32260", "linux,spidev"; | ||
300 | reg = <4>; | ||
301 | spi-max-frequency = <2500000>; | ||
302 | reset-gpios = <&gpio1 0 1>; | ||
303 | irq-gpios = <&gpio_6_0 13>; | ||
304 | tx = <&tdm 0>; | ||
305 | rx = <&tdm 1>; | ||
306 | }; | ||
307 | |||
308 | framer@5 { | ||
309 | compatible = "maxim,ds26521", "linux,spidev"; | ||
310 | reg = <5>; | ||
311 | spi-max-frequency = <2500000>; | ||
312 | reset-gpios = <&gpio_6_0 11 1>; | ||
313 | irq-gpios = <&gpio_6_0 14>; | ||
314 | tx = <&tdm 2>; | ||
315 | rx = <&tdm 3>; | ||
316 | }; | ||
317 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/sff8304-linux.dts b/recipes-kernel/linux/linux-cavium/dts/sff8304-linux.dts deleted file mode 100644 index 705e712..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/sff8304-linux.dts +++ /dev/null | |||
@@ -1,241 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2017, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn83xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | bgx0 { | ||
56 | /* typename+qlm+typenumber eg : | ||
57 | sgmii+bgx0+sgmmi0 | ||
58 | */ | ||
59 | xfi00 { | ||
60 | reg = <0x0>; | ||
61 | qlm-mode = "0x000,xfi"; | ||
62 | local-mac-address = [00 00 00 00 00 00]; | ||
63 | }; | ||
64 | xfi01 { | ||
65 | reg = <0x1>; | ||
66 | qlm-mode = "0x001,xfi"; | ||
67 | local-mac-address = [00 00 00 00 00 00]; | ||
68 | }; | ||
69 | xfi02 { | ||
70 | reg = <0x2>; | ||
71 | qlm-mode = "0x002,xfi"; | ||
72 | local-mac-address = [00 00 00 00 00 00]; | ||
73 | }; | ||
74 | xfi03 { | ||
75 | reg = <0x3>; | ||
76 | qlm-mode = "0x003,xfi"; | ||
77 | local-mac-address = [00 00 00 00 00 00]; | ||
78 | }; | ||
79 | }; | ||
80 | bgx1 { | ||
81 | xfi-10g-kr10 { | ||
82 | reg = <0x0>; | ||
83 | qlm-mode = "0x010,xfi-10g-kr"; | ||
84 | local-mac-address = [00 00 00 00 00 00]; | ||
85 | }; | ||
86 | xfi-10g-kr11 { | ||
87 | reg = <0x1>; | ||
88 | qlm-mode = "0x011,xfi-10g-kr"; | ||
89 | local-mac-address = [00 00 00 00 00 00]; | ||
90 | }; | ||
91 | xfi-10g-kr12 { | ||
92 | reg = <0x2>; | ||
93 | qlm-mode = "0x012,xfi-10g-kr"; | ||
94 | local-mac-address = [00 00 00 00 00 00]; | ||
95 | }; | ||
96 | xfi-10g-kr13 { | ||
97 | reg = <0x3>; | ||
98 | qlm-mode = "0x013,xfi-10g-kr"; | ||
99 | local-mac-address = [00 00 00 00 00 00]; | ||
100 | }; | ||
101 | |||
102 | }; | ||
103 | }; | ||
104 | |||
105 | &mmc_1_4 { | ||
106 | /* Power on GPIO 8, active high, shared */ | ||
107 | power-gpios = <&gpio_6_0 8 0>; | ||
108 | |||
109 | mmc-slot@0 { | ||
110 | compatible = "mmc-slot"; | ||
111 | reg = <0>; | ||
112 | vmmc-supply = <&mmc_supply_3v3>; | ||
113 | max-frequency = <26000000>; | ||
114 | mmc-ddr-3_3v; | ||
115 | /* 1.8v is not supported */ | ||
116 | no-1-8-v; | ||
117 | /* Bus width is only 4 bits maximum */ | ||
118 | bus-width = <4>; | ||
119 | /* No write-protect switch is present */ | ||
120 | disable-wp; | ||
121 | /* There is no card detection available; polling must be used. */ | ||
122 | broken-cd; | ||
123 | /* High-speed mode is supported */ | ||
124 | cap-sd-highspeed; | ||
125 | /* speed up device probing */ | ||
126 | no-sdio; | ||
127 | no-mmc; | ||
128 | }; | ||
129 | mmc-slot@1 { | ||
130 | compatible = "mmc-slot"; | ||
131 | reg = <1>; | ||
132 | vmmc-supply = <&mmc_supply_3v3>; | ||
133 | max-frequency = <26000000>; | ||
134 | mmc-ddr-3_3v; | ||
135 | /* 1.8v is not supported */ | ||
136 | no-1-8-v; | ||
137 | /* Bus width is only 8 bits maximum */ | ||
138 | bus-width = <8>; | ||
139 | /* No write-protect switch is present */ | ||
140 | disable-wp; | ||
141 | /* There is no card detection available; polling must be used. */ | ||
142 | broken-cd; | ||
143 | /* High-speed mode is supported */ | ||
144 | cap-mmc-highspeed; | ||
145 | /* eMMC device is soldered onto the board */ | ||
146 | non-removable; | ||
147 | /* speed up device probing */ | ||
148 | no-sdio; | ||
149 | no-sd; | ||
150 | }; | ||
151 | }; | ||
152 | |||
153 | &i2c_9_0 { | ||
154 | rtc@68 { | ||
155 | compatible = "dallas,ds1337"; | ||
156 | reg = <0x68>; | ||
157 | rtcmodel = <1>; | ||
158 | }; | ||
159 | mux@70 { | ||
160 | compatible = "nxp,pca9547"; | ||
161 | reg = <0x70>; | ||
162 | #address-cells = <1>; | ||
163 | #size-cells = <0>; | ||
164 | |||
165 | i2c@0 { | ||
166 | #address-cells = <1>; | ||
167 | #size-cells = <0>; | ||
168 | reg = <0>; | ||
169 | eeprom@54 { | ||
170 | compatible = "atmel,24c256"; | ||
171 | reg = <0x54>; | ||
172 | pagesize = <64>; | ||
173 | }; | ||
174 | }; | ||
175 | |||
176 | i2c@1 { | ||
177 | #address-cells = <1>; | ||
178 | #size-cells = <0>; | ||
179 | reg = <1>; | ||
180 | eeprom@54 { | ||
181 | compatible = "atmel,24c256"; | ||
182 | reg = <0x54>; | ||
183 | pagesize = <64>; | ||
184 | }; | ||
185 | }; | ||
186 | |||
187 | i2c@2 { | ||
188 | #address-cells = <1>; | ||
189 | #size-cells = <0>; | ||
190 | reg = <2>; | ||
191 | eeprom@54 { | ||
192 | compatible = "atmel,24c256"; | ||
193 | reg = <0x54>; | ||
194 | pagesize = <64>; | ||
195 | }; | ||
196 | }; | ||
197 | |||
198 | i2c@3 { | ||
199 | #address-cells = <1>; | ||
200 | #size-cells = <0>; | ||
201 | reg = <3>; | ||
202 | eeprom@54 { | ||
203 | compatible = "atmel,24c256"; | ||
204 | reg = <0x54>; | ||
205 | pagesize = <64>; | ||
206 | }; | ||
207 | }; | ||
208 | |||
209 | i2c@4 { | ||
210 | #address-cells = <1>; | ||
211 | #size-cells = <0>; | ||
212 | reg = <4>; | ||
213 | eeprom@54 { | ||
214 | compatible = "atmel,24c256"; | ||
215 | reg = <0x54>; | ||
216 | pagesize = <64>; | ||
217 | }; | ||
218 | }; | ||
219 | |||
220 | i2c@5 { | ||
221 | #address-cells = <1>; | ||
222 | #size-cells = <0>; | ||
223 | reg = <5>; | ||
224 | eeprom@54 { | ||
225 | compatible = "atmel,24c256"; | ||
226 | reg = <0x54>; | ||
227 | pagesize = <64>; | ||
228 | }; | ||
229 | }; | ||
230 | }; | ||
231 | }; | ||
232 | |||
233 | &spi_7_0 { | ||
234 | flash@0 { | ||
235 | compatible = "jedec,spi-nor", "spi-flash"; | ||
236 | reg = <0x0>; | ||
237 | spi-max-frequency = <16000000>; | ||
238 | #address-cells = <1>; | ||
239 | #size-cells = <1>; | ||
240 | }; | ||
241 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium/dts/xpliant-cn83xx-linux.dts b/recipes-kernel/linux/linux-cavium/dts/xpliant-cn83xx-linux.dts deleted file mode 100644 index e11bc9d..0000000 --- a/recipes-kernel/linux/linux-cavium/dts/xpliant-cn83xx-linux.dts +++ /dev/null | |||
@@ -1,138 +0,0 @@ | |||
1 | /* | ||
2 | * Cavium Thunder DTS file - Thunder board description | ||
3 | * | ||
4 | * Copyright (C) 2017, Cavium Inc. | ||
5 | * | ||
6 | * This file is dual-licensed: you can use it either under the terms | ||
7 | * of the GPL or the X11 license, at your option. Note that this dual | ||
8 | * licensing only applies to this file, and not this project as a | ||
9 | * whole. | ||
10 | * | ||
11 | * a) This library is free software; you can redistribute it and/or | ||
12 | * modify it under the terms of the GNU General Public License as | ||
13 | * published by the Free Software Foundation; either version 2 of the | ||
14 | * License, or (at your option) any later version. | ||
15 | * | ||
16 | * This library is distributed in the hope that it will be useful, | ||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
19 | * GNU General Public License for more details. | ||
20 | * | ||
21 | * You should have received a copy of the GNU General Public | ||
22 | * License along with this library; if not, write to the Free | ||
23 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, | ||
24 | * MA 02110-1301 USA | ||
25 | * | ||
26 | * Or, alternatively, | ||
27 | * | ||
28 | * b) Permission is hereby granted, free of charge, to any person | ||
29 | * obtaining a copy of this software and associated documentation | ||
30 | * files (the "Software"), to deal in the Software without | ||
31 | * restriction, including without limitation the rights to use, | ||
32 | * copy, modify, merge, publish, distribute, sublicense, and/or | ||
33 | * sell copies of the Software, and to permit persons to whom the | ||
34 | * Software is furnished to do so, subject to the following | ||
35 | * conditions: | ||
36 | * | ||
37 | * The above copyright notice and this permission notice shall be | ||
38 | * included in all copies or substantial portions of the Software. | ||
39 | * | ||
40 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
41 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES | ||
42 | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
43 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT | ||
44 | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
45 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
46 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
47 | * OTHER DEALINGS IN THE SOFTWARE. | ||
48 | */ | ||
49 | |||
50 | /dts-v1/; | ||
51 | |||
52 | /include/ "cn83xx-linux.dtsi" | ||
53 | |||
54 | &mrml_bridge { | ||
55 | mdio-nexus@1,3 { | ||
56 | mdio0@87e005003800 { | ||
57 | sgmii20: sgmii20 { | ||
58 | qlm-mode = "0x020,sgmii"; | ||
59 | reg = <0x1f>; | ||
60 | compatible = "broadcom,bcm54616", "ethernet-phy-ieee802.3-c45"; | ||
61 | reset = <&gpio_6_0 34 0>; | ||
62 | }; | ||
63 | }; | ||
64 | }; | ||
65 | |||
66 | bgx2 { | ||
67 | /* typename+qlm+typenumber eg : | ||
68 | sgmii+bgx0+sgmmi0 | ||
69 | */ | ||
70 | sgmii20 { | ||
71 | reg = <0>; | ||
72 | qlm-mode = "0x020,sgmii"; | ||
73 | local-mac-address = [00 00 00 00 00 00]; | ||
74 | phy-handle = <&sgmii20>; | ||
75 | }; | ||
76 | }; | ||
77 | bgx3 { | ||
78 | xfi30 { | ||
79 | reg = <0>; | ||
80 | qlm-mode = "0x030,xfi"; | ||
81 | local-mac-address = [00 00 00 00 00 00]; | ||
82 | }; | ||
83 | }; | ||
84 | }; | ||
85 | |||
86 | &mmc_1_4 { | ||
87 | mmc-slot@0 { | ||
88 | compatible = "mmc-slot"; | ||
89 | reg = <0>; | ||
90 | vmmc-supply = <&mmc_supply_3v3>; | ||
91 | max-frequency = <26000000>; | ||
92 | /* 1.8v is not supported */ | ||
93 | no-1-8-v; | ||
94 | /* Bus width is only 4 bits maximum */ | ||
95 | bus-width = <4>; | ||
96 | /* No write-protect switch is present */ | ||
97 | disable-wp; | ||
98 | /* There is no card detection available; polling must be used. */ | ||
99 | broken-cd; | ||
100 | /* High-speed mode is supported */ | ||
101 | cap-sd-highspeed; | ||
102 | /* speed up device probing */ | ||
103 | no-sdio; | ||
104 | no-mmc; | ||
105 | }; | ||
106 | mmc-slot@1 { | ||
107 | compatible = "mmc-slot"; | ||
108 | reg = <1>; | ||
109 | vmmc-supply = <&mmc_supply_3v3>; | ||
110 | max-frequency = <26000000>; | ||
111 | mmc-ddr-3_3v; | ||
112 | /* 1.8v is not supported */ | ||
113 | no-1-8-v; | ||
114 | /* Bus width is only 8 bits maximum */ | ||
115 | bus-width = <8>; | ||
116 | /* No write-protect switch is present */ | ||
117 | disable-wp; | ||
118 | /* There is no card detection available; polling must be used. */ | ||
119 | broken-cd; | ||
120 | /* High-speed mode is supported */ | ||
121 | cap-mmc-highspeed; | ||
122 | /* eMMC device is soldered onto the board */ | ||
123 | non-removable; | ||
124 | /* speed up device probing */ | ||
125 | no-sdio; | ||
126 | no-sd; | ||
127 | }; | ||
128 | }; | ||
129 | |||
130 | &spi_7_0 { | ||
131 | flash@0 { | ||
132 | compatible = "micron,n25q1024", "jedec,spi-nor", "spi-flash"; | ||
133 | reg = <0x0>; | ||
134 | spi-max-frequency = <16000000>; | ||
135 | #address-cells = <1>; | ||
136 | #size-cells = <1>; | ||
137 | }; | ||
138 | }; | ||
diff --git a/recipes-kernel/linux/linux-cavium_4.9.bb b/recipes-kernel/linux/linux-cavium_4.9.bb deleted file mode 100644 index 2851845..0000000 --- a/recipes-kernel/linux/linux-cavium_4.9.bb +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | require linux-cavium_4.9.inc | ||
diff --git a/recipes-kernel/linux/linux-cavium_4.9.inc b/recipes-kernel/linux/linux-cavium_4.9.inc deleted file mode 100644 index 1758a30..0000000 --- a/recipes-kernel/linux/linux-cavium_4.9.inc +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | FILESEXTRAPATHS_prepend := "${THISDIR}/linux-cavium:" | ||
2 | |||
3 | require recipes-kernel/linux/linux-yocto.inc | ||
4 | require recipes-kernel/linux/linux-deploy-kconfig.inc | ||
5 | |||
6 | # board specific branches | ||
7 | KBRANCH_cn8304 ?= "cavium-4.9" | ||
8 | KBRANCH_qemuarm64 ?= "cavium-4.9" | ||
9 | |||
10 | SRCREV_machine_cn8304 ?= "972d2791f326533d1d03fe561da667ce150319b4" | ||
11 | SRCREV_machine_qemuarm64 ?= "972d2791f326533d1d03fe561da667ce150319b4" | ||
12 | SRCREV_metaenea ?= "85a500385477e07d144fc3fcfa4ec62e6aabc8e8" | ||
13 | KENEABRANCH = "cavium-4.9" | ||
14 | |||
15 | SRC_URI = "git://git@git.enea.com/linux/linux-cavium.git;protocol=ssh;name=machine;branch=${KBRANCH} \ | ||
16 | git://git@git.enea.com/linux/enea-kernel-cache.git;protocol=ssh;type=kmeta;name=metaenea;branch=${KENEABRANCH};destsuffix=enea-kernel-cache \ | ||
17 | file://dts \ | ||
18 | file://CVE-2016-10154.patch \ | ||
19 | file://CVE-2016-10208.patch \ | ||
20 | file://CVE-2017-5551.patch \ | ||
21 | file://CVE-2017-5577.patch \ | ||
22 | file://CVE-2017-5669.patch \ | ||
23 | file://CVE-2017-5970.patch \ | ||
24 | file://CVE-2017-5986.patch \ | ||
25 | file://CVE-2017-6214.patch \ | ||
26 | file://CVE-2017-6345.patch \ | ||
27 | file://CVE-2017-6348.patch \ | ||
28 | file://CVE-2017-6353.patch \ | ||
29 | file://CVE-2017-7487.patch \ | ||
30 | file://CVE-2017-7618.patch \ | ||
31 | file://CVE-2017-7645.patch \ | ||
32 | file://CVE-2017-8062.patch \ | ||
33 | file://CVE-2017-8063.patch \ | ||
34 | file://CVE-2017-8064.patch \ | ||
35 | file://CVE-2017-8066.patch \ | ||
36 | file://CVE-2017-8067.patch \ | ||
37 | file://CVE-2017-8068.patch \ | ||
38 | file://CVE-2017-8069.patch \ | ||
39 | file://CVE-2017-8831.patch \ | ||
40 | file://CVE-2017-1000364.patch \ | ||
41 | file://0001-openvswitch-fixed-kernel-crash.patch \ | ||
42 | file://CVE-2017-11176.patch \ | ||
43 | " | ||
44 | |||
45 | LINUX_KERNEL_TYPE = "tiny" | ||
46 | LINUX_VERSION ?= "4.9.0" | ||
47 | LINUX_VERSION_EXTENSION = "-cavium-${LINUX_KERNEL_TYPE}" | ||
48 | PV = "4.9-octeontx.sdk.6.1.0.p3.build.22" | ||
49 | |||
50 | KERNEL_DEVICETREE_cn8304 = "cavium/ebb8304-linux.dtb" | ||
51 | |||
52 | COMPATIBLE_MACHINE = "cn8304|qemuarm64" | ||
53 | KMACHINE_cn8304 = "cavium-cn8304" | ||
54 | KMACHINE_qemuarm64 = "cavium-cn8304" | ||
55 | |||
56 | KERNEL_FEATURES_append = " features/udev/udev.scc" | ||
57 | KERNEL_FEATURES_append_cn8304 += "features/net/thunderx/thunderx_nic.scc" | ||
58 | |||
59 | do_patch_append() { | ||
60 | install -D ${S}/arch/${ARCH}/boot/dts | ||
61 | install ${WORKDIR}/dts/* ${S}/arch/${ARCH}/boot/dts/cavium/ | ||
62 | } | ||
diff --git a/recipes-kernel/linux/linux-ls1-common.inc b/recipes-kernel/linux/linux-ls1-common.inc deleted file mode 100644 index 06ba19c..0000000 --- a/recipes-kernel/linux/linux-ls1-common.inc +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | require recipes-kernel/linux/enea-common.inc | ||
2 | |||
3 | ENEA_KERNEL_FRAGMENTS += "\ | ||
4 | cfg/localversion.cfg \ | ||
5 | cfg/with_modules.cfg \ | ||
6 | cfg/embedded.cfg \ | ||
7 | cfg/preempt.cfg \ | ||
8 | cfg/root_nfs.cfg \ | ||
9 | cfg/devtmpfs.cfg \ | ||
10 | cfg/bootlogd.cfg \ | ||
11 | cfg/mtd_tests.cfg \ | ||
12 | cfg/latencytop.cfg \ | ||
13 | cfg/ltp.cfg \ | ||
14 | cfg/fuse.cfg \ | ||
15 | cfg/dpa.cfg \ | ||
16 | cfg/kprobes.cfg \ | ||
17 | cfg/i2c.cfg \ | ||
18 | cfg/lttng.cfg \ | ||
19 | cfg/powertop.cfg \ | ||
20 | cfg/systemtap.cfg \ | ||
21 | cfg/kgdb.cfg \ | ||
22 | cfg/gpio.cfg \ | ||
23 | cfg/cpusets.cfg \ | ||
24 | cfg/nfsdv3.cfg \ | ||
25 | cfg/nfsdv4.cfg \ | ||
26 | cfg/nls_cp437.cfg \ | ||
27 | cfg/ikconfig.cfg \ | ||
28 | " | ||
diff --git a/recipes-kernel/linux/linux-ls1/0001-fsnotify-fix-oops-in-fsnotify_clear_marks_by_group_f.patch b/recipes-kernel/linux/linux-ls1/0001-fsnotify-fix-oops-in-fsnotify_clear_marks_by_group_f.patch deleted file mode 100644 index 250c8db..0000000 --- a/recipes-kernel/linux/linux-ls1/0001-fsnotify-fix-oops-in-fsnotify_clear_marks_by_group_f.patch +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | From 8f2f3eb59dff4ec538de55f2e0592fec85966aab Mon Sep 17 00:00:00 2001 | ||
2 | From: Jan Kara <jack@suse.com> | ||
3 | Date: Thu, 6 Aug 2015 15:46:42 -0700 | ||
4 | Subject: [PATCH] fsnotify: fix oops in fsnotify_clear_marks_by_group_flags() | ||
5 | |||
6 | fsnotify_clear_marks_by_group_flags() can race with | ||
7 | fsnotify_destroy_marks() so that when fsnotify_destroy_mark_locked() | ||
8 | drops mark_mutex, a mark from the list iterated by | ||
9 | fsnotify_clear_marks_by_group_flags() can be freed and thus the next | ||
10 | entry pointer we have cached may become stale and we dereference free | ||
11 | memory. | ||
12 | |||
13 | Fix the problem by first moving marks to free to a special private list | ||
14 | and then always free the first entry in the special list. This method | ||
15 | is safe even when entries from the list can disappear once we drop the | ||
16 | lock. | ||
17 | |||
18 | Upstream-Status: Backported | ||
19 | |||
20 | Signed-off-by: Jan Kara <jack@suse.com> | ||
21 | Reported-by: Ashish Sangwan <a.sangwan@samsung.com> | ||
22 | Reviewed-by: Ashish Sangwan <a.sangwan@samsung.com> | ||
23 | Cc: Lino Sanfilippo <LinoSanfilippo@gmx.de> | ||
24 | Cc: <stable@vger.kernel.org> | ||
25 | Signed-off-by: Andrew Morton <akpm@linux-foundation.org> | ||
26 | Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> | ||
27 | Signed-off-by: Adrian Dudau <adrian.dudau@enea.com> | ||
28 | --- | ||
29 | fs/notify/mark.c | 30 +++++++++++++++++++++++++----- | ||
30 | 1 file changed, 25 insertions(+), 5 deletions(-) | ||
31 | |||
32 | diff --git a/fs/notify/mark.c b/fs/notify/mark.c | ||
33 | index 92e48c7..39ddcaf 100644 | ||
34 | --- a/fs/notify/mark.c | ||
35 | +++ b/fs/notify/mark.c | ||
36 | @@ -412,16 +412,36 @@ void fsnotify_clear_marks_by_group_flags(struct fsnotify_group *group, | ||
37 | unsigned int flags) | ||
38 | { | ||
39 | struct fsnotify_mark *lmark, *mark; | ||
40 | + LIST_HEAD(to_free); | ||
41 | |||
42 | + /* | ||
43 | + * We have to be really careful here. Anytime we drop mark_mutex, e.g. | ||
44 | + * fsnotify_clear_marks_by_inode() can come and free marks. Even in our | ||
45 | + * to_free list so we have to use mark_mutex even when accessing that | ||
46 | + * list. And freeing mark requires us to drop mark_mutex. So we can | ||
47 | + * reliably free only the first mark in the list. That's why we first | ||
48 | + * move marks to free to to_free list in one go and then free marks in | ||
49 | + * to_free list one by one. | ||
50 | + */ | ||
51 | mutex_lock_nested(&group->mark_mutex, SINGLE_DEPTH_NESTING); | ||
52 | list_for_each_entry_safe(mark, lmark, &group->marks_list, g_list) { | ||
53 | - if (mark->flags & flags) { | ||
54 | - fsnotify_get_mark(mark); | ||
55 | - fsnotify_destroy_mark_locked(mark, group); | ||
56 | - fsnotify_put_mark(mark); | ||
57 | - } | ||
58 | + if (mark->flags & flags) | ||
59 | + list_move(&mark->g_list, &to_free); | ||
60 | } | ||
61 | mutex_unlock(&group->mark_mutex); | ||
62 | + | ||
63 | + while (1) { | ||
64 | + mutex_lock_nested(&group->mark_mutex, SINGLE_DEPTH_NESTING); | ||
65 | + if (list_empty(&to_free)) { | ||
66 | + mutex_unlock(&group->mark_mutex); | ||
67 | + break; | ||
68 | + } | ||
69 | + mark = list_first_entry(&to_free, struct fsnotify_mark, g_list); | ||
70 | + fsnotify_get_mark(mark); | ||
71 | + fsnotify_destroy_mark_locked(mark, group); | ||
72 | + mutex_unlock(&group->mark_mutex); | ||
73 | + fsnotify_put_mark(mark); | ||
74 | + } | ||
75 | } | ||
76 | |||
77 | /* | ||
78 | -- | ||
79 | 1.9.1 | ||
80 | |||
diff --git a/recipes-kernel/linux/linux-ls1/0002-watchdog-fix-errata-err004346.patch b/recipes-kernel/linux/linux-ls1/0002-watchdog-fix-errata-err004346.patch deleted file mode 100644 index a69ef9b..0000000 --- a/recipes-kernel/linux/linux-ls1/0002-watchdog-fix-errata-err004346.patch +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | From ff7712de39c333cf888e497a90f88601ef3e228f Mon Sep 17 00:00:00 2001 | ||
2 | From: Stefan Sicleru <stefan.sicleru@enea.com> | ||
3 | Date: Fri, 10 Jun 2016 10:42:28 +0200 | ||
4 | Subject: [PATCH] watchdog: fix errata ERR004346 | ||
5 | |||
6 | Due to errata ERR004346 (WDOG: SRS bit requires to be written twice), two | ||
7 | additional writes are added to ensure that at least two writes occur within | ||
8 | one period of the 32kHz clock. | ||
9 | |||
10 | Replace __raw_writew() calls with *_relaxed() calls in order to be | ||
11 | endian-safe. | ||
12 | |||
13 | Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com> | ||
14 | --- | ||
15 | arch/arm/mach-imx/system.c | 5 ++++- | ||
16 | 1 file changed, 4 insertions(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/arch/arm/mach-imx/system.c b/arch/arm/mach-imx/system.c | ||
19 | index 80c177c..6e09ac0 100644 | ||
20 | --- a/arch/arm/mach-imx/system.c | ||
21 | +++ b/arch/arm/mach-imx/system.c | ||
22 | @@ -51,7 +51,10 @@ void mxc_restart(enum reboot_mode mode, const char *cmd) | ||
23 | wcr_enable = (1 << 2); | ||
24 | |||
25 | /* Assert SRS signal */ | ||
26 | - __raw_writew(wcr_enable, wdog_base); | ||
27 | + | ||
28 | + writew_relaxed(wcr_enable, wdog_base); | ||
29 | + writew_relaxed(wcr_enable, wdog_base); | ||
30 | + writew_relaxed(wcr_enable, wdog_base); | ||
31 | |||
32 | /* wait for reset to assert... */ | ||
33 | mdelay(500); | ||
34 | -- | ||
35 | 1.9.1 | ||
diff --git a/recipes-kernel/linux/linux-ls1/ls1021aiot.dts b/recipes-kernel/linux/linux-ls1/ls1021aiot.dts deleted file mode 100644 index d8ba94f..0000000 --- a/recipes-kernel/linux/linux-ls1/ls1021aiot.dts +++ /dev/null | |||
@@ -1,1102 +0,0 @@ | |||
1 | /dts-v1/; | ||
2 | |||
3 | / { | ||
4 | #address-cells = <0x2>; | ||
5 | #size-cells = <0x2>; | ||
6 | compatible = "fsl,ls1021a"; | ||
7 | interrupt-parent = <0x1>; | ||
8 | model = "LS1021A IOT Board"; | ||
9 | |||
10 | chosen { | ||
11 | }; | ||
12 | |||
13 | aliases { | ||
14 | serial0 = "/soc/serial@2950000"; | ||
15 | serial1 = "/soc/serial@2960000"; | ||
16 | serial2 = "/soc/serial@2970000"; | ||
17 | serial3 = "/soc/serial@2980000"; | ||
18 | serial4 = "/soc/serial@2990000"; | ||
19 | serial5 = "/soc/serial@29a0000"; | ||
20 | ethernet0 = "/soc/ethernet@2d10000"; | ||
21 | ethernet1 = "/soc/ethernet@2d50000"; | ||
22 | ethernet2 = "/soc/ethernet@2d90000"; | ||
23 | sysclk = "/soc/clocking@1ee1000/sysclk"; | ||
24 | gpio0 = "/soc/gpio@2300000"; | ||
25 | gpio1 = "/soc/gpio@2310000"; | ||
26 | gpio2 = "/soc/gpio@2320000"; | ||
27 | gpio3 = "/soc/gpio@2330000"; | ||
28 | crypto = "/soc/crypto@1700000"; | ||
29 | }; | ||
30 | |||
31 | memory { | ||
32 | device_type = "memory"; | ||
33 | reg = <0x0 0x0 0x0 0x0>; | ||
34 | }; | ||
35 | |||
36 | memory@80000000 { | ||
37 | device_type = "memory"; | ||
38 | reg = <0x0 0x80000000 0x0 0x20000000>; | ||
39 | }; | ||
40 | |||
41 | cpus { | ||
42 | #address-cells = <0x1>; | ||
43 | #size-cells = <0x0>; | ||
44 | |||
45 | cpu@f00 { | ||
46 | compatible = "arm,cortex-a7"; | ||
47 | device_type = "cpu"; | ||
48 | reg = <0xf00>; | ||
49 | clocks = <0x2>; | ||
50 | }; | ||
51 | |||
52 | cpu@f01 { | ||
53 | compatible = "arm,cortex-a7"; | ||
54 | device_type = "cpu"; | ||
55 | reg = <0xf01>; | ||
56 | clocks = <0x2>; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | timer { | ||
61 | compatible = "arm,armv7-timer"; | ||
62 | interrupts = <0x1 0xd 0x308 0x1 0xe 0x308 0x1 0xb 0x308 0x1 0xa 0x308>; | ||
63 | }; | ||
64 | |||
65 | pmu { | ||
66 | compatible = "arm,cortex-a7-pmu"; | ||
67 | interrupts = <0x0 0x8a 0x4 0x0 0x8b 0x4>; | ||
68 | }; | ||
69 | |||
70 | soc { | ||
71 | compatible = "simple-bus"; | ||
72 | #address-cells = <0x2>; | ||
73 | #size-cells = <0x2>; | ||
74 | device_type = "soc"; | ||
75 | interrupt-parent = <0x1>; | ||
76 | ranges; | ||
77 | |||
78 | interrupt-controller@1400000 { | ||
79 | compatible = "arm,cortex-a15-gic"; | ||
80 | #interrupt-cells = <0x3>; | ||
81 | interrupt-controller; | ||
82 | reg = <0x0 0x1401000 0x0 0x1000 0x0 0x1402000 0x0 0x1000 0x0 0x1404000 0x0 0x2000 0x0 0x1406000 0x0 0x2000>; | ||
83 | interrupts = <0x1 0x9 0x304>; | ||
84 | linux,phandle = <0x1>; | ||
85 | phandle = <0x1>; | ||
86 | }; | ||
87 | |||
88 | ifc@1530000 { | ||
89 | compatible = "fsl,ifc", "simple-bus"; | ||
90 | reg = <0x0 0x1530000 0x0 0x10000>; | ||
91 | interrupts = <0x0 0x4b 0x4>; | ||
92 | status = "disabled"; | ||
93 | }; | ||
94 | |||
95 | dcfg@1ee0000 { | ||
96 | compatible = "fsl,ls1021a-dcfg"; | ||
97 | reg = <0x0 0x1ee0000 0x0 0x10000>; | ||
98 | }; | ||
99 | |||
100 | quadspi@1550000 { | ||
101 | compatible = "fsl,ls1-qspi"; | ||
102 | #address-cells = <0x1>; | ||
103 | #size-cells = <0x0>; | ||
104 | reg = <0x0 0x1550000 0x0 0x10000 0x0 0x40000000 0x0 0x4000000>; | ||
105 | reg-names = "QuadSPI", "QuadSPI-memory"; | ||
106 | interrupts = <0x0 0x83 0x4>; | ||
107 | clock-names = "qspi_en", "qspi"; | ||
108 | clocks = <0x3 0x1 0x3 0x1>; | ||
109 | big-endian; | ||
110 | amba-base = <0x40000000>; | ||
111 | status = "disabled"; | ||
112 | num-cs = <0x2>; | ||
113 | bus-num = <0x0>; | ||
114 | fsl,spi-num-chipselects = <0x2>; | ||
115 | fsl,spi-flash-chipselects = <0x0>; | ||
116 | |||
117 | s25fl128s@0 { | ||
118 | #address-cells = <0x1>; | ||
119 | #size-cells = <0x1>; | ||
120 | compatible = "spansion,s25fl129p1"; | ||
121 | spi-max-frequency = <0x1312d00>; | ||
122 | reg = <0x0>; | ||
123 | |||
124 | partition@0 { | ||
125 | label = "s25fl128s-0"; | ||
126 | reg = <0x0 0x1000000>; | ||
127 | }; | ||
128 | }; | ||
129 | |||
130 | s25fl128s@1 { | ||
131 | #address-cells = <0x1>; | ||
132 | #size-cells = <0x1>; | ||
133 | compatible = "spansion,s25fl129p1"; | ||
134 | spi-max-frequency = <0x1312d00>; | ||
135 | reg = <0x1>; | ||
136 | |||
137 | partition@0x0 { | ||
138 | label = "s25fl128s-1"; | ||
139 | reg = <0x0 0x1000000>; | ||
140 | }; | ||
141 | }; | ||
142 | }; | ||
143 | |||
144 | esdhc@1560000 { | ||
145 | compatible = "fsl,ls1021a-esdhc", "fsl,esdhc"; | ||
146 | reg = <0x0 0x1560000 0x0 0x10000>; | ||
147 | interrupts = <0x0 0x5e 0x4>; | ||
148 | clock-frequency = <0x0>; | ||
149 | voltage-ranges = <0x708 0x708 0xce4 0xce4>; | ||
150 | sdhci,auto-cmd12; | ||
151 | big-endian; | ||
152 | bus-width = <0x4>; | ||
153 | sleep = <0x4 0x80 0x0>; | ||
154 | status = "disabled"; | ||
155 | }; | ||
156 | |||
157 | sata@3200000 { | ||
158 | compatible = "fsl,ls1021a-ahci"; | ||
159 | reg = <0x0 0x3200000 0x0 0x10000>; | ||
160 | interrupts = <0x0 0x65 0x4>; | ||
161 | clocks = <0x3 0x1>; | ||
162 | }; | ||
163 | |||
164 | scfg@1570000 { | ||
165 | compatible = "fsl,ls1021a-scfg", "syscon"; | ||
166 | reg = <0x0 0x1570000 0x0 0x10000>; | ||
167 | big-endian; | ||
168 | linux,phandle = <0xc>; | ||
169 | phandle = <0xc>; | ||
170 | }; | ||
171 | |||
172 | crypto@1700000 { | ||
173 | compatible = "fsl,sec-v5.3", "fsl,sec-v5.0", "fsl,sec-v4.0"; | ||
174 | fsl,sec-era = <0x4>; | ||
175 | #address-cells = <0x1>; | ||
176 | #size-cells = <0x1>; | ||
177 | reg = <0x0 0x1700000 0x0 0x100000>; | ||
178 | ranges = <0x0 0x0 0x1700000 0x100000>; | ||
179 | interrupts = <0x0 0x6b 0x4>; | ||
180 | |||
181 | jr@10000 { | ||
182 | compatible = "fsl,sec-v5.3-job-ring", "fsl,sec-v5.0-job-ring", "fsl,sec-v4.0-job-ring"; | ||
183 | reg = <0x10000 0x10000>; | ||
184 | interrupts = <0x0 0x67 0x4>; | ||
185 | }; | ||
186 | |||
187 | jr@20000 { | ||
188 | compatible = "fsl,sec-v5.3-job-ring", "fsl,sec-v5.0-job-ring", "fsl,sec-v4.0-job-ring"; | ||
189 | reg = <0x20000 0x10000>; | ||
190 | interrupts = <0x0 0x68 0x4>; | ||
191 | }; | ||
192 | |||
193 | jr@30000 { | ||
194 | compatible = "fsl,sec-v5.3-job-ring", "fsl,sec-v5.0-job-ring", "fsl,sec-v4.0-job-ring"; | ||
195 | reg = <0x30000 0x10000>; | ||
196 | interrupts = <0x0 0x69 0x4>; | ||
197 | }; | ||
198 | |||
199 | jr@40000 { | ||
200 | compatible = "fsl,sec-v5.3-job-ring", "fsl,sec-v5.0-job-ring", "fsl,sec-v4.0-job-ring"; | ||
201 | reg = <0x40000 0x10000>; | ||
202 | interrupts = <0x0 0x6a 0x4>; | ||
203 | }; | ||
204 | }; | ||
205 | |||
206 | clocking@1ee1000 { | ||
207 | compatible = "fsl,ls1021a-clockgen"; | ||
208 | reg = <0x0 0x1ee1000 0x0 0x10000>; | ||
209 | #address-cells = <0x1>; | ||
210 | #size-cells = <0x0>; | ||
211 | |||
212 | sysclk { | ||
213 | compatible = "fixed-clock"; | ||
214 | #clock-cells = <0x0>; | ||
215 | clock-frequency = <0x5f5e100>; | ||
216 | clock-output-names = "sysclk"; | ||
217 | linux,phandle = <0x5>; | ||
218 | phandle = <0x5>; | ||
219 | }; | ||
220 | |||
221 | pll1@800 { | ||
222 | compatible = "fsl,core-pll-clock"; | ||
223 | #clock-cells = <0x1>; | ||
224 | reg = <0x800>; | ||
225 | clocks = <0x5>; | ||
226 | clock-output-names = "cga-pll1", "cga-pll1-div2", "cga-pll1-div4"; | ||
227 | linux,phandle = <0x6>; | ||
228 | phandle = <0x6>; | ||
229 | }; | ||
230 | |||
231 | pll@c00 { | ||
232 | compatible = "fsl,core-pll-clock"; | ||
233 | #clock-cells = <0x1>; | ||
234 | reg = <0xc00>; | ||
235 | clocks = <0x5>; | ||
236 | clock-output-names = "platform-clk", "platform-clk-div2"; | ||
237 | linux,phandle = <0x3>; | ||
238 | phandle = <0x3>; | ||
239 | }; | ||
240 | |||
241 | clk0c0@0 { | ||
242 | compatible = "fsl,core-mux-clock"; | ||
243 | #clock-cells = <0x0>; | ||
244 | reg = <0x0>; | ||
245 | clock-names = "pll1cga", "pll1cga-div2", "pll1cga-div4"; | ||
246 | clocks = <0x6 0x0 0x6 0x1 0x6 0x2>; | ||
247 | clock-output-names = "cluster1-clk"; | ||
248 | linux,phandle = <0x2>; | ||
249 | phandle = <0x2>; | ||
250 | }; | ||
251 | }; | ||
252 | |||
253 | rcpm@1ee2000 { | ||
254 | compatible = "fsl,ls1021a-rcpm", "fsl,qoriq-rcpm-2.1"; | ||
255 | reg = <0x0 0x1ee2000 0x0 0x10000>; | ||
256 | linux,phandle = <0x4>; | ||
257 | phandle = <0x4>; | ||
258 | }; | ||
259 | |||
260 | dspi@2100000 { | ||
261 | compatible = "fsl,vf610-dspi"; | ||
262 | #address-cells = <0x1>; | ||
263 | #size-cells = <0x0>; | ||
264 | reg = <0x0 0x2100000 0x0 0x10000>; | ||
265 | interrupts = <0x0 0x60 0x4>; | ||
266 | clock-names = "dspi"; | ||
267 | clocks = <0x3 0x1>; | ||
268 | spi-num-chipselects = <0x5>; | ||
269 | big-endian; | ||
270 | tcfq-mode; | ||
271 | status = "disabled"; | ||
272 | }; | ||
273 | |||
274 | dspi@2110000 { | ||
275 | compatible = "fsl,vf610-dspi"; | ||
276 | #address-cells = <0x1>; | ||
277 | #size-cells = <0x0>; | ||
278 | reg = <0x0 0x2110000 0x0 0x10000>; | ||
279 | interrupts = <0x0 0x61 0x4>; | ||
280 | clock-names = "dspi"; | ||
281 | clocks = <0x3 0x1>; | ||
282 | spi-num-chipselects = <0x5>; | ||
283 | big-endian; | ||
284 | tcfq-mode; | ||
285 | status = "disabled"; | ||
286 | }; | ||
287 | |||
288 | i2c@2180000 { | ||
289 | compatible = "fsl,vf610-i2c"; | ||
290 | #address-cells = <0x1>; | ||
291 | #size-cells = <0x0>; | ||
292 | reg = <0x0 0x2180000 0x0 0x10000>; | ||
293 | interrupts = <0x0 0x58 0x4>; | ||
294 | clock-names = "i2c"; | ||
295 | clocks = <0x3 0x1>; | ||
296 | status = "okay"; | ||
297 | |||
298 | max1239@35 { | ||
299 | compatible = "maxim,max1239"; | ||
300 | reg = <0x35>; | ||
301 | #io-channel-cells = <0x1>; | ||
302 | }; | ||
303 | |||
304 | sgtl5000@2a { | ||
305 | compatible = "fsl,sgtl5000"; | ||
306 | reg = <0x2a>; | ||
307 | VDDA-supply = <0x7>; | ||
308 | VDDIO-supply = <0x8>; | ||
309 | clocks = <0x9 0x1>; | ||
310 | linux,phandle = <0x14>; | ||
311 | phandle = <0x14>; | ||
312 | }; | ||
313 | |||
314 | pca9555@23 { | ||
315 | compatible = "nxp,pca9555"; | ||
316 | gpio-controller; | ||
317 | #gpio-cells = <0x2>; | ||
318 | interrupt-controller; | ||
319 | #interrupt-cells = <0x2>; | ||
320 | reg = <0x23>; | ||
321 | }; | ||
322 | |||
323 | ina220@44 { | ||
324 | compatible = "ti,ina220"; | ||
325 | reg = <0x44>; | ||
326 | shunt-resistor = <0x3e8>; | ||
327 | }; | ||
328 | |||
329 | ina220@45 { | ||
330 | compatible = "ti,ina220"; | ||
331 | reg = <0x45>; | ||
332 | shunt-resistor = <0x3e8>; | ||
333 | }; | ||
334 | |||
335 | lm75b@48 { | ||
336 | compatible = "nxp,lm75a"; | ||
337 | reg = <0x48>; | ||
338 | }; | ||
339 | |||
340 | adt7461a@4c { | ||
341 | compatible = "adt7461a"; | ||
342 | reg = <0x4c>; | ||
343 | }; | ||
344 | |||
345 | sii9022a@39 { | ||
346 | compatible = "fsl,sii902x"; | ||
347 | reg = <0x39>; | ||
348 | interrupts = <0x0 0xa3 0x1>; | ||
349 | }; | ||
350 | }; | ||
351 | |||
352 | i2c@2190000 { | ||
353 | compatible = "fsl,vf610-i2c"; | ||
354 | #address-cells = <0x1>; | ||
355 | #size-cells = <0x0>; | ||
356 | reg = <0x0 0x2190000 0x0 0x10000>; | ||
357 | interrupts = <0x0 0x59 0x4>; | ||
358 | clock-names = "i2c"; | ||
359 | clocks = <0x3 0x1>; | ||
360 | status = "disabled"; | ||
361 | }; | ||
362 | |||
363 | i2c@21a0000 { | ||
364 | compatible = "fsl,vf610-i2c"; | ||
365 | #address-cells = <0x1>; | ||
366 | #size-cells = <0x0>; | ||
367 | reg = <0x0 0x21a0000 0x0 0x10000>; | ||
368 | interrupts = <0x0 0x5a 0x4>; | ||
369 | clock-names = "i2c"; | ||
370 | clocks = <0x3 0x1>; | ||
371 | status = "disabled"; | ||
372 | }; | ||
373 | |||
374 | serial@21c0500 { | ||
375 | compatible = "fsl,16550-FIFO64"; | ||
376 | reg = <0x0 0x21c0500 0x0 0x100>; | ||
377 | interrupts = <0x0 0x56 0x4>; | ||
378 | clock-frequency = <0x0>; | ||
379 | fifo-size = <0x3f>; | ||
380 | status = "okay"; | ||
381 | }; | ||
382 | |||
383 | serial@21c0600 { | ||
384 | compatible = "fsl,16550-FIFO64"; | ||
385 | reg = <0x0 0x21c0600 0x0 0x100>; | ||
386 | interrupts = <0x0 0x56 0x4>; | ||
387 | clock-frequency = <0x0>; | ||
388 | fifo-size = <0x3f>; | ||
389 | status = "disabled"; | ||
390 | }; | ||
391 | |||
392 | serial@21d0500 { | ||
393 | compatible = "fsl,16550-FIFO64"; | ||
394 | reg = <0x0 0x21d0500 0x0 0x100>; | ||
395 | interrupts = <0x0 0x57 0x4>; | ||
396 | clock-frequency = <0x0>; | ||
397 | fifo-size = <0x3f>; | ||
398 | status = "disabled"; | ||
399 | }; | ||
400 | |||
401 | serial@21d0600 { | ||
402 | compatible = "fsl,16550-FIFO64"; | ||
403 | reg = <0x0 0x21d0600 0x0 0x100>; | ||
404 | interrupts = <0x0 0x57 0x4>; | ||
405 | clock-frequency = <0x0>; | ||
406 | fifo-size = <0x3f>; | ||
407 | status = "disabled"; | ||
408 | }; | ||
409 | |||
410 | uqe@2400000 { | ||
411 | #address-cells = <0x1>; | ||
412 | #size-cells = <0x1>; | ||
413 | device_type = "qe"; | ||
414 | compatible = "fsl,qe", "simple-bus"; | ||
415 | ranges = <0x0 0x0 0x2400000 0x40000>; | ||
416 | reg = <0x0 0x2400000 0x0 0x480>; | ||
417 | brg-frequency = <0x5f5e100>; | ||
418 | bus-frequency = <0xbebc200>; | ||
419 | fsl,qe-num-riscs = <0x1>; | ||
420 | fsl,qe-num-snums = <0x1c>; | ||
421 | |||
422 | qeic@80 { | ||
423 | compatible = "fsl,qe-ic"; | ||
424 | reg = <0x80 0x80>; | ||
425 | #address-cells = <0x0>; | ||
426 | interrupt-controller; | ||
427 | #interrupt-cells = <0x1>; | ||
428 | interrupts = <0x0 0x6d 0x4 0x0 0x6d 0x4>; | ||
429 | linux,phandle = <0xa>; | ||
430 | phandle = <0xa>; | ||
431 | }; | ||
432 | |||
433 | si@700 { | ||
434 | #address-cells = <0x1>; | ||
435 | #size-cells = <0x0>; | ||
436 | compatible = "fsl,qe-si"; | ||
437 | reg = <0x700 0x80>; | ||
438 | }; | ||
439 | |||
440 | siram@1000 { | ||
441 | #address-cells = <0x1>; | ||
442 | #size-cells = <0x1>; | ||
443 | compatible = "fsl,qe-siram"; | ||
444 | reg = <0x1000 0x800>; | ||
445 | }; | ||
446 | |||
447 | ucc@2000 { | ||
448 | cell-index = <0x1>; | ||
449 | reg = <0x2000 0x200>; | ||
450 | interrupts = <0x20>; | ||
451 | interrupt-parent = <0xa>; | ||
452 | compatible = "fsl,ucc-tdm"; | ||
453 | rx-clock-name = "brg1"; | ||
454 | tx-clock-name = "brg1"; | ||
455 | fsl,rx-sync-clock = "none"; | ||
456 | fsl,tx-sync-clock = "none"; | ||
457 | fsl,tx-timeslot = <0xfffffffe>; | ||
458 | fsl,rx-timeslot = <0xfffffffe>; | ||
459 | fsl,tdm-framer-type = "e1"; | ||
460 | fsl,tdm-mode = "internel-loopback"; | ||
461 | fsl,tdm-id = <0x0>; | ||
462 | fsl,siram-entry-id = <0x0>; | ||
463 | }; | ||
464 | |||
465 | ucc@2200 { | ||
466 | cell-index = <0x3>; | ||
467 | reg = <0x2200 0x200>; | ||
468 | interrupts = <0x22>; | ||
469 | interrupt-parent = <0xa>; | ||
470 | device_type = "serial"; | ||
471 | compatible = "ucc_uart"; | ||
472 | port-number = <0x1>; | ||
473 | rx-clock-name = "brg2"; | ||
474 | tx-clock-name = "brg2"; | ||
475 | }; | ||
476 | |||
477 | muram@10000 { | ||
478 | #address-cells = <0x1>; | ||
479 | #size-cells = <0x1>; | ||
480 | compatible = "fsl,qe-muram", "fsl,cpm-muram"; | ||
481 | ranges = <0x0 0x10000 0x6000>; | ||
482 | |||
483 | data-only@0 { | ||
484 | compatible = "fsl,qe-muram-data", "fsl,cpm-muram-data"; | ||
485 | reg = <0x0 0x6000>; | ||
486 | }; | ||
487 | }; | ||
488 | }; | ||
489 | |||
490 | serial@2950000 { | ||
491 | compatible = "fsl,ls1021a-lpuart"; | ||
492 | reg = <0x0 0x2950000 0x0 0x1000>; | ||
493 | interrupts = <0x0 0x50 0x4>; | ||
494 | clocks = <0x5>; | ||
495 | clock-names = "ipg"; | ||
496 | sleep = <0x4 0x0 0x40000000>; | ||
497 | status = "okay"; | ||
498 | }; | ||
499 | |||
500 | serial@2960000 { | ||
501 | compatible = "fsl,ls1021a-lpuart"; | ||
502 | reg = <0x0 0x2960000 0x0 0x1000>; | ||
503 | interrupts = <0x0 0x51 0x4>; | ||
504 | clocks = <0x3 0x1>; | ||
505 | clock-names = "ipg"; | ||
506 | status = "disabled"; | ||
507 | }; | ||
508 | |||
509 | serial@2970000 { | ||
510 | compatible = "fsl,ls1021a-lpuart"; | ||
511 | reg = <0x0 0x2970000 0x0 0x1000>; | ||
512 | interrupts = <0x0 0x52 0x4>; | ||
513 | clocks = <0x3 0x1>; | ||
514 | clock-names = "ipg"; | ||
515 | status = "disabled"; | ||
516 | }; | ||
517 | |||
518 | serial@2980000 { | ||
519 | compatible = "fsl,ls1021a-lpuart"; | ||
520 | reg = <0x0 0x2980000 0x0 0x1000>; | ||
521 | interrupts = <0x0 0x53 0x4>; | ||
522 | clocks = <0x3 0x1>; | ||
523 | clock-names = "ipg"; | ||
524 | status = "disabled"; | ||
525 | }; | ||
526 | |||
527 | serial@2990000 { | ||
528 | compatible = "fsl,ls1021a-lpuart"; | ||
529 | reg = <0x0 0x2990000 0x0 0x1000>; | ||
530 | interrupts = <0x0 0x54 0x4>; | ||
531 | clocks = <0x3 0x1>; | ||
532 | clock-names = "ipg"; | ||
533 | status = "disabled"; | ||
534 | }; | ||
535 | |||
536 | serial@29a0000 { | ||
537 | compatible = "fsl,ls1021a-lpuart"; | ||
538 | reg = <0x0 0x29a0000 0x0 0x1000>; | ||
539 | interrupts = <0x0 0x55 0x4>; | ||
540 | clocks = <0x3 0x1>; | ||
541 | clock-names = "ipg"; | ||
542 | status = "disabled"; | ||
543 | }; | ||
544 | |||
545 | gpio@2300000 { | ||
546 | compatible = "fsl,ls1021a-gpio"; | ||
547 | reg = <0x0 0x2300000 0x0 0x10000>; | ||
548 | interrupts = <0x0 0x62 0x4>; | ||
549 | gpio-controller; | ||
550 | #gpio-cells = <0x2>; | ||
551 | interrupt-controller; | ||
552 | #interrupt-cells = <0x2>; | ||
553 | sleep = <0x4 0x40 0x0>; | ||
554 | }; | ||
555 | |||
556 | gpio@2310000 { | ||
557 | compatible = "fsl,ls1021a-gpio"; | ||
558 | reg = <0x0 0x2310000 0x0 0x10000>; | ||
559 | interrupts = <0x0 0x63 0x4>; | ||
560 | gpio-controller; | ||
561 | #gpio-cells = <0x2>; | ||
562 | interrupt-controller; | ||
563 | #interrupt-cells = <0x2>; | ||
564 | }; | ||
565 | |||
566 | gpio@2320000 { | ||
567 | compatible = "fsl,ls1021a-gpio"; | ||
568 | reg = <0x0 0x2320000 0x0 0x10000>; | ||
569 | interrupts = <0x0 0x64 0x4>; | ||
570 | gpio-controller; | ||
571 | #gpio-cells = <0x2>; | ||
572 | interrupt-controller; | ||
573 | #interrupt-cells = <0x2>; | ||
574 | }; | ||
575 | |||
576 | gpio@2330000 { | ||
577 | compatible = "fsl,ls1021a-gpio"; | ||
578 | reg = <0x0 0x2330000 0x0 0x10000>; | ||
579 | interrupts = <0x0 0xa6 0x4>; | ||
580 | gpio-controller; | ||
581 | #gpio-cells = <0x2>; | ||
582 | interrupt-controller; | ||
583 | #interrupt-cells = <0x2>; | ||
584 | }; | ||
585 | |||
586 | ftm0@29d0000 { | ||
587 | compatible = "fsl,ftm-alarm"; | ||
588 | reg = <0x0 0x29d0000 0x0 0x10000>; | ||
589 | interrupts = <0x0 0x76 0x4>; | ||
590 | big-endian; | ||
591 | sleep = <0x4 0x0 0x20000000>; | ||
592 | status = "disabled"; | ||
593 | }; | ||
594 | |||
595 | ftm@2a00000 { | ||
596 | compatible = "fsl,vf610-ftm-pwm"; | ||
597 | #pwm-cells = <0x3>; | ||
598 | reg = <0x0 0x2a00000 0x0 0x10000>; | ||
599 | interrupts = <0x0 0x79 0x4>; | ||
600 | clock-names = "ftm_sys", "ftm_ext", "ftm_fix", "ftm_cnt_clk_en"; | ||
601 | clocks = <0x3 0x1 0x3 0x1 0x3 0x1 0x3 0x1>; | ||
602 | big-endian; | ||
603 | status = "disabled"; | ||
604 | }; | ||
605 | |||
606 | ftm@2a30000 { | ||
607 | compatible = "fsl,vf610-ftm-pwm"; | ||
608 | #pwm-cells = <0x3>; | ||
609 | reg = <0x0 0x2a30000 0x0 0x10000>; | ||
610 | interrupts = <0x0 0x7b 0x4>; | ||
611 | clock-names = "ftm_sys", "ftm_ext", "ftm_fix", "ftm_cnt_clk_en"; | ||
612 | clocks = <0x3 0x1 0x3 0x1 0x3 0x1 0x3 0x1>; | ||
613 | big-endian; | ||
614 | status = "disabled"; | ||
615 | }; | ||
616 | |||
617 | ftm@2a40000 { | ||
618 | compatible = "fsl,vf610-ftm-pwm"; | ||
619 | #pwm-cells = <0x3>; | ||
620 | reg = <0x0 0x2a40000 0x0 0x10000>; | ||
621 | interrupts = <0x0 0x7c 0x4>; | ||
622 | clock-names = "ftm_sys", "ftm_ext", "ftm_fix", "ftm_cnt_clk_en"; | ||
623 | clocks = <0x3 0x1 0x3 0x1 0x3 0x1 0x3 0x1>; | ||
624 | big-endian; | ||
625 | status = "disabled"; | ||
626 | }; | ||
627 | |||
628 | wdog@2ad0000 { | ||
629 | compatible = "fsl,imx21-wdt"; | ||
630 | reg = <0x0 0x2ad0000 0x0 0x10000>; | ||
631 | interrupts = <0x0 0x73 0x4>; | ||
632 | clocks = <0x3 0x1>; | ||
633 | clock-names = "wdog"; | ||
634 | big-endian; | ||
635 | }; | ||
636 | |||
637 | sai@2b50000 { | ||
638 | compatible = "fsl,vf610-sai"; | ||
639 | reg = <0x0 0x2b50000 0x0 0x10000>; | ||
640 | interrupts = <0x0 0x84 0x4>; | ||
641 | clocks = <0x3 0x1>; | ||
642 | clock-names = "sai"; | ||
643 | dma-names = "tx", "rx"; | ||
644 | dmas = <0xb 0x1 0x2f 0xb 0x1 0x2e>; | ||
645 | status = "disabled"; | ||
646 | }; | ||
647 | |||
648 | sai@2b60000 { | ||
649 | compatible = "fsl,vf610-sai"; | ||
650 | reg = <0x0 0x2b60000 0x0 0x10000>; | ||
651 | interrupts = <0x0 0x85 0x4>; | ||
652 | clocks = <0x3 0x1>; | ||
653 | clock-names = "sai"; | ||
654 | dma-names = "tx", "rx"; | ||
655 | dmas = <0xb 0x1 0x2d 0xb 0x1 0x2c>; | ||
656 | status = "okay"; | ||
657 | linux,phandle = <0x13>; | ||
658 | phandle = <0x13>; | ||
659 | }; | ||
660 | |||
661 | edma@2c00000 { | ||
662 | #dma-cells = <0x2>; | ||
663 | compatible = "fsl,vf610-edma"; | ||
664 | reg = <0x0 0x2c00000 0x0 0x10000 0x0 0x2c10000 0x0 0x10000 0x0 0x2c20000 0x0 0x10000>; | ||
665 | interrupts = <0x0 0x87 0x4 0x0 0x87 0x4>; | ||
666 | interrupt-names = "edma-tx", "edma-err"; | ||
667 | dma-channels = <0x20>; | ||
668 | big-endian; | ||
669 | clock-names = "dmamux0", "dmamux1"; | ||
670 | clocks = <0x3 0x1 0x3 0x1>; | ||
671 | linux,phandle = <0xb>; | ||
672 | phandle = <0xb>; | ||
673 | }; | ||
674 | |||
675 | dcu@2ce0000 { | ||
676 | compatible = "fsl,ls1021a-dcu"; | ||
677 | reg = <0x0 0x2ce0000 0x0 0x10000>; | ||
678 | interrupts = <0x0 0xac 0x4>; | ||
679 | clocks = <0x3 0x0>; | ||
680 | clock-names = "dcu"; | ||
681 | scfg-controller = <0xc>; | ||
682 | big-endian; | ||
683 | status = "okay"; | ||
684 | display = <0xd>; | ||
685 | |||
686 | display@0 { | ||
687 | bits-per-pixel = <0x18>; | ||
688 | linux,phandle = <0xd>; | ||
689 | phandle = <0xd>; | ||
690 | |||
691 | display-timings { | ||
692 | native-mode = <0xe>; | ||
693 | |||
694 | mode0 { | ||
695 | clock-frequency = <0x17d7840>; | ||
696 | hactive = <0x280>; | ||
697 | vactive = <0x1e0>; | ||
698 | hback-porch = <0x50>; | ||
699 | hfront-porch = <0x50>; | ||
700 | vback-porch = <0x10>; | ||
701 | vfront-porch = <0x10>; | ||
702 | hsync-len = <0xc>; | ||
703 | vsync-len = <0x2>; | ||
704 | hsync-active = <0x1>; | ||
705 | vsync-active = <0x1>; | ||
706 | linux,phandle = <0xe>; | ||
707 | phandle = <0xe>; | ||
708 | }; | ||
709 | }; | ||
710 | }; | ||
711 | }; | ||
712 | |||
713 | mdio@2d24000 { | ||
714 | compatible = "gianfar"; | ||
715 | device_type = "mdio"; | ||
716 | #address-cells = <0x1>; | ||
717 | #size-cells = <0x0>; | ||
718 | reg = <0x0 0x2d24000 0x0 0x4000>; | ||
719 | |||
720 | ethernet-phy@0 { | ||
721 | reg = <0x0>; | ||
722 | }; | ||
723 | |||
724 | ethernet-phy@1 { | ||
725 | reg = <0x1>; | ||
726 | interrupts = <0x0 0xa5 0x8>; | ||
727 | linux,phandle = <0x10>; | ||
728 | phandle = <0x10>; | ||
729 | }; | ||
730 | |||
731 | ethernet-phy@2 { | ||
732 | reg = <0x2>; | ||
733 | linux,phandle = <0x12>; | ||
734 | phandle = <0x12>; | ||
735 | }; | ||
736 | |||
737 | ethernet-phy@3 { | ||
738 | reg = <0x3>; | ||
739 | interrupts = <0x0 0xa5 0x8>; | ||
740 | linux,phandle = <0x11>; | ||
741 | phandle = <0x11>; | ||
742 | }; | ||
743 | |||
744 | tbi-phy@1f { | ||
745 | reg = <0x1f>; | ||
746 | device_type = "tbi-phy"; | ||
747 | linux,phandle = <0xf>; | ||
748 | phandle = <0xf>; | ||
749 | }; | ||
750 | }; | ||
751 | |||
752 | ethernet@2d10000 { | ||
753 | compatible = "fsl,etsec2"; | ||
754 | device_type = "network"; | ||
755 | #address-cells = <0x2>; | ||
756 | #size-cells = <0x2>; | ||
757 | interrupt-parent = <0x1>; | ||
758 | model = "eTSEC"; | ||
759 | fsl,dma-endian-le; | ||
760 | fsl,magic-packet; | ||
761 | fsl,wake-on-filer; | ||
762 | sleep = <0x4 0x80000000 0x0>; | ||
763 | fsl,num_rx_queues = <0x8>; | ||
764 | fsl,num_tx_queues = <0x8>; | ||
765 | local-mac-address = [00 00 00 00 00 00]; | ||
766 | ranges; | ||
767 | tbi-handle = <0xf>; | ||
768 | phy-handle = <0x10>; | ||
769 | phy-connection-type = "sgmii"; | ||
770 | status = "ok"; | ||
771 | |||
772 | queue-group@2d10000 { | ||
773 | #address-cells = <0x2>; | ||
774 | #size-cells = <0x2>; | ||
775 | reg = <0x0 0x2d10000 0x0 0x1000>; | ||
776 | interrupts = <0x0 0x90 0x4 0x0 0x91 0x4 0x0 0x92 0x4>; | ||
777 | }; | ||
778 | |||
779 | queue-group@2d14000 { | ||
780 | #address-cells = <0x2>; | ||
781 | #size-cells = <0x2>; | ||
782 | reg = <0x0 0x2d14000 0x0 0x1000>; | ||
783 | interrupts = <0x0 0x93 0x4 0x0 0x94 0x4 0x0 0x95 0x4>; | ||
784 | }; | ||
785 | }; | ||
786 | |||
787 | ethernet@2d50000 { | ||
788 | compatible = "fsl,etsec2"; | ||
789 | device_type = "network"; | ||
790 | #address-cells = <0x2>; | ||
791 | #size-cells = <0x2>; | ||
792 | interrupt-parent = <0x1>; | ||
793 | model = "eTSEC"; | ||
794 | fsl,dma-endian-le; | ||
795 | fsl,num_rx_queues = <0x8>; | ||
796 | fsl,num_tx_queues = <0x8>; | ||
797 | local-mac-address = [00 00 00 00 00 00]; | ||
798 | ranges; | ||
799 | tbi-handle = <0xf>; | ||
800 | phy-handle = <0x11>; | ||
801 | phy-connection-type = "sgmii"; | ||
802 | status = "ok"; | ||
803 | |||
804 | queue-group@2d50000 { | ||
805 | #address-cells = <0x2>; | ||
806 | #size-cells = <0x2>; | ||
807 | reg = <0x0 0x2d50000 0x0 0x1000>; | ||
808 | interrupts = <0x0 0x96 0x4 0x0 0x98 0x4 0x0 0x99 0x4>; | ||
809 | }; | ||
810 | |||
811 | queue-group@2d54000 { | ||
812 | #address-cells = <0x2>; | ||
813 | #size-cells = <0x2>; | ||
814 | reg = <0x0 0x2d54000 0x0 0x1000>; | ||
815 | interrupts = <0x0 0x9a 0x4 0x0 0x9b 0x4 0x0 0x9c 0x4>; | ||
816 | }; | ||
817 | }; | ||
818 | |||
819 | ethernet@2d90000 { | ||
820 | compatible = "fsl,etsec2"; | ||
821 | device_type = "network"; | ||
822 | #address-cells = <0x2>; | ||
823 | #size-cells = <0x2>; | ||
824 | interrupt-parent = <0x1>; | ||
825 | model = "eTSEC"; | ||
826 | fsl,dma-endian-le; | ||
827 | fsl,num_rx_queues = <0x8>; | ||
828 | fsl,num_tx_queues = <0x8>; | ||
829 | local-mac-address = [00 00 00 00 00 00]; | ||
830 | ranges; | ||
831 | tbi-handle = <0xf>; | ||
832 | phy-handle = <0x12>; | ||
833 | phy-connection-type = "rgmii"; | ||
834 | status = "ok"; | ||
835 | |||
836 | queue-group@2d90000 { | ||
837 | #address-cells = <0x2>; | ||
838 | #size-cells = <0x2>; | ||
839 | reg = <0x0 0x2d90000 0x0 0x1000>; | ||
840 | interrupts = <0x0 0x9d 0x4 0x0 0x9e 0x4 0x0 0x9f 0x4>; | ||
841 | }; | ||
842 | |||
843 | queue-group@2d94000 { | ||
844 | #address-cells = <0x2>; | ||
845 | #size-cells = <0x2>; | ||
846 | reg = <0x0 0x2d94000 0x0 0x1000>; | ||
847 | interrupts = <0x0 0xa0 0x4 0x0 0xa1 0x4 0x0 0xa2 0x4>; | ||
848 | }; | ||
849 | }; | ||
850 | |||
851 | can@2a70000 { | ||
852 | compatible = "fsl,ls1021ar2-flexcan"; | ||
853 | reg = <0x0 0x2a70000 0x0 0x1000>; | ||
854 | interrupts = <0x0 0x7e 0x4>; | ||
855 | clocks = <0x3 0x1 0x3 0x1>; | ||
856 | clock-names = "ipg", "per"; | ||
857 | little-endian; | ||
858 | }; | ||
859 | |||
860 | can@2a80000 { | ||
861 | compatible = "fsl,ls1021ar2-flexcan"; | ||
862 | reg = <0x0 0x2a80000 0x0 0x1000>; | ||
863 | interrupts = <0x0 0x7f 0x4>; | ||
864 | clocks = <0x3 0x1 0x3 0x1>; | ||
865 | clock-names = "ipg", "per"; | ||
866 | little-endian; | ||
867 | }; | ||
868 | |||
869 | can@2a90000 { | ||
870 | compatible = "fsl,ls1021ar2-flexcan"; | ||
871 | reg = <0x0 0x2a90000 0x0 0x1000>; | ||
872 | interrupts = <0x0 0x80 0x4>; | ||
873 | clocks = <0x3 0x1 0x3 0x1>; | ||
874 | clock-names = "ipg", "per"; | ||
875 | little-endian; | ||
876 | status = "okay"; | ||
877 | }; | ||
878 | |||
879 | can@2aa0000 { | ||
880 | compatible = "fsl,ls1021ar2-flexcan"; | ||
881 | reg = <0x0 0x2aa0000 0x0 0x1000>; | ||
882 | interrupts = <0x0 0x81 0x4>; | ||
883 | clocks = <0x3 0x1 0x3 0x1>; | ||
884 | clock-names = "ipg", "per"; | ||
885 | little-endian; | ||
886 | status = "okay"; | ||
887 | }; | ||
888 | |||
889 | usb@8600000 { | ||
890 | compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr"; | ||
891 | reg = <0x0 0x8600000 0x0 0x1000>; | ||
892 | interrupts = <0x0 0xab 0x4>; | ||
893 | dr_mode = "host"; | ||
894 | phy_type = "ulpi"; | ||
895 | }; | ||
896 | |||
897 | usb3@3100000 { | ||
898 | compatible = "snps,dwc3"; | ||
899 | reg = <0x0 0x3100000 0x0 0x10000>; | ||
900 | interrupts = <0x0 0x5d 0x4>; | ||
901 | dr_mode = "host"; | ||
902 | configure-gfladj; | ||
903 | }; | ||
904 | |||
905 | pcie@3400000 { | ||
906 | compatible = "fsl,ls1021a-pcie", "snps,dw-pcie"; | ||
907 | reg = <0x0 0x3400000 0x0 0x10000 0x40 0x0 0x0 0x2000>; | ||
908 | reg-names = "regs", "config"; | ||
909 | interrupts = <0x0 0xb1 0x4 0x0 0xb3 0x4 0x0 0xb5 0x4>; | ||
910 | interrupt-names = "intr", "msi", "pme"; | ||
911 | fsl,pcie-scfg = <0xc 0x0>; | ||
912 | num-atus = <0x6>; | ||
913 | #address-cells = <0x3>; | ||
914 | #size-cells = <0x2>; | ||
915 | device_type = "pci"; | ||
916 | num-lanes = <0x4>; | ||
917 | bus-range = <0x0 0xff>; | ||
918 | ranges = <0x81000000 0x0 0x0 0x40 0x10000 0x0 0x10000 0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; | ||
919 | #interrupt-cells = <0x1>; | ||
920 | interrupt-map-mask = <0x0 0x0 0x0 0x7>; | ||
921 | interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x0 0x5b 0x4 0x0 0x0 0x0 0x2 0x1 0x0 0xbc 0x4 0x0 0x0 0x0 0x3 0x1 0x0 0xbe 0x4 0x0 0x0 0x0 0x4 0x1 0x0 0xc0 0x4>; | ||
922 | }; | ||
923 | |||
924 | pcie@3500000 { | ||
925 | compatible = "fsl,ls1021a-pcie", "snps,dw-pcie"; | ||
926 | reg = <0x0 0x3500000 0x0 0x10000 0x48 0x0 0x0 0x2000>; | ||
927 | reg-names = "regs", "config"; | ||
928 | interrupts = <0x0 0xb2 0x4 0x0 0xb4 0x4 0x0 0xb6 0x4>; | ||
929 | interrupt-names = "intr", "msi", "pme"; | ||
930 | fsl,pcie-scfg = <0xc 0x1>; | ||
931 | num-atus = <0x6>; | ||
932 | #address-cells = <0x3>; | ||
933 | #size-cells = <0x2>; | ||
934 | device_type = "pci"; | ||
935 | num-lanes = <0x2>; | ||
936 | bus-range = <0x0 0xff>; | ||
937 | ranges = <0x81000000 0x0 0x0 0x48 0x10000 0x0 0x10000 0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; | ||
938 | #interrupt-cells = <0x1>; | ||
939 | interrupt-map-mask = <0x0 0x0 0x0 0x7>; | ||
940 | interrupt-map = <0x0 0x0 0x0 0x1 0x1 0x0 0x5c 0x4 0x0 0x0 0x0 0x2 0x1 0x0 0xbd 0x4 0x0 0x0 0x0 0x3 0x1 0x0 0xbf 0x4 0x0 0x0 0x0 0x4 0x1 0x0 0xc1 0x4>; | ||
941 | }; | ||
942 | }; | ||
943 | |||
944 | dcsr { | ||
945 | #address-cells = <0x1>; | ||
946 | #size-cells = <0x1>; | ||
947 | compatible = "fsl,dcsr", "simple-bus"; | ||
948 | ranges = <0x0 0x0 0x20000000 0x1000000>; | ||
949 | |||
950 | dcsr-epu@0 { | ||
951 | compatible = "fsl,ls1021a-dcsr-epu"; | ||
952 | reg = <0x0 0x10000>; | ||
953 | }; | ||
954 | |||
955 | dcsr-gdi@100000 { | ||
956 | compatible = "fsl,ls1021a-dcsr-gdi"; | ||
957 | reg = <0x100000 0x10000>; | ||
958 | }; | ||
959 | |||
960 | dcsr-dddi@120000 { | ||
961 | compatible = "fsl,ls1021a-dcsr-dddi"; | ||
962 | reg = <0x120000 0x10000>; | ||
963 | }; | ||
964 | |||
965 | dcsr-dcfg@220000 { | ||
966 | compatible = "fsl,ls1021a-dcsr-dcfg"; | ||
967 | reg = <0x220000 0x1000>; | ||
968 | }; | ||
969 | |||
970 | dcsr-clock@221000 { | ||
971 | compatible = "fsl,ls1021a-dcsr-clock"; | ||
972 | reg = <0x221000 0x1000>; | ||
973 | }; | ||
974 | |||
975 | dcsr-rcpm@222000 { | ||
976 | compatible = "fsl,ls1021a-dcsr-rcpm"; | ||
977 | reg = <0x222000 0x1000 0x223000 0x1000>; | ||
978 | }; | ||
979 | |||
980 | dcsr-ccp@225000 { | ||
981 | compatible = "fsl,ls1021a-dcsr-ccp"; | ||
982 | reg = <0x225000 0x1000>; | ||
983 | }; | ||
984 | |||
985 | dcsr-fusectrl@226000 { | ||
986 | compatible = "fsl,ls1021a-dcsr-fusectrl"; | ||
987 | reg = <0x226000 0x1000>; | ||
988 | }; | ||
989 | |||
990 | dcsr-dap@300000 { | ||
991 | compatible = "fsl,ls1021a-dcsr-dap"; | ||
992 | reg = <0x300000 0x10000>; | ||
993 | }; | ||
994 | |||
995 | dcsr-cstf@350000 { | ||
996 | compatible = "fsl,ls1021a-dcsr-cstf"; | ||
997 | reg = <0x350000 0x1000 0x3a7000 0x1000>; | ||
998 | }; | ||
999 | |||
1000 | dcsr-a7rom@360000 { | ||
1001 | compatible = "fsl,ls1021a-dcsr-a7rom"; | ||
1002 | reg = <0x360000 0x10000>; | ||
1003 | }; | ||
1004 | |||
1005 | dcsr-a7cpu@370000 { | ||
1006 | compatible = "fsl,ls1021a-dcsr-a7cpu"; | ||
1007 | reg = <0x370000 0x8000>; | ||
1008 | }; | ||
1009 | |||
1010 | dcsr-a7cti@378000 { | ||
1011 | compatible = "fsl,ls1021a-dcsr-a7cti"; | ||
1012 | reg = <0x378000 0x4000>; | ||
1013 | }; | ||
1014 | |||
1015 | dcsr-etm@37c000 { | ||
1016 | compatible = "fsl,ls1021a-dcsr-etm"; | ||
1017 | reg = <0x37c000 0x1000 0x37d000 0x3000>; | ||
1018 | }; | ||
1019 | |||
1020 | dcsr-hugorom@3a0000 { | ||
1021 | compatible = "fsl,ls1021a-dcsr-hugorom"; | ||
1022 | reg = <0x3a0000 0x1000>; | ||
1023 | }; | ||
1024 | |||
1025 | dcsr-etf@3a1000 { | ||
1026 | compatible = "fsl,ls1021a-dcsr-etf"; | ||
1027 | reg = <0x3a1000 0x1000 0x3a2000 0x1000>; | ||
1028 | }; | ||
1029 | |||
1030 | dcsr-etr@3a3000 { | ||
1031 | compatible = "fsl,ls1021a-dcsr-etr"; | ||
1032 | reg = <0x3a3000 0x1000>; | ||
1033 | }; | ||
1034 | |||
1035 | dcsr-cti@3a4000 { | ||
1036 | compatible = "fsl,ls1021a-dcsr-cti"; | ||
1037 | reg = <0x3a4000 0x1000 0x3a5000 0x1000 0x3a6000 0x1000>; | ||
1038 | }; | ||
1039 | |||
1040 | dcsr-atbrepl@3a8000 { | ||
1041 | compatible = "fsl,ls1021a-dcsr-atbrepl"; | ||
1042 | reg = <0x3a8000 0x1000>; | ||
1043 | }; | ||
1044 | |||
1045 | dcsr-tsgen-ctrl@3a9000 { | ||
1046 | compatible = "fsl,ls1021a-dcsr-tsgen-ctrl"; | ||
1047 | reg = <0x3a9000 0x1000>; | ||
1048 | }; | ||
1049 | |||
1050 | dcsr-tsgen-read@3aa000 { | ||
1051 | compatible = "fsl,ls1021a-dcsr-tsgen-read"; | ||
1052 | reg = <0x3aa000 0x1000>; | ||
1053 | }; | ||
1054 | }; | ||
1055 | |||
1056 | clocks { | ||
1057 | |||
1058 | clock { | ||
1059 | compatible = "fixed-clock"; | ||
1060 | #clock-cells = <0x0>; | ||
1061 | clock-frequency = <0x1770000>; | ||
1062 | linux,phandle = <0x9>; | ||
1063 | phandle = <0x9>; | ||
1064 | }; | ||
1065 | }; | ||
1066 | |||
1067 | regulators { | ||
1068 | compatible = "simple-bus"; | ||
1069 | #address-cells = <0x1>; | ||
1070 | #size-cells = <0x0>; | ||
1071 | |||
1072 | regulator@0 { | ||
1073 | compatible = "regulator-fixed"; | ||
1074 | reg = <0x0>; | ||
1075 | regulator-name = "3P3V"; | ||
1076 | regulator-min-microvolt = <0x325aa0>; | ||
1077 | regulator-max-microvolt = <0x325aa0>; | ||
1078 | regulator-always-on; | ||
1079 | linux,phandle = <0x7>; | ||
1080 | phandle = <0x7>; | ||
1081 | }; | ||
1082 | |||
1083 | regulator@1 { | ||
1084 | compatible = "regulator-fixed"; | ||
1085 | reg = <0x1>; | ||
1086 | regulator-name = "2P5V"; | ||
1087 | regulator-min-microvolt = <0x2625a0>; | ||
1088 | regulator-max-microvolt = <0x2625a0>; | ||
1089 | regulator-always-on; | ||
1090 | linux,phandle = <0x8>; | ||
1091 | phandle = <0x8>; | ||
1092 | }; | ||
1093 | }; | ||
1094 | |||
1095 | sound { | ||
1096 | compatible = "fsl,vf610-sgtl5000"; | ||
1097 | simple-audio-card,name = "FSL-VF610-TWR-BOARD"; | ||
1098 | simple-audio-card,routing = "MIC_IN", "Microphone Jack", "Microphone Jack", "Mic Bias", "LINE_IN", "Line In Jack", "Headphone Jack", "HP_OUT", "Speaker Ext", "LINE_OUT"; | ||
1099 | simple-audio-card,cpu = <0x13>; | ||
1100 | simple-audio-card,codec = <0x14>; | ||
1101 | }; | ||
1102 | }; | ||
diff --git a/recipes-kernel/linux/linux-ls1_3.12.bbappend b/recipes-kernel/linux/linux-ls1_3.12.bbappend deleted file mode 100644 index e0c7a91..0000000 --- a/recipes-kernel/linux/linux-ls1_3.12.bbappend +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | require linux-ls1-common.inc | ||
2 | |||
3 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" | ||
4 | |||
5 | SRC_URI += "file://ls1021aiot.dts \ | ||
6 | file://0001-fsnotify-fix-oops-in-fsnotify_clear_marks_by_group_f.patch \ | ||
7 | file://0002-watchdog-fix-errata-err004346.patch \ | ||
8 | " | ||
9 | |||
10 | # fix err: "linux-ls1-3.12-r0 do_deploy: Taskhash mismatch" | ||
11 | ZIMAGE_BASE_NAME[vardepsexclude] = "DATETIME" | ||
12 | |||
13 | do_configure_prepend() { | ||
14 | cp -rf ${WORKDIR}/ls1021aiot.dts ${S}/arch/arm/boot/dts/ls1021aiot.dts | ||
15 | } | ||
16 | |||
17 | do_configure_append() { | ||
18 | # | ||
19 | # Add Enea specific kernel configs | ||
20 | # | ||
21 | |||
22 | #gather full config fragment paths | ||
23 | addon_features="" | ||
24 | if [ -n "${ENEA_KERNEL_FRAGMENTS}" ]; then | ||
25 | for feature in ${ENEA_KERNEL_FRAGMENTS}; do | ||
26 | addon_features="${addon_features} ${WORKDIR}/${feature}" | ||
27 | done | ||
28 | fi | ||
29 | |||
30 | #in case there is no .config file yet | ||
31 | touch ${B}/.config | ||
32 | |||
33 | if [ -e "${S}/scripts/kconfig/merge_config.sh" ]; then | ||
34 | O=${B} ${S}/scripts/kconfig/merge_config.sh -m .config ${addon_features} | ||
35 | else | ||
36 | bbfatal "No merge_config.sh found in the kernel tree." | ||
37 | fi | ||
38 | |||
39 | oe_runmake KCONFIG_ALLCONFIG=${B}/.config O=${B} alldefconfig | ||
40 | } | ||