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 | |
| 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>
| -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 | }; |
