diff options
author | Mark Hatle <mark.hatle@xilinx.com> | 2021-03-23 10:06:45 -0700 |
---|---|---|
committer | Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com> | 2021-09-27 21:32:51 -0700 |
commit | f9fca2542a9b7a48c3a3503d0b9c6177fd2f57bc (patch) | |
tree | d5be87bd696669b14a5b93fd90201295eb519c2a /meta-xilinx-bsp | |
parent | 11b6a866460cb70ab3908f6882ffc0a3a5cfc9b1 (diff) | |
download | meta-xilinx-f9fca2542a9b7a48c3a3503d0b9c6177fd2f57bc.tar.gz |
xilinx-lops: Update to tag firmware microblaze configs
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
Diffstat (limited to 'meta-xilinx-bsp')
-rw-r--r-- | meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts | 402 |
1 files changed, 178 insertions, 224 deletions
diff --git a/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts b/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts index 6e10dcc4..66023e1f 100644 --- a/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts +++ b/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts | |||
@@ -24,262 +24,216 @@ | |||
24 | pass | 24 | pass |
25 | "; | 25 | "; |
26 | }; | 26 | }; |
27 | lop_4 { | 27 | lop_0_1 { |
28 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 28 | compatible = "system-device-tree-v1,lop,select-v1"; |
29 | cond_root = "cpus_microblaze"; | 29 | select_1; |
30 | cpus_microblaze { | 30 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
31 | cpu@.* { | 31 | lop_0_2 { |
32 | compatible = ".*microblaze.*"; | 32 | compatible = "system-device-tree-v1,lop,code-v1"; |
33 | }; | 33 | inherit = "subsystem"; |
34 | }; | 34 | code = " |
35 | true { | 35 | for n in tree.__selected__: |
36 | compatible = "system-device-tree-v1,lop,code-v1"; | 36 | val = n['compatible'].value[0] |
37 | code = " | 37 | if val == 'pmu-microblaze': |
38 | # print( '---> microblaze version code for node: %s' % node ) | 38 | n.tunes = OrderedDict() |
39 | val = node['compatible'].value[0] | 39 | n.tunes['microblaze'] = 'microblaze' |
40 | if val == 'pmu-microblaze': | 40 | n.tunes['version'] = 'v9.2' |
41 | node.tunes = OrderedDict() | ||
42 | node.tunes['microblaze'] = 'microblaze' | ||
43 | node.tunes['version'] = 'v9.2' | ||
44 | return True | ||
45 | |||
46 | if val == 'pmc-microblaze' or val == 'psm-microblaze': | ||
47 | node.tunes = OrderedDict() | ||
48 | node.tunes['microblaze'] = 'microblaze' | ||
49 | node.tunes['version'] = 'v10.0' | ||
50 | return True | ||
51 | |||
52 | val = node['model'].value[0] | ||
53 | version = val[val.find('microblaze,') + 11:] | ||
54 | |||
55 | if version.startswith('8'): | ||
56 | # Strip 8.xx.y, to just 8.xx | ||
57 | v = version.split('.') | ||
58 | version = '.'.join(v[0:2]) | ||
59 | 41 | ||
60 | version = 'v' + version | 42 | if val == 'pmc-microblaze' or val == 'psm-microblaze': |
61 | node.tunes = OrderedDict() | 43 | n.tunes = OrderedDict() |
62 | node.tunes['microblaze'] = 'microblaze' | 44 | n.tunes['microblaze'] = 'microblaze' |
63 | node.tunes['version'] = version | 45 | n.tunes['version'] = 'v10.0' |
64 | 46 | ||
65 | return True | 47 | n.tune_type = val |
66 | "; | 48 | "; |
67 | }; | 49 | }; |
68 | }; | 50 | }; |
69 | lop_4_1 { | 51 | lop_1_1 { |
70 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 52 | compatible = "system-device-tree-v1,lop,select-v1"; |
71 | cond_root = "cpus_microblaze"; | 53 | select_1; |
72 | cpus_microblaze { | 54 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
73 | cpu@.* { | 55 | select_3 = ":xlnx,use-barrel:1"; |
74 | compatible = ".*microblaze.*"; | 56 | lop_1_1_1 { |
75 | xlnx,endianness__not__ = <0x1>; | 57 | compatible = "system-device-tree-v1,lop,code-v1"; |
76 | }; | 58 | code = " |
77 | }; | 59 | if __selected__: |
78 | true_track { | 60 | for n in __selected__: |
79 | compatible = "system-device-tree-v1,lop,exec-v1"; | 61 | n.tunes['barrel-shift'] = 'barrel-shift' |
80 | options = "prop:bigendian"; | 62 | "; |
81 | // sets: node.tunes['bigendian'] = 'bigendian' | ||
82 | exec = <&track_feature>; | ||
83 | }; | 63 | }; |
84 | }; | 64 | }; |
85 | lop_4_3 { | 65 | lop_2_1 { |
86 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 66 | compatible = "system-device-tree-v1,lop,select-v1"; |
87 | cond_root = "cpus_microblaze"; | 67 | select_1; |
88 | cpus_microblaze { | 68 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
89 | cpu@.* { | 69 | select_3 = ":xlnx,endianness:!1"; |
90 | compatible = ".*microblaze.*"; | 70 | lop_2_1_1 { |
91 | xlnx,data-size = <0x40>; | 71 | compatible = "system-device-tree-v1,lop,code-v1"; |
92 | }; | 72 | code = " |
93 | }; | 73 | if __selected__: |
94 | true_track { | 74 | for n in __selected__: |
95 | compatible = "system-device-tree-v1,lop,exec-v1"; | 75 | n.tunes['bigendian'] = 'bigendian' |
96 | options = "prop:64-bit"; | 76 | "; |
97 | // sets: node.tunes['64-bit'] = '64-bit' | ||
98 | exec = <&track_feature>; | ||
99 | }; | 77 | }; |
100 | }; | 78 | }; |
101 | lop_4_4 { | 79 | lop_3_1 { |
102 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 80 | compatible = "system-device-tree-v1,lop,select-v1"; |
103 | cond_root = "cpus_microblaze"; | 81 | select_1; |
104 | cpus_microblaze { | 82 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
105 | cpu@.* { | 83 | select_3 = ":xlnx,data-size:0x40"; |
106 | compatible = ".*microblaze.*"; | 84 | lop_3_1_1 { |
107 | xlnx,use-barrel = <0x01>; | 85 | compatible = "system-device-tree-v1,lop,code-v1"; |
108 | }; | 86 | code = " |
109 | }; | 87 | if __selected__: |
110 | true_track { | 88 | for n in __selected__: |
111 | compatible = "system-device-tree-v1,lop,exec-v1"; | 89 | n.tunes['64-bit'] = '64-bit' |
112 | // sets: node.tunes['barrel-shift'] = 'barrel-shift' | 90 | "; |
113 | options = "prop:barrel-shift"; | ||
114 | exec = <&track_feature>; | ||
115 | }; | 91 | }; |
116 | }; | 92 | }; |
117 | lop_4_5 { | 93 | lop_4_1 { |
118 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 94 | compatible = "system-device-tree-v1,lop,select-v1"; |
119 | cond_root = "cpus_microblaze"; | 95 | select_1; |
120 | cpus_microblaze { | 96 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
121 | cpu@.* { | 97 | select_3 = ":xlnx,use-pcmp-instr:1"; |
122 | compatible = ".*microblaze.*"; | 98 | lop_4_1_1 { |
123 | xlnx,use-pcmp-instr = <0x01>; | 99 | compatible = "system-device-tree-v1,lop,code-v1"; |
124 | }; | 100 | code = " |
125 | }; | 101 | if __selected__: |
126 | true_track { | 102 | for n in __selected__: |
127 | compatible = "system-device-tree-v1,lop,exec-v1"; | 103 | n.tunes['pattern-compare'] = 'pattern-compare' |
128 | // sets: node.tunes['pattern-compare'] = 'pattern-compare' | 104 | "; |
129 | options = "prop:pattern-compare"; | ||
130 | exec = <&track_feature>; | ||
131 | }; | 105 | }; |
132 | }; | 106 | }; |
133 | lop_4_6 { | 107 | lop_5_1 { |
134 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 108 | compatible = "system-device-tree-v1,lop,select-v1"; |
135 | cond_root = "cpus_microblaze"; | 109 | select_1; |
136 | cpus_microblaze { | 110 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
137 | cpu@.* { | 111 | select_3 = ":xlnx,use-reorder-instr:!0"; |
138 | compatible = ".*microblaze.*"; | 112 | lop_5_1_1 { |
139 | xlnx,use-reorder-instr__not__ = <0x0>; | 113 | compatible = "system-device-tree-v1,lop,code-v1"; |
140 | }; | 114 | code = " |
141 | }; | 115 | if __selected__: |
142 | true_track { | 116 | for n in __selected__: |
143 | compatible = "system-device-tree-v1,lop,exec-v1"; | 117 | n.tunes['reorder'] = 'reorder' |
144 | // sets: node.tunes['reorder'] = 'reorder' | 118 | "; |
145 | options = "prop:reorder"; | ||
146 | exec = <&track_feature>; | ||
147 | }; | 119 | }; |
148 | }; | 120 | }; |
149 | lop_4_7 { | 121 | lop_6_1 { |
150 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 122 | compatible = "system-device-tree-v1,lop,select-v1"; |
151 | cond_root = "cpus_microblaze"; | 123 | select_1; |
152 | cpus_microblaze { | 124 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
153 | cpu@.* { | 125 | select_3 = ":xlnx,area-optimized:2"; |
154 | compatible = ".*microblaze.*"; | 126 | lop_6_1_1 { |
155 | xlnx,area-optimized = <0x2>; | 127 | compatible = "system-device-tree-v1,lop,code-v1"; |
156 | }; | 128 | code = " |
157 | }; | 129 | if __selected__: |
158 | true_track { | 130 | for n in __selected__: |
159 | compatible = "system-device-tree-v1,lop,exec-v1"; | 131 | n.tunes['frequency-optimized'] = 'frequency-optimized' |
160 | // sets: node.tunes['frequency-optimized'] = 'frequency-optimized' | 132 | "; |
161 | options = "prop:frequency-optimized"; | ||
162 | exec = <&track_feature>; | ||
163 | }; | 133 | }; |
164 | }; | 134 | }; |
165 | lop_4_8 { | 135 | lop_7_1 { |
166 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 136 | compatible = "system-device-tree-v1,lop,select-v1"; |
167 | cond_root = "cpus_microblaze"; | 137 | select_1; |
168 | cpus_microblaze { | 138 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
169 | cpu@.* { | 139 | select_3 = ":xlnx,use-hw-mul:1"; |
170 | compatible = ".*microblaze.*"; | 140 | lop_7_1_1 { |
171 | xlnx,use-hw-mul = <0x1>; | 141 | compatible = "system-device-tree-v1,lop,code-v1"; |
172 | }; | 142 | code = " |
173 | }; | 143 | if __selected__: |
174 | true_track { | 144 | for n in __selected__: |
175 | compatible = "system-device-tree-v1,lop,exec-v1"; | 145 | n.tunes['multiply-low'] = 'multiply-low' |
176 | // sets: node.tunes['multiply-low'] = 'multiply-low' | 146 | "; |
177 | options = "prop:multiply-low"; | ||
178 | exec = <&track_feature>; | ||
179 | }; | 147 | }; |
180 | }; | 148 | }; |
181 | lop_4_9 { | 149 | lop_8_1 { |
182 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 150 | compatible = "system-device-tree-v1,lop,select-v1"; |
183 | cond_root = "cpus_microblaze"; | 151 | select_1; |
184 | cpus_microblaze { | 152 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
185 | cpu@.* { | 153 | select_3 = ":xlnx,use-hw-mul:2"; |
186 | compatible = ".*microblaze.*"; | 154 | lop_8_1_1 { |
187 | xlnx,use-hw-mul = <0x2>; | 155 | compatible = "system-device-tree-v1,lop,code-v1"; |
188 | }; | 156 | code = " |
189 | }; | 157 | if __selected__: |
190 | true_track { | 158 | for n in __selected__: |
191 | compatible = "system-device-tree-v1,lop,exec-v1"; | 159 | n.tunes['multiply-high'] = 'multiply-high' |
192 | // sets: node.tunes['multiply-high'] = 'multiply-high' | 160 | "; |
193 | options = "prop:multiply-high"; | ||
194 | exec = <&track_feature>; | ||
195 | }; | 161 | }; |
196 | }; | 162 | }; |
197 | lop_4_10 { | 163 | lop_9_1 { |
198 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 164 | compatible = "system-device-tree-v1,lop,select-v1"; |
199 | cond_root = "cpus_microblaze"; | 165 | select_1; |
200 | cpus_microblaze { | 166 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
201 | cpu@.* { | 167 | select_3 = ":xlnx,use-div:1"; |
202 | compatible = ".*microblaze.*"; | 168 | lop_9_1_1 { |
203 | xlnx,use-div = <0x1>; | 169 | compatible = "system-device-tree-v1,lop,code-v1"; |
204 | }; | 170 | code = " |
205 | }; | 171 | if __selected__: |
206 | true_track { | 172 | for n in __selected__: |
207 | compatible = "system-device-tree-v1,lop,exec-v1"; | 173 | n.tunes['divide-hard'] = 'divide-hard' |
208 | // sets: node.tunes['divide-hard'] = 'divide-hard' | 174 | "; |
209 | options = "prop:divide-hard"; | ||
210 | exec = <&track_feature>; | ||
211 | }; | 175 | }; |
212 | }; | 176 | }; |
213 | lop_4_11 { | 177 | lop_10_1 { |
214 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 178 | compatible = "system-device-tree-v1,lop,select-v1"; |
215 | cond_root = "cpus_microblaze"; | 179 | select_1; |
216 | cpus_microblaze { | 180 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
217 | cpu@.* { | 181 | select_3 = ":xlnx,use-fpu:!1"; |
218 | compatible = ".*microblaze.*"; | 182 | select_4 = ":xlnx,use-fpu:!2"; |
219 | xlnx,use-fpu__not__ = <0x1 0x2>; | 183 | lop_10_1_1 { |
220 | }; | 184 | compatible = "system-device-tree-v1,lop,code-v1"; |
221 | }; | 185 | code = " |
222 | true_track { | 186 | if __selected__: |
223 | compatible = "system-device-tree-v1,lop,exec-v1"; | 187 | for n in __selected__: |
224 | // sets: node.tunes['fpu-soft'] = 'fpu-soft' | 188 | n.tunes['fpu-soft'] = 'fpu-soft' |
225 | options = "prop:fpu-soft"; | 189 | "; |
226 | exec = <&track_feature>; | ||
227 | }; | 190 | }; |
228 | }; | 191 | }; |
229 | lop_4_12 { | 192 | lop_11_1 { |
230 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 193 | compatible = "system-device-tree-v1,lop,select-v1"; |
231 | cond_root = "cpus_microblaze"; | 194 | select_1; |
232 | cpus_microblaze { | 195 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
233 | cpu@.* { | 196 | select_3 = ":xlnx,use-fpu:1"; |
234 | compatible = ".*microblaze.*"; | 197 | lop_11_1_1 { |
235 | xlnx,use-fpu = <0x1>; | 198 | compatible = "system-device-tree-v1,lop,code-v1"; |
236 | }; | 199 | code = " |
237 | }; | 200 | if __selected__: |
238 | true_track { | 201 | for n in __selected__: |
239 | compatible = "system-device-tree-v1,lop,exec-v1"; | 202 | n.tunes['fpu-hard'] = 'fpu-hard' |
240 | // sets: node.tunes['fpu-hard'] = 'fpu-hard' | 203 | "; |
241 | options = "prop:fpu-hard"; | ||
242 | exec = <&track_feature>; | ||
243 | }; | 204 | }; |
244 | }; | 205 | }; |
245 | lop_4_13 { | 206 | lop_12_1 { |
246 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 207 | compatible = "system-device-tree-v1,lop,select-v1"; |
247 | cond_root = "cpus_microblaze"; | 208 | select_1; |
248 | cpus_microblaze { | 209 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
249 | cpu@.* { | 210 | select_3 = ":xlnx,use-fpu:2"; |
250 | compatible = ".*microblaze.*"; | 211 | lop_12_1_1 { |
251 | xlnx,use-fpu = <0x2>; | 212 | compatible = "system-device-tree-v1,lop,code-v1"; |
252 | }; | 213 | code = " |
253 | }; | 214 | if __selected__: |
254 | true_track { | 215 | for n in __selected__: |
255 | compatible = "system-device-tree-v1,lop,exec-v1"; | 216 | n.tunes['fpu-hard-extended'] = 'fpu-hard-extended' |
256 | // sets: node.tunes['fpu-hard-extended'] = 'fpu-hard-extended' | 217 | "; |
257 | options = "prop:fpu-hard-extended"; | ||
258 | exec = <&track_feature>; | ||
259 | }; | 218 | }; |
260 | }; | 219 | }; |
261 | |||
262 | lop_output_tunes { | 220 | lop_output_tunes { |
263 | compatible = "system-device-tree-v1,lop,conditional-v1"; | 221 | compatible = "system-device-tree-v1,lop,select-v1"; |
264 | cond_root = "cpus_microblaze"; | 222 | select_1; |
265 | cpus_microblaze { | 223 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; |
266 | cpu@.* { | 224 | lop_output_code { |
267 | compatible = ".*microblaze.*"; | ||
268 | }; | ||
269 | }; | ||
270 | true { | ||
271 | compatible = "system-device-tree-v1,lop,code-v1"; | 225 | compatible = "system-device-tree-v1,lop,code-v1"; |
272 | code = " | 226 | code = " |
273 | #print( '\\n\\nlop_5 true block\\n' ) | 227 | for n in __selected__: |
274 | tname = re.sub( '@', '', n.name ) | 228 | tname = re.sub( '@', '', n.name ) |
275 | print( 'AVAILTUNES += \"microblaze-%s\"' % tname ) | 229 | print( 'AVAILTUNES += \"microblaze-%s\"' % tname ) |
276 | print( 'TUNE_FEATURES_tune-microblaze-%s = \"' % tname, end='' ) | 230 | print( 'TUNE_FEATURES_tune-microblaze-%s = \"' % tname, end='' ) |
277 | for t in node.tunes.values(): | 231 | for t in n.tunes.values(): |
278 | print( ' %s' % t, end='' ) | 232 | print( ' %s' % t, end='' ) |
279 | print( '\"' ) | 233 | print( '\"' ) |
280 | print( 'PACKAGE_EXTRA_ARCHS_tune-microblaze-%s = \"${TUNE_PKGARCH}\"' % tname ) | 234 | print( 'PACKAGE_EXTRA_ARCHS_tune-microblaze-%s = \"${TUNE_PKGARCH}\"' % tname ) |
235 | print( 'TUNE_FEATURES_tune-%s = ${TUNE_FEATURES_tune-microblaze-%s}\\n' % (n.tune_type,tname) ) | ||
281 | 236 | ||
282 | return True | ||
283 | "; | 237 | "; |
284 | }; | 238 | }; |
285 | }; | 239 | }; |