7. Changelog

This project adheres to Semantic Versioning.

7.1. [3.3.1] - 2022-09-26

  • documentation cleanup for adding new extensions in riscv-config

  • disabled pdf asset generation for each release.

7.2. [3.3.0] - 2022-09-24

  • rewrote regular expression for determining legal ISA/extension strings to fix bugs and simplify maintenance. (#104)

  • updated example and regex in new-extensions.rst to match

7.3. [3.2.0] - 2022-09-07

  • adding new function to get a legal value from a warl node

7.4. [3.1.2] - 2022-08-23

  • if the value being tested is out of bounds, then skip with error immediately

7.5. [3.1.1] - 2022-08-18

  • fix pypi dependencies for docs

7.6. [3.1.0] - 2022-08-17

  • scounteren can be a ro_constant now

  • the maxval checks for mask/fixedval should be based on the length of the part

  • adding support for mtval_update field

  • adding support for pte_ad_hw_update field

  • cleaned up documentation

7.7. [3.0.0] - 2022-08-16

  • created new warl class for warl node handling

    • better comments

    • more functions to keep things simple

    • fixed a lot of bugs in checking legal values

    • bitmask and range values can now co-exist in a legal string

    • added new and improved checks for syntax validity of warl strings

  • fixed validationError function to correctly print all errors (dict and/or list)

  • removed wr_illegal checks from the schema since they are now done as part of the new warl class checks

  • updates to the new warl checks and reset-value checks

  • satp.mode should have one of sv* translation schemes as a legal value. (#89)

  • default setters for pmps fixed

  • pmp checks have been improved (#88)

  • improve WARL documentation

7.8. [2.17.0] - 2022-08-08

  • Support for Zfinx, Zdinx, Zfh, Zhinx, Zhinxmin in ISA string added.

7.9. [2.16.1] - 2022-07-21

  • fixed bug in regex where Zk and Zknh were missing an underscore

7.10. [2.16.0] - 2022-07-20

  • fixed overlap checks for crypto extensions

  • removing K and P extension strings from regex

7.11. [2.15.1] - 2022-06-18

  • added missing Z extensions from Kcrypto

  • fixed ordering of the Z extensions as per isa spec.

7.12. [2.15.0] - 2022-06-16

  • moved ISA validation as a separate api function to enable import in other python tools

7.13. [2.14.1] - 2022-06-02

  • add support for Zicbo* extensions

  • add new node in platform_schema: zicbo_cache_block_sz

7.14. [2.14.0] - 2022-05-13

  • fix for index-based dependency checks in warl string.

7.15. [2.13.1] - 2022-03-23

  • Added setup.cfg to automate bumpversion

  • Fix wording for legal strings in dependency warl fields.

7.16. [2.13.0] - 2022-03-09

  • add support for detection of svnapot in ISA string

  • genralize conversion of hex, oct, bin values to int in warl functions

  • machine flat schema to include wlrl types as well

7.17. [2.12.1] - 2021-12-18

7.17.1. Fixed

  • added mbe and sbe fields in mstatush

  • fixed default setter for vsstatus in RV32 mode

7.18. [2.12.0] - 2021-12-10

7.18.1. Added

  • support for hypervisor csrs

  • change default for dcsr.v and fix the check_with function for the same

  • ensures proper checks for csrs defined as 32-bit only registers

7.19. [2.11.2] - 2021-11-29

7.19.1. Fixed

  • Fixed the relationship between fflags, frm and fcsr

  • Enable subfield to be shadow field of whole csr, and vice versa

7.20. [2.11.1] - 2021-11-19

7.20.1. Added

  • adding the missing shadow_type field for hpmcounter17

7.21. [2.11.0] - 2021-10-15

7.21.1. Fixed

  • canonical ordering requirement of _Z extensions fixed ### Added

  • adding support for Zmmul extension in ISA regex

7.22. [2.10.2] - 2021-10-06

7.22.1. Fixed

  • islegal function under the warl_interpreter class fixed. The based and bound values are not

    extracted correctly as either hex or decimal values. Also removed the logic to truncate values

7.23. [2.10.1] - 2021-08-26

7.23.1. Fixed

  • Changed the default value of ‘accessible’ to false so input yamls need not declare unsupported xlen

7.24. [2.10.0] - 2021-07-30

7.24.1. Added

  • added default-setters for misa’s reset value to match the ISA extensions, to modify warl function of extensions under misa

  • added default setter for reset value of mstatus ### Fixed

  • changed default values of types for subfields in mstatus

  • changed default values of types for mhpmevent, mcountinhibit, mcounteren and mhpmcounter to read only constant 0

  • changed default values of types for fflags, frm and fcsr to warl if F is present, else read-only constant 0

  • changed default values of types for mcycle[h], minstret[h] to warl

  • changed default values of types and added checks for subfields of scause, satp, stvec, sie, sip and sstatus

7.25. [2.9.1] - 2021-06-02

7.25.1. Fixed

  • removed an unadded feature in rv32i_platform.yaml

  • removed debug_interrupts under mip in rv64i_isa.yaml

7.26. [2.9.0] - 2021-05-24

7.26.1. Fixed

  • fixed issue #58 by adding extra checks for bitmask

  • fixed issue #59 by removing custom cause from platform yaml

  • resolved inconsistencies in the use of “xlen” and “supported_xlen” in schemaValidator ### Added

  • added extra “shadow_type” fields in the csr schemas. These indicate the nature of shadow (read-only, read-write, etc).

  • added parking_loop node in debug_schema to indicate the address of debug rom. Can be empty in implementations which do not have this feature

7.27. [2.8.0] - 2021-03-02

7.27.1. Added

  • Added checks for K (sub)extension(s)

  • Updated docs with information on adding new extension, csrs or specs.

  • Added github actions based CI

7.28. [2.7.0] - 2021-02-25

7.28.1. Added

  • 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

7.29. [2.6.3] - 2021-01-19

7.29.1. Fixed

  • added priv_mode field to sedeleg and sideleg csrs

7.30. [2.6.2] - 2021-01-18

7.30.1. Fixed

  • Allow B extension in ISA schema

7.31. [2.6.1] - 2021-01-13

7.31.1. Fixed

  • 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.

7.32. [2.6.0] - 2021-01-5

7.32.1. Added

  • 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.

7.32.2. Changed

  • fixed warl parsing and islegal function to check reset values

7.33. [2.5.1] - 2020-11-6

7.33.1. Changed

  • modified sn_check and su_check

  • scounteren checks to make it depend only on u

  • medeleg, mideleg check for S or N extension

7.34. [2.5.0] - 2020-11-6

7.34.1. Added

  • 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

7.35. [2.4.1] - 2020-10-22

7.35.1. Changed

  • default mpp value to 0

  • adding defaults to sub-fields of mtvec

7.36. [2.4.0] - 2020-10-19

7.36.1. Added

  • 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. ### Changed

  • 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

7.37. [2.3.1] - 2020-10-6

7.37.1. Changed

  • Added Zihintpause to ISA string (for PAUSE Hint instruction extension)..

7.38. [2.3.0] - 2020-07-27

7.38.1. Changed

  • 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

7.39. [2.2.2] - 2020-06-09

7.39.1. Changed

  • Changed quickstart ‘riscv_config’ to ‘riscv-config’

  • Changed checker.py to add check_reset_fill_fields() description

7.40. [2.2.1] - 2020-05-18

7.40.1. Changed

  • 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

7.41. [2.2.0] - 2020-04-07

7.41.1. Changed

  • Renamed the ‘implemented’ field in rv32 and rv64 nodes to ‘accessible’.

  • Modified appropriate definitions for fields dependent on specific extensions like NSU.

7.42. [2.1.1] - 2020-03-29

7.43. [Fixed

  • doc issue for mtimecmp

  • mimpid is now part of the default setters list

7.44. [2.1.0] - 2020-03-29

7.45. [Fixed

  • Moved machine timer nodes to platform yaml. ## [Added

  • --version option to arguments to print version and exit when specified.

  • Print help and exit when no options/arguments are specified.

7.46. [2.0.2] - 2020-03-28

7.46.1. Fixed

  • Redundant reset-val check for mtvec and misa registers.

7.47. [2.0.1] - 2020-03-25

7.47.1. Fixed

  • typos in quickstart doc

  • disabled deployment to repository until authentication issue is fixed.

7.48. [2.0.0] - 2020-03-25

7.48.1. Added

  • adding support for warl fields and support

  • documentation for the warl fields added

  • reset-value checks added ### Changed

  • 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. ### Fixed

  • closed issues #10, #11, #12, #13

7.49. [1.0.2] - 2019-08-09

7.49.1. Changed

  • Log is generated only if specified(for API calls to checker.check_specs). ### Fixed

  • link in readme now points to github instead of gitlab.

7.50. [1.0.0] - 2019-07-30

7.50.1. Changed

  • Work directory isnt deleted if the directory exists, although the files of the same name will be overwritten. ### Fixed

  • Checked yaml passes validation too.

7.51. [0.1.0] - 2019-07-29

7.51.1. Added

  • 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. ### Fixed

  • In ISA field in isaspecs 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. ### Changed

  • 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. ### Removed

  • remove *_checked.yaml files from Examples.

  • changed templates_platform.yaml to template_platform.yaml in docs.

7.52. [0.0.3] - 2019-07-19

7.52.1. Fixed

  • doc update

7.53. [0.0.2] - 2019-07-19

7.53.1. Fixed

  • pdf documentation

  • ci-cd to host pdf as well

7.54. [0.0.1] - 2019-07-18

7.54.1. Added

  • Documentation to install and use pyenv

7.55. [0.0.0] - 2019-07-18

7.55.1. Added

  • Initial schemas for M mode and S mode csrs with constraints as specified in the spec.