Lines Matching +full:msb +full:- +full:-
1 #!/bin/awk -f
2 # SPDX-License-Identifier: GPL-2.0
3 # gen-sysreg.awk: arm64 sysreg header generator
5 # Usage: awk -f gen-sysreg.awk sysregs.txt
35 __current_block_depth--;
48 printf "%-56s%s\n", "#define " name, val
52 function define_field(reg, field, msb, lsb) {
53 define(reg "_" field, "GENMASK(" msb ", " lsb ")")
54 define(reg "_" field "_MASK", "GENMASK(" msb ", " lsb ")")
56 define(reg "_" field "_WIDTH", msb - lsb + 1)
64 # Parse a "<msb>[:<lsb>]" string into the global variables @msb and @lsb
67 if (bitdef ~ /^[0-9]+$/) {
68 msb = bitdef
71 msb = _bits[1]
74 fatal("invalid bit-range definition '" bitdef "'")
78 if (msb != next_bit)
79 fatal(reg "." field " starts at " msb " not " next_bit)
80 if (63 < msb || msb < 0)
84 if (msb < lsb)
85 fatal(reg "." field " invalid bit-range '" bitdef "'")
87 fatal(reg "." field " has invalid range " high "-" low)
89 next_bit = lsb - 1
96 print "/* Generated file - do not edit */"
230 field = "RES0_" msb "_" lsb
232 res0 = res0 " | GENMASK_ULL(" msb ", " lsb ")"
240 field = "RES1_" msb "_" lsb
242 res1 = res1 " | GENMASK_ULL(" msb ", " lsb ")"
250 field = "UNKN_" msb "_" lsb
252 unkn = unkn " | GENMASK_ULL(" msb ", " lsb ")"
262 define_field(reg, field, msb, lsb)
282 define_field(reg, field, msb, lsb)
295 define_field(reg, field, msb, lsb)
308 define_field(reg, field, msb, lsb)
316 msb = null