Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ssqosid extension #157

Open
wants to merge 3 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

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

## [3.16.0] - 2024-01-03
- use the "hartX" naming for the merged dict
- improve logging statements
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.16.0'
__version__ = '3.16.1'

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', 'Smstateen']

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.16.0
current_version = 3.16.1
commit = True
tag = True

Expand Down
Loading