This project adheres to Semantic Versioning.
- added Zmmul to platform.yaml, and prohibition of both Zmmul and M at the same time
- Added checks for K (sub)extension(s)
- Updated docs with information on adding new extension, csrs or specs.
- Added github actions based CI
- added new debug schema for debug based csrs and spec
- cli now takes debug spec as input as well along with isa-spec
- added support for defining custom exceptions and interrupts
- added priv_mode field to sedeleg and sideleg csrs
- Allow B extension in ISA schema
- msb,lsb values of "SD" field in mstatus must be 63 in rv64 mode
- added checks for reset value of misa to adhere to the extensions enabled in the input yaml
- fixed dead-link in the docs.
- Added support for custom csr yaml
- Added new nodes in isa_schema: pmp_granularity and physical_addr_sz
- Checks for pmp, counters and custom csrs
- medeleg, mideleg check for S or N extension
- updated the warl syntax slightly for easier parsing.
- fixed warl parsing and islegal function to check reset values
- modified sn_check and su_check
- scounteren checks to make it depend only on u
- medeleg, mideleg check for S or N extension
- added all n extension csrs
- added missing supervisor csrs
- added default setters for subfields in sip, sie , uip and uie to make it depend as shadows on machine csrs
- default mpp value to 0
- adding defaults to sub-fields of mtvec
- Added support for pmp csrs in the schema
- Added support for mcycleh and minstreth
- Added special checks for ensuring the shadows are implemented correctly.
- Added support for the following supervisor csrs in the schema: sstatus, sie, sip, stvec, sepc, stval, scause and satp
- Added support for user performance counters, frm, fcsr, time[h], cycle[h] and instret[h] csrs in the schema.
- all fields are now subsumed under a hartid. This allows specifying multiple harts in the same yaml
- logging mechanism improved.
- isa spec is now validated independently of the platform spec
- privilege and unprivilege version checks are no longer required. This satisfied via the "allowed" field now.
- improved the 'implemented/accessible' checks for s, u and n extensions
- the "fields" node is now populated by subfields in the increasing order of the placement in the csr.
- using aliases to reduce the code size
- Added Zihintpause to ISA string (for PAUSE Hint instruction extension)..
- Size of the isa schema has been reduced significantly.
- Using anchors in the schema.
- Provided a command line argument to disable anchors in the checked yaml dump.
- adding mycycle, minstret, pmpcfgs and pmpaddrs
- added support for defining multiple harts
- Changed quickstart 'riscv_config' to 'riscv-config'
- Changed checker.py to add check_reset_fill_fields() description
- Changed minimum python version requirement to 3.6.0 which is typically easy to install on all major distributions
- Updated readme with better installation instructions
- Renamed the 'implemented' field in rv32 and rv64 nodes to 'accessible'.
- Modified appropriate definitions for fields dependent on specific extensions like NSU.
- doc issue for mtimecmp
- mimpid is now part of the default setters list
- Moved machine timer nodes to platform yaml.
--version
option to arguments to print version and exit when specified.- Print help and exit when no options/arguments are specified.
- Redundant reset-val check for mtvec and misa registers.
- typos in quickstart doc
- disabled deployment to repository until authentication issue is fixed.
- adding support for warl fields and support
- documentation for the warl fields added
- reset-value checks added
- using a new common template for defining all csrs
- updated docs with new template
- using special function within conf.py to extract comments from yaml file as docs.
- closed issues #10, #11, #12, #13
- Log is generated only if specified(for API calls to checker.check_specs).
- link in readme now points to github instead of gitlab.
- Work directory isnt deleted if the directory exists, although the files of the same name will be overwritten.
- Checked yaml passes validation too.
- Added work_dir as arg and always outputs to that dir.
- Added reset vector and nmi vector to platform.yaml
- Vendor description fields in schema.
- An xlen field added for internal use.
- In ISA field in isa_specs subsequent 'Z' extensions should be prefixed by an underscore '_'
- Fixed
cerberus.validator.DocumentError: document is missing
error when platform specs is empty. - mtvec:mode max value is set to 1.
- privilege-spec and user-spec are taken as strings instead of float.
- The representation of the int fields is preserved in the checked-yaml.
- mepc is a required field.
- check_specs function now returns the paths to the dumped normalized files.
- No other entries in node where implemented is False.
- Readonly fields are purged by default.
- Multiple values/entries for the same node is not allowed.
- remove *_checked.yaml files from Examples.
- changed templates_platform.yaml to template_platform.yaml in docs.
- doc update
- pdf documentation
- ci-cd to host pdf as well
- Documentation to install and use pyenv
- Initial schemas for M mode and S mode csrs with constraints as specified in the spec.