diff --git a/.travis.yml b/.travis.yml index 851822e..076cd2c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ deploy: api_key: $github_access_token file_glob: true file: docs/build/latex/*.pdf - cleanup: true + cleanup: false on: repo: riscv/riscv-config branch: master diff --git a/CHANGELOG.md b/CHANGELOG.md index 66e7599..920f129 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 2.2.0 - 2020-04-07 +### Changed +- Renamed the 'implemented' field in rv32 and rv64 nodes to 'accessible'. +- Modified appropriate definitions for fields dependent on specific extensions like NSU. + ## 2.1.1 - 2020-03-29 ## Fixed - doc issue for mtimecmp diff --git a/docs/source/yaml-specs.rst b/docs/source/yaml-specs.rst index 805f422..5e9c26f 100644 --- a/docs/source/yaml-specs.rst +++ b/docs/source/yaml-specs.rst @@ -11,7 +11,7 @@ ISA YAML Spec **NOTE**: - 1. All fields accept values as integers or hexadecimals(can be used interchangeably) unless specified otherwise. + 1. All integer fields accept values as integers or hexadecimals(can be used interchangeably) unless specified otherwise. 2. An elaborate example of the full-fledge ISA-YAML file can be found here: `ISA-YAML `_ .. include:: schema_isa.rst @@ -34,16 +34,16 @@ CSRs with sub-fields # of the all reset values of the sub-fields rv32: # this node and its subsequent fields can exist # if [M/S/U]XL value can be 1 - implemented: # indicates if the csr exists in rv32 mode or not. + accessible: # indicates if the csr is accessible in rv32 mode or not. # When False, all fields below will be trimmed off # in the checked yaml. False also indicates that - # access-exception should be generated + # access-exception should be generated. fields: # a quick summary of the list of all fields of the # csr including a list of WPRI fields of the csr. - - - - - [30,23] # A list which contains a squashed pair - - 6 # (of form [msb,lsb]) of all WPRI bits within the + - - [23,30] # A list which contains a squashed pair + - 6 # (of form [lsb,msb]) of all WPRI bits within the # csr. Does not exist if there are no WPRI bits : # name of the field @@ -56,7 +56,7 @@ CSRs with sub-fields # or not. When False, all # fields below this will be trimmed. type: # type of field. Can be only one of the following - wlrl: [list of ranges] # field is wlrl and the list of legal values. + wlrl: [list of value-descriptors] # field is wlrl and the set of legal values. ro_constant: # field is readonly and will return the same value. ro_variable: True # field is readonly but the value returned depends # on other arch-states @@ -66,11 +66,11 @@ CSRs with sub-fields wr_illegal: [list of warl-string] rv64: # this node and its subsequent fields can exist # if [M/S/U]XL value can be 2 - implemented: # indicates if this register exists in rv64 mode + accessible: # indicates if this register exists in rv64 mode # or not. Same definition as for rv32 node. rv128: # this node and its subsequent fields can exist if # [M/S/U]XL value can be 3 - implemented: # indicates if this register exists in rv128 mode + accessible: # indicates if this register exists in rv128 mode # or not. Same definition as for rv32 node. CSRs without sub-fields @@ -86,17 +86,17 @@ CSRs without sub-fields # of the all reset values of the sub-fields rv32: # this node and its subsequent fields can exist # if [M/S/U]XL value can be 1 - implemented: # indicates if the csr exists in rv32 mode or not. + accessible: # indicates if the csr is accessible in rv32 mode or not. # When False, all fields below will be trimmed off # in the checked yaml. False also indicates that # access-exception should be generated - fields: # This should be empty always. + fields: [] # This should be empty always. shadow: :: # which this register shadows,'none' indicates that # this register does not shadow anything. msb: # msb index of the csr. max: 31, min:31 lsb: # lsb index of the csr. max: 0, min:0 type: # type of field. Can be only one of the following - wlrl: [list of ranges] # field is wlrl and the list of legal values. + wlrl: [list of value-descriptors] # field is wlrl and the set of legal values. ro_constant: # field is readonly and will return the same value. ro_variable: True # field is readonly but the value returned depends # on other arch-states @@ -106,11 +106,11 @@ CSRs without sub-fields wr_illegal: [list of warl-string] rv64: # this node and its subsequent fields can exist # if [M/S/U]XL value can be 2 - implemented: # indicates if this register exists in rv64 mode + accessible: # indicates if this register exists in rv64 mode # or not. Same definition as for rv32 node. rv128: # this node and its subsequent fields can exist if # [M/S/U]XL value can be 3 - implemented: # indicates if this register exists in rv128 mode + accessible: # indicates if this register exists in rv128 mode Constraints ----------- @@ -120,7 +120,7 @@ Each CSR undergoes the following checks: 1. All implemented fields at the csr-level, if set to True, are checked if they comply with the supported_xlen field of the ISA yaml. 2. The reset-val is checked against compliance with the type field specified - by the user. + by the user. All unimplemented fields are considered to be hardwired to 0. For each of the above templates the following fields for all standard CSRs defined by the spec are frozen and **CANNOT** be modified by the user. @@ -152,7 +152,7 @@ Following is an example of how a user can define the mtvec csr in the input ISA mtvec: reset-val: 0x80010000 rv32: - implemented: true + accessible: true base: implemented: true type: @@ -186,7 +186,7 @@ above user-input: priv_mode: M reset-val: 0x80010000 rv32: - implemented: true + accessible: true base: implemented: true type: @@ -221,7 +221,7 @@ above user-input: - mode - base rv64: - implemented: false + accessible: false WARL field Definition ===================== diff --git a/examples/rv32i_isa.yaml b/examples/rv32i_isa.yaml index 395c5d6..d5ce1d0 100644 --- a/examples/rv32i_isa.yaml +++ b/examples/rv32i_isa.yaml @@ -2,31 +2,29 @@ ISA: RV32IMAFCZicsr_Zifencei User_Spec_Version: '2.3' supported_xlen: [32] misa: - reset-val: 0x40001125 - rv32: - implemented: true - mxl: - implemented: true - type: - ro_constant: [0x01] - extensions: - implemented: true - type: - ro_constant: [0x1125] - rv64: - implemented: false + reset-val: 0x40001125 + rv32: + accessible: true + mxl: + implemented: true + type: + ro_constant: [0x01] + extensions: + implemented: true + type: + ro_constant: [0x1125] mvendorid: reset-val: 0xdeadbeef rv32: - implemented: true + accessible: true type: ro_constant: [0xdeadbeef] rv64: - implemented: false + accessible: false mtvec: reset-val: 0x80010000 rv32: - implemented: true + accessible: true base: implemented: true type: diff --git a/examples/rv64i_isa.yaml b/examples/rv64i_isa.yaml index 18bff67..0b2c82f 100644 --- a/examples/rv64i_isa.yaml +++ b/examples/rv64i_isa.yaml @@ -3,9 +3,9 @@ supported_xlen: [64] misa: reset-val: 0x8000000000000100 rv32: - implemented: false + accessible: false rv64: - implemented: true + accessible: true mxl: implemented: true type: @@ -17,17 +17,15 @@ misa: mvendorid: reset-val: 0xdeadbeef rv32: - implemented: false - type: - ro_constant: [0xdeadbeef] + accessible: false rv64: - implemented: true + accessible: true type: ro_constant: [0xdeadbeef] mtvec: reset-val: 0x0000000080000000 rv64: - implemented: true + accessible: true base: implemented: true type: @@ -49,30 +47,4 @@ mtvec: legal: - "mode[1:0] in [0x0:0x1] # Range of 0 to 1 (inclusive)" wr_illegal: - - "Unchanged" -medeleg: - reset-val: 0x800 - rv32: - implemented: false - rv64: - implemented: false - -mideleg: - rv32: - implemented: false - - rv64: - implemented: false - -sedeleg: - reset-val: 0x800 - rv32: - implemented: false - rv64: - implemented: false - -sideleg: - rv32: - implemented: false - rv64: - implemented: false + - "Unchanged" \ No newline at end of file diff --git a/riscv_config/__init__.py b/riscv_config/__init__.py index 1d9f32b..cc272b3 100644 --- a/riscv_config/__init__.py +++ b/riscv_config/__init__.py @@ -1,3 +1,3 @@ from pkgutil import extend_path __path__ = extend_path(__path__, __name__) -__version__ = "2.1.1" +__version__ = "2.2.0" diff --git a/riscv_config/checker.py b/riscv_config/checker.py index 1aa9eea..3228bd2 100644 --- a/riscv_config/checker.py +++ b/riscv_config/checker.py @@ -24,9 +24,8 @@ def nosset(): return {'implemented': False} -def nouset(): - '''Function to check and set defaults for all fields which are dependent on - the presence of 'U' extension.''' +def uset(): + '''Function to set defaults based on presence of 'U' extension.''' global inp_yaml if 'U' in inp_yaml['ISA']: return {'implemented': True} @@ -34,6 +33,16 @@ def nouset(): return {'implemented': False} +def nuset(): + '''Function to check and set defaults for all fields which are dependent on + the presence of 'U' extension and 'N' extension.''' + global inp_yaml + if 'U' in inp_yaml['ISA'] and 'N' in inp_yaml['ISA']: + return {'implemented': True} + else: + return {'implemented': False} + + def twset(): '''Function to check and set value for tw field in misa.''' global inp_yaml @@ -54,40 +63,40 @@ def delegset(): not ('N' in inp_yaml['ISA'] or 'S' in inp_yaml['ISA'])): var = False - temp = {'rv32': {'implemented': False}, 'rv64': {'implemented': False}} + temp = {'rv32': {'accessible': False}, 'rv64': {'accessible': False}} if 32 in inp_yaml['supported_xlen']: - temp['rv32']['implemented'] = True and var + temp['rv32']['accessible'] = True and var if 64 in inp_yaml['supported_xlen']: - temp['rv64']['implemented'] = True and var + temp['rv64']['accessible'] = True and var return temp def countset(): global inp_yaml - temp = {'rv32': {'implemented': False}, 'rv64': {'implemented': False}} + temp = {'rv32': {'accessible': False}, 'rv64': {'accessible': False}} if 'S' in inp_yaml['ISA'] or 'U' in inp_yaml["ISA"]: if 32 in inp_yaml['supported_xlen']: - temp['rv32']['implemented'] = True + temp['rv32']['accessible'] = True if 64 in inp_yaml['supported_xlen']: - temp['rv64']['implemented'] = True + temp['rv64']['accessible'] = True return temp def regset(): global inp_yaml - temp = {'rv32': {'implemented': False}, 'rv64': {'implemented': False}} + temp = {'rv32': {'accessible': False}, 'rv64': {'accessible': False}} if 32 in inp_yaml['supported_xlen']: - temp['rv32']['implemented'] = True + temp['rv32']['accessible'] = True if 64 in inp_yaml['supported_xlen']: - temp['rv64']['implemented'] = True + temp['rv64']['accessible'] = True return temp def counterhset(): global inp_yaml - temp = {'rv32': {'implemented': False}, 'rv64': {'implemented': False}} + temp = {'rv32': {'accessible': False}, 'rv64': {'accessible': False}} if 32 in inp_yaml['supported_xlen']: - temp['rv32']['implemented'] = True + temp['rv32']['accessible'] = True return temp @@ -204,45 +213,48 @@ def add_def_setters(schema_yaml): schema_yaml['mcounteren']['default_setter'] = lambda doc: countset() schema_yaml['mcause']['default_setter'] = regsetter - usetter = lambda doc: nouset() + nusetter = lambda doc: nuset() schema_yaml['mstatus']['schema']['rv32']['schema']['uie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mstatus']['schema']['rv64']['schema']['uie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mstatus']['schema']['rv32']['schema']['upie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mstatus']['schema']['rv64']['schema']['upie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter + + usetter = lambda doc: uset() schema_yaml['mstatus']['schema']['rv32']['schema']['mprv'][ 'default_setter'] = usetter schema_yaml['mstatus']['schema']['rv64']['schema']['mprv'][ 'default_setter'] = usetter schema_yaml['mstatus']['schema']['rv64']['schema']['uxl'][ 'default_setter'] = usetter + schema_yaml['mip']['schema']['rv32']['schema']['ueip'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mip']['schema']['rv64']['schema']['ueip'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mip']['schema']['rv32']['schema']['utip'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mip']['schema']['rv64']['schema']['utip'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mip']['schema']['rv32']['schema']['usip'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mip']['schema']['rv64']['schema']['usip'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mie']['schema']['rv32']['schema']['ueie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mie']['schema']['rv64']['schema']['ueie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mie']['schema']['rv32']['schema']['utie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mie']['schema']['rv64']['schema']['utie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mie']['schema']['rv32']['schema']['usie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter schema_yaml['mie']['schema']['rv64']['schema']['usie'][ - 'default_setter'] = usetter + 'default_setter'] = nusetter ssetter = lambda doc: nosset() schema_yaml['mstatus']['schema']['rv32']['schema']['sie'][ @@ -299,7 +311,6 @@ def add_def_setters(schema_yaml): 'default_setter'] = ssetter schema_yaml['mie']['schema']['rv64']['schema']['ssie'][ 'default_setter'] = ssetter - twsetter = lambda doc: twset() schema_yaml['mstatus']['schema']['rv32']['schema']['tw'][ 'default_setter'] = twsetter @@ -323,11 +334,11 @@ def trim(foo): ''' keys = foo.keys() if 'rv32' in keys: - if not foo['rv32']['implemented']: - foo['rv32'] = {'implemented': False} + if not foo['rv32']['accessible']: + foo['rv32'] = {'accessible': False} if 'rv64' in keys: - if not foo['rv64']['implemented']: - foo['rv64'] = {'implemented': False} + if not foo['rv64']['accessible']: + foo['rv64'] = {'accessible': False} if 'implemented' in keys: if not foo['implemented']: temp = foo @@ -362,7 +373,7 @@ def groupc(test_list): def get_fields(node, bitwidth): fields = list( set(node.keys()) - - set(['fields', 'msb', 'lsb', 'implemented', 'shadow', 'type'])) + set(['fields', 'msb', 'lsb', 'accessible', 'shadow', 'type'])) if not fields: return fields bits = set(range(bitwidth)) @@ -380,18 +391,18 @@ def check_reset_fill_fields(spec): errors = {} for node in spec: if isinstance(spec[node], dict): - if spec[node]['rv32']['implemented']: + if spec[node]['rv32']['accessible']: spec[node]['rv32']['fields'] = get_fields( spec[node]['rv32'], 32) - if spec[node]['rv64']['implemented']: + if spec[node]['rv64']['accessible']: spec[node]['rv64']['fields'] = get_fields( spec[node]['rv64'], 64) if 'reset-val' in spec[node].keys(): reset_val = spec[node]['reset-val'] - if spec[node]['rv64']['implemented']: + if spec[node]['rv64']['accessible']: field_desc = spec[node]['rv64'] bit_len = 64 - elif spec[node]['rv32']['implemented']: + elif spec[node]['rv32']['accessible']: field_desc = spec[node]['rv32'] bit_len = 32 else: @@ -401,7 +412,28 @@ def check_reset_fill_fields(spec): desc = field_desc['type'] keys = desc.keys() if 'wlrl' in keys: - if reset_val not in desc['wlrl']: + res = False + for entry in desc['wlrl']: + if ":" in entry: + low, high = entry.split(":") + if "x" in low: + low = int(low, base=16) + high = int(high, base=16) + else: + low = int(low) + high = int(high) + if reset_val >= low and reset_val <= high: + res = True + break + else: + if "x" in entry: + val = int(entry, base=16) + else: + val = int(entry) + if val == reset_val: + res = True + break + if not res: error.append( "Reset value doesnt match the 'wlrl' description for the register." ) @@ -438,51 +470,102 @@ def check_reset_fill_fields(spec): bin_str = bin(reset_val)[2:].zfill(bit_len) for field in field_desc['fields']: if isinstance(field, list): - continue - test_val = int( - bin_str[bit_len - 1 - - field_desc[field]['msb']:bit_len - - field_desc[field]['lsb']], - base=2) - desc = field_desc[field]['type'] - keys = desc.keys() - if 'wlrl' in keys: - if test_val not in desc['wlrl']: - self._error( - field, "Reset value for " + field + - " doesnt match the 'wlrl' description.") - elif 'ro_constant' in keys: - if test_val not in desc['ro_constant']: - error.append( - "Reset value for " + field + - " doesnt match the 'ro_constant' description." - ) - elif 'ro_variable' in keys: - pass - elif "warl" in keys: - warl = (warl_interpreter(desc['warl'])) - deps = warl.dependencies() - dep_vals = [] - for dep in deps: - reg = dep.split("::") - if len(reg) == 1: - dep_vals.append(spec[reg[0]]['reset-val']) - else: - bin_str = bin(spec[ - reg[0]]['reset-val'])[2:].zfill(bit_len) - dep_vals.append( - int(bin_str[ - bit_len - 1 - - spec[reg[0]]['rv{}'.format(bit_len)] - [reg[1]]['msb']:bit_len - - spec[reg[0]]['rv{}'.format( - bit_len)][reg[1]]['lsb']], - base=2)) - if (warl.islegal(hex(test_val)[2:], dep_vals) != - True): - error.append( - "Reset value for " + field + - " doesnt match the 'warl' description.") + for entry in field: + if len(entry) == 2: + test_val = int( + bin_str[bit_len - 1 - entry[1]:bit_len - + entry[0]], + base=2) + if test_val != 0: + error.append("WPRI bits " + + str(entry[0]) + " to " + + str(entry[1]) + + " should be zero.") + elif len(entry) == 1: + test_val = int(bin_str[bit_len - 1 - + entry[0]], + base=2) + if test_val != 0: + error.append("WPRI bit " + + str(entry[0]) + + " should be zero.") + else: + test_val = int( + bin_str[bit_len - 1 - + field_desc[field]['msb']:bit_len - + field_desc[field]['lsb']], + base=2) + if field_desc[field]['implemented']: + desc = field_desc[field]['type'] + keys = desc.keys() + if 'wlrl' in keys: + res = False + for entry in desc['wlrl']: + if ":" in entry: + low, high = entry.split(":") + if "x" in low: + low = int(low, base=16) + high = int(high, base=16) + else: + low = int(low) + high = int(high) + if test_val >= low and test_val <= high: + res = True + break + else: + if "x" in entry: + val = int(entry, base=16) + else: + val = int(entry) + if val == test_val: + res = True + break + if not res: + error.append( + "Reset value for " + field + + " doesnt match the 'wlrl' description." + ) + elif 'ro_constant' in keys: + if test_val not in desc['ro_constant']: + error.append( + "Reset value for " + field + + " doesnt match the 'ro_constant' description." + ) + elif 'ro_variable' in keys: + pass + elif "warl" in keys: + warl = (warl_interpreter(desc['warl'])) + deps = warl.dependencies() + dep_vals = [] + for dep in deps: + reg = dep.split("::") + if len(reg) == 1: + dep_vals.append( + spec[reg[0]]['reset-val']) + else: + bin_str = bin( + spec[reg[0]]['reset-val'] + )[2:].zfill(bit_len) + dep_vals.append( + int(bin_str[ + bit_len - 1 - + spec[reg[0]]['rv{}'.format( + bit_len + )][reg[1]]['msb']:bit_len - + spec[reg[0]]['rv{}'.format( + bit_len + )][reg[1]]['lsb']], + base=2)) + if (warl.islegal( + hex(test_val)[2:], dep_vals) != + True): + error.append( + "Reset value for " + field + + " doesnt match the 'warl' description." + ) + elif test_val != 0: + error.append("Reset value for unimplemented " + + field + " cannot be non zero.") if error: errors[node] = error return spec, errors diff --git a/riscv_config/schemaValidator.py b/riscv_config/schemaValidator.py index cf0027c..79e0948 100644 --- a/riscv_config/schemaValidator.py +++ b/riscv_config/schemaValidator.py @@ -160,30 +160,30 @@ def _check_with_n_check(self, field, value): def _check_with_mdeleg_checks(self, field, value): if rv32: - if (value['rv32']['implemented'] == True and + if (value['rv32']['accessible'] == True and (not 'S' in self.document['ISA'] and not 'N' in self.document['ISA'])): - value['rv32']['implemented'] = False + value['rv32']['accessible'] = False self._error(field, "S and N are not present(32)") if rv64: - if (value['rv64']['implemented'] == True and + if (value['rv64']['accessible'] == True and (not 'S' in self.document['ISA'] and not 'N' in self.document['ISA'])): - value['rv64']['implemented'] = False + value['rv64']['accessible'] = False self._error(field, "S and N are not present(64)") def _check_with_ndeleg_checks(self, field, value): if rv32: - if (value['rv32']['implemented'] == True and + if (value['rv32']['accessible'] == True and not 'N' in self.document['ISA']): - value['rv32']['implemented'] = False + value['rv32']['accessible'] = False self._error(field, "N is not present(32)") if rv64: - if (value['rv64']['implemented'] == True and + if (value['rv64']['accessible'] == True and not 'N' in self.document['ISA']): - value['rv64']['implemented'] = False + value['rv64']['accessible'] = False self._error(field, "N is not present(64)") def _check_with_xcause_check(self, field, value): diff --git a/riscv_config/schemas/schema_isa.yaml b/riscv_config/schemas/schema_isa.yaml index 6d62d36..c380ffc 100644 --- a/riscv_config/schemas/schema_isa.yaml +++ b/riscv_config/schemas/schema_isa.yaml @@ -159,7 +159,8 @@ schema_node: type: dict allow_unknown: false noneof: - - schema: + - + schema: warl: &id001 type: dict schema: @@ -177,6 +178,14 @@ schema_node: type: list schema: type: string + - + schema: + wlrl: &id002 + type: list + schema: + type: string + regex: (^0x[012456789abcdef]+:0x[0123456789abcdef]+$)|(^[0-9]+:[0-9]+$)|(^[0-9]+$)|(^0x[012456789abcdef]+$) + misa: type: dict schema: @@ -201,12 +210,6 @@ misa: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv32_check - - cannot_be_false_rv32 fields: type: list default: [] @@ -236,20 +239,23 @@ misa: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 - default: - implemented: false + default: + implemented: false extensions: type: dict schema: @@ -277,31 +283,34 @@ misa: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 default: implemented: false + accessible: + type: boolean + default: true + check_with: + - rv32_check + - cannot_be_false_rv32 default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv64_check - - cannot_be_false_rv64 fields: type: list default: [] @@ -331,17 +340,20 @@ misa: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 default: implemented: false @@ -372,29 +384,39 @@ misa: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 default: implemented: false + accessible: + type: boolean + default: true + check_with: + - rv64_check + - cannot_be_false_rv64 default: - implemented: false + accessible: false + mstatus: type: dict schema: description: type: string - default: "The mstatus register keeps track of and controls the hart\u2019s current\ - \ operating state." + default: The mstatus register keeps track of and controls the hart’s current + operating state. address: type: integer default: 768 @@ -408,13 +430,10 @@ mstatus: reset-val: type: integer check_with: max_length + default: 0 rv32: type: dict schema: - implemented: - type: boolean - default: false - check_with: rv32_check fields: type: list default: [] @@ -444,18 +463,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false sie: @@ -484,18 +499,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false mie: @@ -522,20 +533,11 @@ mstatus: default: true type: type: dict - check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + wlrl: *id002 + default: + wlrl: + - 0:1 default: implemented: true upie: @@ -564,18 +566,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false spie: @@ -605,17 +603,11 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 default: implemented: false @@ -644,20 +636,11 @@ mstatus: default: true type: type: dict - check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + wlrl: *id002 + default: + wlrl: + - 0:1 default: implemented: true spp: @@ -686,17 +669,11 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 default: implemented: false @@ -726,18 +703,15 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - "0" default: implemented: true fs: @@ -767,17 +741,16 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: warl: *id001 default: implemented: false @@ -807,19 +780,12 @@ mstatus: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + ro_variable: + type: boolean + default: + ro_variable: True + readonly: true default: implemented: false mprv: @@ -849,18 +815,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false sum: @@ -890,18 +852,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false mxr: @@ -930,18 +888,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false tvm: @@ -971,18 +925,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false tw: @@ -1011,18 +961,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false tsr: @@ -1051,18 +997,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false sd: @@ -1091,25 +1033,21 @@ mstatus: type: type: dict schema: - ro_constant: - type: list - schema: - type: integer + ro_variable: + type: boolean default: - ro_constant: - - 0 - - 1 + ro_variable: True default: implemented: true + accessible: + type: boolean + default: false + check_with: rv32_check default: - implemented: true + accessible: true rv64: type: dict schema: - implemented: - type: boolean - default: false - check_with: rv64_check fields: type: list default: [] @@ -1139,18 +1077,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false sie: @@ -1179,18 +1113,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false mie: @@ -1218,19 +1148,11 @@ mstatus: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + wlrl: *id002 + default: + wlrl: + - 0:1 default: implemented: true upie: @@ -1259,18 +1181,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false spie: @@ -1300,18 +1218,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false mpie: @@ -1340,19 +1254,11 @@ mstatus: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + wlrl: *id002 + default: + wlrl: + - 0:1 default: implemented: true spp: @@ -1381,18 +1287,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false mpp: @@ -1421,18 +1323,15 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - "0" default: implemented: true fs: @@ -1462,17 +1361,16 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: warl: *id001 default: implemented: false @@ -1502,19 +1400,12 @@ mstatus: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + ro_variable: + type: boolean + readonly: true + default: + ro_variable: true default: implemented: false mprv: @@ -1544,18 +1435,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false sum: @@ -1585,18 +1472,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false mxr: @@ -1625,18 +1508,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false tvm: @@ -1666,18 +1545,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false tw: @@ -1706,18 +1581,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false tsr: @@ -1746,18 +1617,14 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: [0:1] default: implemented: false sxl: @@ -1786,17 +1653,16 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: warl: *id001 default: implemented: true @@ -1826,17 +1692,16 @@ mstatus: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: warl: *id001 default: implemented: true @@ -1866,18 +1731,19 @@ mstatus: type: type: dict schema: - ro_constant: - type: list - schema: - type: integer + ro_variable: + type: boolean default: - ro_constant: - - 0 - - 1 + ro_variable: true default: implemented: true + accessible: + type: boolean + default: false + check_with: rv64_check default: - implemented: true + accessible: true + mvendorid: type: dict schema: @@ -1903,12 +1769,6 @@ mvendorid: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv32_check - - cannot_be_false_rv32 fields: type: list default: [] @@ -1937,16 +1797,17 @@ mvendorid: default: ro_constant: - 0 + accessible: + type: boolean + default: true + check_with: + - rv32_check + - cannot_be_false_rv32 default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: - - rv64_check - - cannot_be_false_rv64 fields: type: list default: [] @@ -1975,8 +1836,14 @@ mvendorid: default: ro_constant: - 0 + accessible: + default: true + check_with: + - rv64_check + - cannot_be_false_rv64 default: - implemented: false + accessible: false + marchid: type: dict schema: @@ -2001,12 +1868,6 @@ marchid: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv32_check - - cannot_be_false_rv32 fields: type: list default: [] @@ -2035,17 +1896,17 @@ marchid: default: ro_constant: - 0 + accessible: + type: boolean + default: true + check_with: + - rv32_check + - cannot_be_false_rv32 default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv64_check - - cannot_be_false_rv64 fields: type: list default: [] @@ -2074,8 +1935,15 @@ marchid: default: ro_constant: - 0 + accessible: + type: boolean + default: true + check_with: + - rv64_check + - cannot_be_false_rv64 default: - implemented: false + accessible: false + mimpid: type: dict schema: @@ -2099,12 +1967,6 @@ mimpid: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv32_check - - cannot_be_false_rv32 fields: type: list default: [] @@ -2133,17 +1995,17 @@ mimpid: default: ro_constant: - 0 + accessible: + type: boolean + default: true + check_with: + - rv32_check + - cannot_be_false_rv32 default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv64_check - - cannot_be_false_rv64 fields: type: list default: [] @@ -2172,8 +2034,15 @@ mimpid: default: ro_constant: - 0 + accessible: + type: boolean + default: true + check_with: + - rv64_check + - cannot_be_false_rv64 default: - implemented: false + accessible: false + mhartid: type: dict schema: @@ -2198,10 +2067,6 @@ mhartid: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -2230,15 +2095,15 @@ mhartid: default: ro_constant: - 0 + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv64_check fields: type: list default: [] @@ -2267,8 +2132,13 @@ mhartid: default: ro_constant: - 0 + accessible: + type: boolean + default: true + check_with: rv64_check default: - implemented: false + accessible: false + mtvec: type: dict schema: @@ -2292,11 +2162,6 @@ mtvec: rv32: type: dict schema: - implemented: - type: boolean - check_with: - - rv32_check - - cannot_be_false_rv32 fields: type: list default: [] @@ -2327,17 +2192,20 @@ mtvec: type: type: dict oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 1073741823 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 mode: type: dict @@ -2366,28 +2234,31 @@ mtvec: type: type: dict oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 1 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 + accessible: + type: boolean + check_with: + - rv32_check + - cannot_be_false_rv32 default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - check_with: - - rv64_check - - cannot_be_false_rv64 fields: type: list default: [] @@ -2419,17 +2290,20 @@ mtvec: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 default: implemented: true @@ -2460,20 +2334,29 @@ mtvec: type: type: dict oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 1 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 + accessible: + type: boolean + check_with: + - rv64_check + - cannot_be_false_rv64 default: - implemented: false + accessible: false + mideleg: type: dict schema: @@ -2493,14 +2376,10 @@ mideleg: reset-val: type: integer check_with: max_length + default: 0 rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv32_check fields: type: list default: [] @@ -2520,29 +2399,25 @@ mideleg: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + warl: *id001 + default: + warl: + dependency_fields: [] + legal: + - "mideleg[31:0] in [0x00]" + wr_illegal: + - 'unchanged' + accessible: + type: boolean + default: true + check_with: + - rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv64_check fields: type: list default: [] @@ -2562,22 +2437,24 @@ mideleg: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + warl: *id001 + default: + warl: + dependency_fields: [] + legal: + - "mideleg[63:0] in [0x00]" + wr_illegal: + - 'unchanged' + accessible: + type: boolean + default: true + check_with: + - rv64_check default: - implemented: false + accessible: false check_with: mdeleg_checks + medeleg: type: dict schema: @@ -2603,11 +2480,6 @@ medeleg: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv32_check fields: type: list default: [] @@ -2627,29 +2499,25 @@ medeleg: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + warl: *id001 + default: + warl: + dependency_fields: [] + legal: + - "medeleg[31:0] in [0x00]" + wr_illegal: + - 'unchanged' + accessible: + type: boolean + default: true + check_with: + - rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv64_check fields: type: list default: [] @@ -2669,22 +2537,24 @@ medeleg: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + warl: *id001 + default: + warl: + dependency_fields: [] + legal: + - "medeleg[63:0] in [0x00]" + wr_illegal: + - 'unchanged' + accessible: + type: boolean + default: true + check_with: + - rv64_check default: - implemented: false + accessible: false check_with: mdeleg_checks + mip: type: dict schema: @@ -2705,13 +2575,10 @@ mip: reset-val: type: integer check_with: max_length + default: 0 rv32: type: dict schema: - implemented: - type: boolean - default: false - check_with: rv32_check fields: type: list default: [] @@ -2741,20 +2608,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False ssip: type: dict schema: @@ -2781,20 +2645,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False msip: type: dict schema: @@ -2820,16 +2681,12 @@ mip: type: type: dict schema: - ro_constant: - type: list - schema: - type: integer - max: 1 + ro_variable: + type: boolean + allowed: [true] readonly: true default: - ro_constant: - - 0 - - 1 + ro_variable: true default: implemented: true utip: @@ -2858,20 +2715,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False stip: type: dict schema: @@ -2898,20 +2752,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False mtip: type: dict schema: @@ -2937,16 +2788,12 @@ mip: type: type: dict schema: - ro_constant: - type: list - schema: - type: integer - max: 1 + ro_variable: + type: boolean + allowed: [True] readonly: true default: - ro_constant: - - 0 - - 1 + ro_variable: True default: implemented: true ueip: @@ -2975,20 +2822,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False seip: type: dict schema: @@ -3013,14 +2857,19 @@ mip: default: true type: type: dict - schema: - ro_variable: - type: boolean - default: true + check_with: wr_illegal + oneof: + - + schema: + wlrl: *id002 + - + schema: + warl: *id001 default: - ro_variable: true + wlrl: + - 0:1 default: - implemented: true + implemented: False meip: type: dict schema: @@ -3046,26 +2895,22 @@ mip: type: type: dict schema: - ro_constant: - type: list - schema: - type: integer - max: 1 + ro_variable: + type: boolean + allowed: [True] readonly: true default: - ro_constant: - - 0 - - 1 + ro_variable: True default: implemented: true + accessible: + type: boolean + default: false + check_with: rv32_check required: true rv64: type: dict schema: - implemented: - type: boolean - default: false - check_with: rv64_check fields: type: list default: [] @@ -3095,20 +2940,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False ssip: type: dict schema: @@ -3135,20 +2977,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False msip: type: dict schema: @@ -3174,16 +3013,12 @@ mip: type: type: dict schema: - ro_constant: - type: list - schema: - type: integer - max: 1 + ro_variable: + type: boolean + allowed: [true] readonly: true default: - ro_constant: - - 0 - - 1 + ro_variable: true default: implemented: true utip: @@ -3212,20 +3047,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False stip: type: dict schema: @@ -3252,20 +3084,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False mtip: type: dict schema: @@ -3291,16 +3120,12 @@ mip: type: type: dict schema: - ro_constant: - type: list - schema: - type: integer - max: 1 + ro_variable: + type: boolean + allowed: [True] readonly: true default: - ro_constant: - - 0 - - 1 + ro_variable: True default: implemented: true ueip: @@ -3329,20 +3154,17 @@ mip: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False seip: type: dict schema: @@ -3367,14 +3189,19 @@ mip: default: true type: type: dict - schema: - ro_variable: - type: boolean - default: true + check_with: wr_illegal + oneof: + - + schema: + wlrl: *id002 + - + schema: + warl: *id001 default: - ro_variable: true + wlrl: + - 0:1 default: - implemented: true + implemented: False meip: type: dict schema: @@ -3400,18 +3227,20 @@ mip: type: type: dict schema: - ro_constant: - type: list - schema: - type: integer - max: 1 + ro_variable: + type: boolean + allowed: [True] readonly: true default: - ro_constant: - - 0 - - 1 + ro_variable: True default: implemented: true + accessible: + type: boolean + default: false + check_with: rv64_check + required: true + mie: type: dict schema: @@ -3432,13 +3261,10 @@ mie: reset-val: type: integer check_with: max_length + default: 0 rv32: type: dict schema: - implemented: - type: boolean - default: false - check_with: rv32_check fields: type: list default: [] @@ -3468,20 +3294,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False ssie: type: dict schema: @@ -3508,20 +3331,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False msie: type: dict schema: @@ -3546,14 +3366,15 @@ mie: default: true type: type: dict + check_with: wr_illegal schema: - ro_variable: - type: boolean - default: true + wlrl: *id002 default: - ro_variable: true + wlrl: + - 0x0:0x1 + readonly: true default: - implemented: true + implemented: True utie: type: dict schema: @@ -3580,20 +3401,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False stie: type: dict schema: @@ -3620,20 +3438,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False mtie: type: dict schema: @@ -3658,12 +3473,12 @@ mie: default: true type: type: dict + check_with: wr_illegal schema: - ro_variable: - type: boolean - default: true - default: - ro_variable: true + wlrl: *id002 + default: + wlrl: + - 0:1 default: implemented: true ueie: @@ -3692,20 +3507,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False seie: type: dict schema: @@ -3730,14 +3542,19 @@ mie: default: true type: type: dict - schema: - ro_variable: - type: boolean - default: true + check_with: wr_illegal + oneof: + - + schema: + wlrl: *id002 + - + schema: + warl: *id001 default: - ro_variable: true + wlrl: + - 0:1 default: - implemented: true + implemented: False meie: type: dict schema: @@ -3762,22 +3579,21 @@ mie: default: true type: type: dict + check_with: wr_illegal schema: - ro_variable: - type: boolean - default: true - default: - ro_variable: true + wlrl: *id002 + default: + wlrl: [0:1] default: implemented: true + accessible: + type: boolean + default: false + check_with: rv32_check required: true rv64: type: dict schema: - implemented: - type: boolean - default: false - check_with: rv64_check fields: type: list default: [] @@ -3807,20 +3623,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False ssie: type: dict schema: @@ -3847,20 +3660,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False msie: type: dict schema: @@ -3885,14 +3695,15 @@ mie: default: true type: type: dict + check_with: wr_illegal schema: - ro_variable: - type: boolean - default: true + wlrl: *id002 default: - ro_variable: true + wlrl: + - 0x0:0x1 + readonly: true default: - implemented: true + implemented: True utie: type: dict schema: @@ -3919,20 +3730,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False stie: type: dict schema: @@ -3959,20 +3767,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False mtie: type: dict schema: @@ -3997,12 +3802,12 @@ mie: default: true type: type: dict + check_with: wr_illegal schema: - ro_variable: - type: boolean - default: true - default: - ro_variable: true + wlrl: *id002 + default: + wlrl: + - 0:1 default: implemented: true ueie: @@ -4031,20 +3836,17 @@ mie: type: dict check_with: wr_illegal oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: + - + schema: + wlrl: *id002 + - + schema: warl: *id001 + default: + wlrl: + - 0:1 default: - implemented: true + implemented: False seie: type: dict schema: @@ -4069,14 +3871,19 @@ mie: default: true type: type: dict - schema: - ro_variable: - type: boolean - default: true + check_with: wr_illegal + oneof: + - + schema: + wlrl: *id002 + - + schema: + warl: *id001 default: - ro_variable: true + wlrl: + - 0:1 default: - implemented: true + implemented: False meie: type: dict schema: @@ -4101,16 +3908,20 @@ mie: default: true type: type: dict + check_with: wr_illegal schema: - ro_variable: - type: boolean - default: true - default: - ro_variable: true + wlrl: *id002 + default: + wlrl: [0:1] default: implemented: true - required: true + accessible: + type: boolean + default: false + check_with: rv64_check + required: true required: true + mscratch: type: dict schema: @@ -4135,10 +3946,6 @@ mscratch: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -4159,33 +3966,37 @@ mscratch: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 default: warl: dependency_fields: [] legal: - - 'mscratch[31:0] in [0x00000000:0xFFFFFFFF]' + - mscratch[31:0] in [0x00000000:0xFFFFFFFF] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -4206,28 +4017,35 @@ mscratch: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 default: warl: dependency_fields: [] legal: - - 'mscratch[63:0] in [0x00000000:0xFFFFFFFFFFFFFFFF]' + - mscratch[63:0] in [0x00000000:0xFFFFFFFFFFFFFFFF] wr_illegal: - - 'unchanged' + - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false + mepc: type: dict schema: @@ -4252,10 +4070,6 @@ mepc: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -4275,36 +4089,25 @@ mepc: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mepc[31:0] in [0x00000000:0xFFFFFFFF]' + - mepc[31:0] in [0x00000000:0xFFFFFFFF] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv64_check fields: type: list default: [] @@ -4324,29 +4127,22 @@ mepc: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mepc[63:0] in [0x00000000:0xFFFFFFFFFFFFFFFF]' + - mepc[63:0] in [0x00000000:0xFFFFFFFFFFFFFFFF] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv64_check default: - implemented: false + accessible: false mtval: type: dict @@ -4372,10 +4168,6 @@ mtval: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -4391,39 +4183,29 @@ mtval: type: integer default: 0 allowed: - - 0 - type: - type: dict - check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + - 0 + type: + type: dict + check_with: wr_illegal + schema: + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mtval[31:0] in [0x00000000:0xFFFFFFFF]' + - mtval[31:0] in [0x00000000:0xFFFFFFFF] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -4443,29 +4225,21 @@ mtval: type: type: dict check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mtval[63:0] in [0x00000000:0xFFFFFFFFFFFFFFFF]' + - mtval[63:0] in [0x00000000:0xFFFFFFFFFFFFFFFF] wr_illegal: - - 'unchanged' + - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false required: true mcause: @@ -4487,13 +4261,10 @@ mcause: reset-val: type: integer check_with: max_length + default: 0 rv32: type: dict schema: - implemented: - type: boolean - default: false - check_with: rv32_check fields: type: list default: [] @@ -4523,20 +4294,12 @@ mcause: - true type: type: dict - check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + wlrl: *id002 + default: + wlrl: + - 0x0:0x1 + readonly: True default: implemented: true exception_code: @@ -4566,22 +4329,21 @@ mcause: type: type: dict schema: - wlrl: - type: list + wlrl: *id002 default: - wlrl: - - (0,15) + wlrl: + - 0:15 default: implemented: true + accessible: + type: boolean + default: false + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - type: boolean - default: false - check_with: rv64_check fields: type: list default: [] @@ -4596,14 +4358,14 @@ mcause: default: none msb: type: integer - default: 31 + default: 63 allowed: - - 31 + - 63 lsb: type: integer - default: 31 + default: 63 allowed: - - 31 + - 63 implemented: type: boolean default: true @@ -4611,20 +4373,11 @@ mcause: - true type: type: dict - check_with: wr_illegal - oneof: - - schema: - ro_constant: - type: list - schema: - type: integer - max: 4611686018427387903 - maxlength: 1 - - schema: - ro_variable: - type: boolean - - schema: - warl: *id001 + schema: + wlrl: *id002 + default: + wlrl: + - 0:1 default: implemented: true exception_code: @@ -4638,9 +4391,9 @@ mcause: default: none msb: type: integer - default: 30 + default: 62 allowed: - - 30 + - 62 lsb: type: integer default: 0 @@ -4654,22 +4407,27 @@ mcause: type: type: dict schema: - wlrl: - type: list + wlrl: *id002 default: wlrl: - - (0,15) + - 0:15 default: implemented: true + accessible: + type: boolean + default: false + check_with: rv64_check default: - implemented: false + accessible: false mcounteren: type: dict schema: description: type: string - default: The mcounteren is a 32-bit register that controls the availability of the hardware performance-monitoring counters to the next-lowest privileged mode. + default: The mcounteren is a 32-bit register that controls the availability + of the hardware performance-monitoring counters to the next-lowest privileged + mode. address: type: integer default: 0x306 @@ -4687,10 +4445,6 @@ mcounteren: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -4711,22 +4465,23 @@ mcounteren: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mcounteren[31:0] in [0x00000000]' + - mcounteren[31:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -4747,23 +4502,27 @@ mcounteren: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mcounteren[31:0] in [0x00000000]' + - mcounteren[31:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mcountinhibit: type: dict schema: description: type: string - default: The mcountinhibit is a 32-bit WARL register that controls which of the hardware performance-monitoring counters increment. + default: The mcountinhibit is a 32-bit WARL register that controls which of + the hardware performance-monitoring counters increment. address: type: integer default: 0x320 @@ -4781,10 +4540,6 @@ mcountinhibit: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -4805,22 +4560,23 @@ mcountinhibit: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mcountinhibit[31:0] in [0x00000000]' + - mcountinhibit[31:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -4841,18 +4597,20 @@ mcountinhibit: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mcounterinhibit[31:0] in [0x00000000]' + - mcounterinhibit[31:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false -## Counters mhpmevent3: type: dict schema: @@ -4875,10 +4633,6 @@ mhpmevent3: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -4899,22 +4653,23 @@ mhpmevent3: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mhpmevent3[63:0] in [0x00000000]' + - mhpmevent3[63:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -4935,23 +4690,26 @@ mhpmevent3: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mhpmevent3[63:0] in [0x00000000]' + - mhpmevent3[63:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter3: type: dict schema: description: type: string - default: The mhpmcounter3 is a 64-bit counter. Returns lower 32 bits in RV32I mode. + default: The mhpmcounter3 is a 64-bit counter. Returns lower 32 bits in RV32I + mode. address: type: integer default: 0xB03 @@ -4968,10 +4726,6 @@ mhpmcounter3: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -4992,22 +4746,23 @@ mhpmcounter3: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mhpmcounter3[31:0] in [0x00000000]' + - mhpmcounter3[31:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -5028,16 +4783,19 @@ mhpmcounter3: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mhpmcounter3[63:0] in [0x00000000]' + - mhpmcounter3[63:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter3h: type: dict schema: @@ -5060,10 +4818,6 @@ mhpmcounter3h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5084,26 +4838,28 @@ mhpmcounter3h: type: dict check_with: wr_illegal schema: - warl: *id001 + warl: *id001 default: warl: dependency_fields: [] legal: - - 'mhpmcounter3h[31:0] in [0x00000000]' + - mhpmcounter3h[31:0] in [0x00000000] wr_illegal: - - 'unchanged' + - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false - + default: + accessible: false mhpmevent4: type: dict schema: @@ -5126,10 +4882,6 @@ mhpmevent4: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5158,14 +4910,15 @@ mhpmevent4: - mhpmevent4[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -5194,9 +4947,11 @@ mhpmevent4: - mhpmevent4[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter4: type: dict schema: @@ -5220,10 +4975,6 @@ mhpmcounter4: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5252,14 +5003,15 @@ mhpmcounter4: - mhpmcountet4[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -5288,8 +5040,11 @@ mhpmcounter4: - mhpmcountet4[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter4h: type: dict schema: @@ -5312,10 +5067,6 @@ mhpmcounter4h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5344,17 +5095,20 @@ mhpmcounter4h: - mhpmcountet4h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent5: type: dict schema: @@ -5377,10 +5131,6 @@ mhpmevent5: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5409,14 +5159,15 @@ mhpmevent5: - mhpmevent5[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -5445,9 +5196,11 @@ mhpmevent5: - mhpmevent5[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter5: type: dict schema: @@ -5471,10 +5224,6 @@ mhpmcounter5: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5503,14 +5252,15 @@ mhpmcounter5: - mhpmcountet5[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -5539,8 +5289,11 @@ mhpmcounter5: - mhpmcountet5[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter5h: type: dict schema: @@ -5563,10 +5316,6 @@ mhpmcounter5h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5595,17 +5344,20 @@ mhpmcounter5h: - mhpmcountet5h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent6: type: dict schema: @@ -5628,10 +5380,6 @@ mhpmevent6: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5660,14 +5408,15 @@ mhpmevent6: - mhpmevent6[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -5696,9 +5445,11 @@ mhpmevent6: - mhpmevent6[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter6: type: dict schema: @@ -5722,10 +5473,6 @@ mhpmcounter6: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5754,14 +5501,15 @@ mhpmcounter6: - mhpmcountet6[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -5790,8 +5538,11 @@ mhpmcounter6: - mhpmcountet6[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter6h: type: dict schema: @@ -5814,10 +5565,6 @@ mhpmcounter6h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5846,17 +5593,20 @@ mhpmcounter6h: - mhpmcountet6h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent7: type: dict schema: @@ -5879,10 +5629,6 @@ mhpmevent7: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -5911,14 +5657,15 @@ mhpmevent7: - mhpmevent7[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -5947,9 +5694,11 @@ mhpmevent7: - mhpmevent7[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter7: type: dict schema: @@ -5973,10 +5722,6 @@ mhpmcounter7: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6005,14 +5750,15 @@ mhpmcounter7: - mhpmcountet7[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -6041,8 +5787,11 @@ mhpmcounter7: - mhpmcountet7[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter7h: type: dict schema: @@ -6065,10 +5814,6 @@ mhpmcounter7h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6097,17 +5842,20 @@ mhpmcounter7h: - mhpmcountet7h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent8: type: dict schema: @@ -6130,10 +5878,6 @@ mhpmevent8: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6162,14 +5906,15 @@ mhpmevent8: - mhpmevent8[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -6198,9 +5943,11 @@ mhpmevent8: - mhpmevent8[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter8: type: dict schema: @@ -6224,10 +5971,6 @@ mhpmcounter8: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6256,14 +5999,15 @@ mhpmcounter8: - mhpmcountet8[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -6292,8 +6036,11 @@ mhpmcounter8: - mhpmcountet8[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter8h: type: dict schema: @@ -6316,10 +6063,6 @@ mhpmcounter8h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6348,17 +6091,20 @@ mhpmcounter8h: - mhpmcountet8h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent9: type: dict schema: @@ -6381,10 +6127,6 @@ mhpmevent9: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6413,14 +6155,15 @@ mhpmevent9: - mhpmevent9[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -6449,9 +6192,11 @@ mhpmevent9: - mhpmevent9[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter9: type: dict schema: @@ -6475,10 +6220,6 @@ mhpmcounter9: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6507,14 +6248,15 @@ mhpmcounter9: - mhpmcountet9[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -6543,8 +6285,11 @@ mhpmcounter9: - mhpmcountet9[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter9h: type: dict schema: @@ -6567,10 +6312,6 @@ mhpmcounter9h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6599,17 +6340,20 @@ mhpmcounter9h: - mhpmcountet9h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent10: type: dict schema: @@ -6632,10 +6376,6 @@ mhpmevent10: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6664,14 +6404,15 @@ mhpmevent10: - mhpmevent10[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -6700,9 +6441,11 @@ mhpmevent10: - mhpmevent10[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter10: type: dict schema: @@ -6726,10 +6469,6 @@ mhpmcounter10: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6758,14 +6497,15 @@ mhpmcounter10: - mhpmcountet10[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -6794,8 +6534,11 @@ mhpmcounter10: - mhpmcountet10[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter10h: type: dict schema: @@ -6818,10 +6561,6 @@ mhpmcounter10h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6850,16 +6589,19 @@ mhpmcounter10h: - mhpmcountet10h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true default: - implemented: false - + accessible: false mhpmevent11: type: dict schema: @@ -6882,10 +6624,6 @@ mhpmevent11: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -6914,14 +6652,15 @@ mhpmevent11: - mhpmevent11[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -6950,9 +6689,11 @@ mhpmevent11: - mhpmevent11[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter11: type: dict schema: @@ -6976,10 +6717,6 @@ mhpmcounter11: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7008,14 +6745,15 @@ mhpmcounter11: - mhpmcountet11[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -7044,8 +6782,11 @@ mhpmcounter11: - mhpmcountet11[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter11h: type: dict schema: @@ -7068,10 +6809,6 @@ mhpmcounter11h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7100,17 +6837,20 @@ mhpmcounter11h: - mhpmcountet11h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent12: type: dict schema: @@ -7133,10 +6873,6 @@ mhpmevent12: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7165,14 +6901,15 @@ mhpmevent12: - mhpmevent12[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -7201,9 +6938,11 @@ mhpmevent12: - mhpmevent12[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter12: type: dict schema: @@ -7227,10 +6966,6 @@ mhpmcounter12: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7259,14 +6994,15 @@ mhpmcounter12: - mhpmcountet12[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -7295,8 +7031,11 @@ mhpmcounter12: - mhpmcountet12[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter12h: type: dict schema: @@ -7319,10 +7058,6 @@ mhpmcounter12h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7351,17 +7086,20 @@ mhpmcounter12h: - mhpmcountet12h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent13: type: dict schema: @@ -7384,10 +7122,6 @@ mhpmevent13: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7416,14 +7150,15 @@ mhpmevent13: - mhpmevent13[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -7452,9 +7187,11 @@ mhpmevent13: - mhpmevent13[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter13: type: dict schema: @@ -7478,10 +7215,6 @@ mhpmcounter13: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7510,14 +7243,15 @@ mhpmcounter13: - mhpmcountet13[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -7546,8 +7280,11 @@ mhpmcounter13: - mhpmcountet13[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter13h: type: dict schema: @@ -7570,10 +7307,6 @@ mhpmcounter13h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7602,17 +7335,20 @@ mhpmcounter13h: - mhpmcountet13h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent14: type: dict schema: @@ -7635,10 +7371,6 @@ mhpmevent14: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7667,14 +7399,15 @@ mhpmevent14: - mhpmevent14[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -7703,9 +7436,11 @@ mhpmevent14: - mhpmevent14[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter14: type: dict schema: @@ -7729,10 +7464,6 @@ mhpmcounter14: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7761,14 +7492,15 @@ mhpmcounter14: - mhpmcountet14[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -7797,8 +7529,11 @@ mhpmcounter14: - mhpmcountet14[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter14h: type: dict schema: @@ -7821,10 +7556,6 @@ mhpmcounter14h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7853,17 +7584,20 @@ mhpmcounter14h: - mhpmcountet14h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent15: type: dict schema: @@ -7886,10 +7620,6 @@ mhpmevent15: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -7918,14 +7648,15 @@ mhpmevent15: - mhpmevent15[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -7954,9 +7685,11 @@ mhpmevent15: - mhpmevent15[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter15: type: dict schema: @@ -7980,10 +7713,6 @@ mhpmcounter15: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8012,14 +7741,15 @@ mhpmcounter15: - mhpmcountet15[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -8048,8 +7778,11 @@ mhpmcounter15: - mhpmcountet15[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter15h: type: dict schema: @@ -8072,10 +7805,6 @@ mhpmcounter15h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8104,17 +7833,20 @@ mhpmcounter15h: - mhpmcountet15h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent16: type: dict schema: @@ -8137,10 +7869,6 @@ mhpmevent16: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8169,14 +7897,15 @@ mhpmevent16: - mhpmevent16[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -8205,9 +7934,11 @@ mhpmevent16: - mhpmevent16[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter16: type: dict schema: @@ -8231,10 +7962,6 @@ mhpmcounter16: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8263,14 +7990,15 @@ mhpmcounter16: - mhpmcountet16[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -8299,8 +8027,11 @@ mhpmcounter16: - mhpmcountet16[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter16h: type: dict schema: @@ -8323,10 +8054,6 @@ mhpmcounter16h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8355,17 +8082,20 @@ mhpmcounter16h: - mhpmcountet16h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent17: type: dict schema: @@ -8388,10 +8118,6 @@ mhpmevent17: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8420,14 +8146,15 @@ mhpmevent17: - mhpmevent17[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -8456,9 +8183,11 @@ mhpmevent17: - mhpmevent17[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter17: type: dict schema: @@ -8482,10 +8211,6 @@ mhpmcounter17: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8514,14 +8239,15 @@ mhpmcounter17: - mhpmcountet17[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -8550,8 +8276,11 @@ mhpmcounter17: - mhpmcountet17[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter17h: type: dict schema: @@ -8574,10 +8303,6 @@ mhpmcounter17h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8606,17 +8331,20 @@ mhpmcounter17h: - mhpmcountet17h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent18: type: dict schema: @@ -8639,10 +8367,6 @@ mhpmevent18: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8671,14 +8395,15 @@ mhpmevent18: - mhpmevent18[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -8707,9 +8432,11 @@ mhpmevent18: - mhpmevent18[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter18: type: dict schema: @@ -8733,10 +8460,6 @@ mhpmcounter18: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8765,14 +8488,15 @@ mhpmcounter18: - mhpmcountet18[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -8801,8 +8525,11 @@ mhpmcounter18: - mhpmcountet18[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter18h: type: dict schema: @@ -8825,10 +8552,6 @@ mhpmcounter18h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8857,17 +8580,20 @@ mhpmcounter18h: - mhpmcountet18h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent19: type: dict schema: @@ -8890,10 +8616,6 @@ mhpmevent19: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -8922,14 +8644,15 @@ mhpmevent19: - mhpmevent19[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -8958,9 +8681,11 @@ mhpmevent19: - mhpmevent19[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter19: type: dict schema: @@ -8984,10 +8709,6 @@ mhpmcounter19: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9016,14 +8737,15 @@ mhpmcounter19: - mhpmcountet19[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -9052,8 +8774,11 @@ mhpmcounter19: - mhpmcountet19[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter19h: type: dict schema: @@ -9076,10 +8801,6 @@ mhpmcounter19h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9108,17 +8829,20 @@ mhpmcounter19h: - mhpmcountet19h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent20: type: dict schema: @@ -9141,10 +8865,6 @@ mhpmevent20: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9173,14 +8893,15 @@ mhpmevent20: - mhpmevent20[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -9209,9 +8930,11 @@ mhpmevent20: - mhpmevent20[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter20: type: dict schema: @@ -9235,10 +8958,6 @@ mhpmcounter20: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9267,14 +8986,15 @@ mhpmcounter20: - mhpmcountet20[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -9303,8 +9023,11 @@ mhpmcounter20: - mhpmcountet20[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter20h: type: dict schema: @@ -9327,10 +9050,6 @@ mhpmcounter20h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9359,17 +9078,20 @@ mhpmcounter20h: - mhpmcountet20h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent21: type: dict schema: @@ -9392,10 +9114,6 @@ mhpmevent21: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9424,14 +9142,15 @@ mhpmevent21: - mhpmevent21[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -9460,9 +9179,11 @@ mhpmevent21: - mhpmevent21[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter21: type: dict schema: @@ -9486,10 +9207,6 @@ mhpmcounter21: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9518,14 +9235,15 @@ mhpmcounter21: - mhpmcountet21[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -9554,8 +9272,11 @@ mhpmcounter21: - mhpmcountet21[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter21h: type: dict schema: @@ -9578,10 +9299,6 @@ mhpmcounter21h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9610,17 +9327,20 @@ mhpmcounter21h: - mhpmcountet21h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent22: type: dict schema: @@ -9643,10 +9363,6 @@ mhpmevent22: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9675,14 +9391,15 @@ mhpmevent22: - mhpmevent22[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -9711,9 +9428,11 @@ mhpmevent22: - mhpmevent22[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter22: type: dict schema: @@ -9737,10 +9456,6 @@ mhpmcounter22: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9769,14 +9484,15 @@ mhpmcounter22: - mhpmcountet22[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -9805,8 +9521,11 @@ mhpmcounter22: - mhpmcountet22[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter22h: type: dict schema: @@ -9829,10 +9548,6 @@ mhpmcounter22h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9861,17 +9576,20 @@ mhpmcounter22h: - mhpmcountet22h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent23: type: dict schema: @@ -9894,10 +9612,6 @@ mhpmevent23: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -9926,14 +9640,15 @@ mhpmevent23: - mhpmevent23[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -9962,9 +9677,11 @@ mhpmevent23: - mhpmevent23[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter23: type: dict schema: @@ -9988,10 +9705,6 @@ mhpmcounter23: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10020,14 +9733,15 @@ mhpmcounter23: - mhpmcountet23[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -10056,8 +9770,11 @@ mhpmcounter23: - mhpmcountet23[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter23h: type: dict schema: @@ -10080,10 +9797,6 @@ mhpmcounter23h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10112,17 +9825,20 @@ mhpmcounter23h: - mhpmcountet23h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent24: type: dict schema: @@ -10145,10 +9861,6 @@ mhpmevent24: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10177,14 +9889,15 @@ mhpmevent24: - mhpmevent24[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -10213,9 +9926,11 @@ mhpmevent24: - mhpmevent24[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter24: type: dict schema: @@ -10239,10 +9954,6 @@ mhpmcounter24: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10271,14 +9982,15 @@ mhpmcounter24: - mhpmcountet24[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -10307,8 +10019,11 @@ mhpmcounter24: - mhpmcountet24[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter24h: type: dict schema: @@ -10331,10 +10046,6 @@ mhpmcounter24h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10363,17 +10074,20 @@ mhpmcounter24h: - mhpmcountet24h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent25: type: dict schema: @@ -10396,10 +10110,6 @@ mhpmevent25: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10428,14 +10138,15 @@ mhpmevent25: - mhpmevent25[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -10464,9 +10175,11 @@ mhpmevent25: - mhpmevent25[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter25: type: dict schema: @@ -10490,10 +10203,6 @@ mhpmcounter25: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10522,14 +10231,15 @@ mhpmcounter25: - mhpmcountet25[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -10558,8 +10268,11 @@ mhpmcounter25: - mhpmcountet25[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter25h: type: dict schema: @@ -10582,10 +10295,6 @@ mhpmcounter25h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10614,17 +10323,20 @@ mhpmcounter25h: - mhpmcountet25h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent26: type: dict schema: @@ -10647,10 +10359,6 @@ mhpmevent26: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10679,14 +10387,15 @@ mhpmevent26: - mhpmevent26[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -10715,9 +10424,11 @@ mhpmevent26: - mhpmevent26[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter26: type: dict schema: @@ -10741,10 +10452,6 @@ mhpmcounter26: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10773,14 +10480,15 @@ mhpmcounter26: - mhpmcountet26[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -10809,8 +10517,11 @@ mhpmcounter26: - mhpmcountet26[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter26h: type: dict schema: @@ -10833,10 +10544,6 @@ mhpmcounter26h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10865,17 +10572,20 @@ mhpmcounter26h: - mhpmcountet26h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent27: type: dict schema: @@ -10898,10 +10608,6 @@ mhpmevent27: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -10930,14 +10636,15 @@ mhpmevent27: - mhpmevent27[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -10966,9 +10673,11 @@ mhpmevent27: - mhpmevent27[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter27: type: dict schema: @@ -10992,10 +10701,6 @@ mhpmcounter27: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11024,14 +10729,15 @@ mhpmcounter27: - mhpmcountet27[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -11060,8 +10766,11 @@ mhpmcounter27: - mhpmcountet27[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter27h: type: dict schema: @@ -11084,10 +10793,6 @@ mhpmcounter27h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11116,17 +10821,20 @@ mhpmcounter27h: - mhpmcountet27h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent28: type: dict schema: @@ -11149,10 +10857,6 @@ mhpmevent28: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11181,14 +10885,15 @@ mhpmevent28: - mhpmevent28[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -11217,9 +10922,11 @@ mhpmevent28: - mhpmevent28[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter28: type: dict schema: @@ -11243,10 +10950,6 @@ mhpmcounter28: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11275,14 +10978,15 @@ mhpmcounter28: - mhpmcountet28[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -11311,8 +11015,11 @@ mhpmcounter28: - mhpmcountet28[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter28h: type: dict schema: @@ -11335,10 +11042,6 @@ mhpmcounter28h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11367,17 +11070,20 @@ mhpmcounter28h: - mhpmcountet28h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent29: type: dict schema: @@ -11400,10 +11106,6 @@ mhpmevent29: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11432,14 +11134,15 @@ mhpmevent29: - mhpmevent29[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -11468,9 +11171,11 @@ mhpmevent29: - mhpmevent29[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter29: type: dict schema: @@ -11494,10 +11199,6 @@ mhpmcounter29: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11526,14 +11227,15 @@ mhpmcounter29: - mhpmcountet29[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -11562,8 +11264,11 @@ mhpmcounter29: - mhpmcountet29[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter29h: type: dict schema: @@ -11586,10 +11291,6 @@ mhpmcounter29h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11618,17 +11319,20 @@ mhpmcounter29h: - mhpmcountet29h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent30: type: dict schema: @@ -11651,10 +11355,6 @@ mhpmevent30: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11683,14 +11383,15 @@ mhpmevent30: - mhpmevent30[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -11719,9 +11420,11 @@ mhpmevent30: - mhpmevent30[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter30: type: dict schema: @@ -11745,10 +11448,6 @@ mhpmcounter30: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11777,14 +11476,15 @@ mhpmcounter30: - mhpmcountet30[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -11813,8 +11513,11 @@ mhpmcounter30: - mhpmcountet30[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter30h: type: dict schema: @@ -11837,10 +11540,6 @@ mhpmcounter30h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11869,17 +11568,20 @@ mhpmcounter30h: - mhpmcountet30h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false mhpmevent31: type: dict schema: @@ -11902,10 +11604,6 @@ mhpmevent31: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -11934,14 +11632,15 @@ mhpmevent31: - mhpmevent31[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -11970,9 +11669,11 @@ mhpmevent31: - mhpmevent31[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false - + accessible: false mhpmcounter31: type: dict schema: @@ -11996,10 +11697,6 @@ mhpmcounter31: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -12028,14 +11725,15 @@ mhpmcounter31: - mhpmcountet31[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: - default: true - check_with: rv64_check fields: type: list default: [] @@ -12064,8 +11762,11 @@ mhpmcounter31: - mhpmcountet31[63:0] in [0x00000000] wr_illegal: - unchanged + accessible: + default: true + check_with: rv64_check default: - implemented: false + accessible: false mhpmcounter31h: type: dict schema: @@ -12088,10 +11789,6 @@ mhpmcounter31h: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: rv32_check fields: type: list default: [] @@ -12120,17 +11817,20 @@ mhpmcounter31h: - mhpmcountet31h[31:0] in [0x00000000] wr_illegal: - unchanged + accessible: + type: boolean + default: true + check_with: rv32_check default: - implemented: false + accessible: false rv64: type: dict schema: - implemented: + accessible: default: true - - default: - implemented: false + default: + accessible: false sedeleg: type: dict schema: @@ -12150,12 +11850,6 @@ sedeleg: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv32_check - - s_check fields: type: list default: [] @@ -12176,29 +11870,32 @@ sedeleg: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 - default: - implemented: true - rv64: - type: dict - schema: - implemented: + accessible: type: boolean default: true check_with: - - rv64_check + - rv32_check - s_check + default: + accessible: true + rv64: + type: dict + schema: fields: type: list default: [] @@ -12219,20 +11916,29 @@ sedeleg: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 + accessible: + type: boolean + default: true + check_with: + - rv64_check + - s_check default: - implemented: true + accessible: true check_with: ndeleg_checks sideleg: type: dict @@ -12251,12 +11957,6 @@ sideleg: rv32: type: dict schema: - implemented: - type: boolean - default: true - check_with: - - rv32_check - - s_check fields: type: list default: [] @@ -12277,29 +11977,32 @@ sideleg: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 - default: - implemented: true - rv64: - type: dict - schema: - implemented: + accessible: type: boolean default: true check_with: - - rv64_check + - rv32_check - s_check + default: + accessible: true + rv64: + type: dict + schema: fields: type: list default: [] @@ -12320,18 +12023,27 @@ sideleg: type: dict check_with: wr_illegal oneof: - - schema: + - + schema: ro_constant: type: list schema: type: integer max: 4611686018427387903 maxlength: 1 - - schema: + - + schema: ro_variable: type: boolean - - schema: + - + schema: warl: *id001 + accessible: + type: boolean + default: true + check_with: + - rv64_check + - s_check default: - implemented: true + accessible: true check_with: ndeleg_checks