Skip to content

Commit

Permalink
Add Ssqosid extension
Browse files Browse the repository at this point in the history
  • Loading branch information
ved-rivos committed Dec 25, 2023
1 parent 829f875 commit 85f48b8
Show file tree
Hide file tree
Showing 6 changed files with 138 additions and 3 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [3.14.4] - 2023-12-25
- Add support for Ssqosid extension

## [3.14.3] - 2023-12-01
- Add support for Zimop extension

Expand Down
2 changes: 1 addition & 1 deletion riscv_config/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
__version__ = '3.14.3'
__version__ = '3.14.4'

2 changes: 1 addition & 1 deletion riscv_config/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"Zpn", "Zpsf"
] + Zve_extensions + Zvl_extensions

S_extensions = ['Smrnmi','Svnapot','Svadu', 'Sdext']
S_extensions = ['Smrnmi','Svnapot','Svadu', 'Sdext', 'Ssqosid']

sub_extensions = Z_extensions + S_extensions

Expand Down
7 changes: 7 additions & 0 deletions riscv_config/schemaValidator.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ def _check_with_zicfiss_check(self, field, value):
"Register cannot be implemented without Zicfiss extension in ISA."
)

def _check_with_ssqosid_check(self, field, value):
global extension_list
if value and 'Ssqosid' not in extension_list:
self._error(field,
"Register cannot be implemented without Ssqosid extension in ISA."
)

def _check_with_satp_modes64(self, field, value):
pass

Expand Down
125 changes: 125 additions & 0 deletions riscv_config/schemas/schema_isa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9733,6 +9733,131 @@ hart_schema:
check_with:
- rv64_check
default: {accessible: false}
srmcfg:
type: dict
schema:
description: { type: string, default: SXLEN-bit register which provides supervisor-mode resource management configurations }
address: {type: integer, default: 0x181, allowed: [0x181]}
priv_mode: {type: string, default: S, allowed: [S]}
reset-val: { type: integer, check_with: max_length , default: 0}
rv32:
type: dict
check_with: s_check
schema:
fields: {type: list, default: []}
rcid:
type: dict
schema:
description: { type: string , default: Resource Control Identifier. }
shadow: {type: string, default: , nullable: True}
shadow_type: {type: string, default: rw, nullable: True, allowed: ['rw','ro']}
msb: {type: integer, default: 11, allowed: [11]}
lsb: {type: integer, default: 0, allowed: [0]}
implemented: {type: boolean, default: true}
type:
type: dict
oneof:
- schema: {ro_constant: {type: integer, max: 4095}}
- schema: { warl: *ref_warl }
default:
warl:
dependency_fields: []
legal:
- rcid[11:0] in [0x0:0xFFF]
wr_illegal:
- Unchanged
default: {implemented: False}
check_with: s_check
mcid:
type: dict
schema:
description: { type: string, default: Monitoring counter identifier. }
shadow: {type: string, default: , nullable: True}
shadow_type: {type: string, default: rw, nullable: True, allowed: ['rw','ro']}
msb: {type: integer, default: 27, allowed: [27]}
lsb: {type: integer, default: 16, allowed: [16]}
implemented: {type: boolean, default: true}
type:
type: dict
oneof:
- schema: {ro_constant: {type: integer, max: 4095 }}
- schema: { warl: *ref_warl }
default:
warl:
dependency_fields: []
legal:
- mcid[11:0] in [0x0:0xFFF]
wr_illegal:
- Unchanged
default: {implemented: False}
check_with: s_check
accessible:
type: boolean
check_with:
- rv32_check
- ssqosid_check
default: {accessible: false}
rv64:
type: dict
check_with: s_check
schema:
fields: {type: list, default: []}
rcid:
type: dict
schema:
description:
type: string
default: Resource control identifier
shadow: {type: string, default: , nullable: True}
shadow_type: {type: string, default: rw, nullable: True, allowed: ['rw','ro']}
msb: {type: integer, default: 11, allowed: [11]}
lsb: {type: integer, default: 0, allowed: [0]}
implemented: {type: boolean, default: true}
type:
type: dict
oneof:
- schema: {ro_constant: {type: integer, max: 4095}}
- schema: { warl: *ref_warl }
default:
warl:
dependency_fields: []
legal:
- rcid[13:0] in [0x0:0xFFF]
wr_illegal:
- Unchanged
default: {implemented: False}
check_with: s_check
mcid:
type: dict
schema:
description:
type: string
default: Monitoring counter identifier.
shadow: {type: string, default: , nullable: True}
shadow_type: {type: string, default: rw, nullable: True, allowed: ['rw','ro']}
msb: {type: integer, default: 27, allowed: [27]}
lsb: {type: integer, default: 16, allowed: [16]}
implemented: {type: boolean, default: true}
type:
type: dict
oneof:
- schema: {ro_constant: {type: integer, max: 4095}}
- schema: { warl: *ref_warl }
default:
warl:
dependency_fields: []
legal:
- mcid[11:0] in [0x0:0xFFF]
wr_illegal:
- Unchanged
default: {implemented: False}
check_with: s_check
accessible:
type: boolean
check_with:
- rv64_check
- ssqosid_check
default: {accessible: false}
ustatus:
type: dict
schema:
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 3.14.3
current_version = 3.14.4
commit = True
tag = True

Expand Down

0 comments on commit 85f48b8

Please sign in to comment.