summaryrefslogtreecommitdiffstats
path: root/meta-xilinx-bsp
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@xilinx.com>2021-03-23 10:06:45 -0700
committerSai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>2021-09-27 21:32:51 -0700
commitf9fca2542a9b7a48c3a3503d0b9c6177fd2f57bc (patch)
treed5be87bd696669b14a5b93fd90201295eb519c2a /meta-xilinx-bsp
parent11b6a866460cb70ab3908f6882ffc0a3a5cfc9b1 (diff)
downloadmeta-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.dts402
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 };