Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello everyone,
This PR is adding a comprehensive set of self-checking assembly tests for the architectural verification of SV48. These tests are hand-written and follows the test plan provided in the following testplan. All the tests are RISCOF compliant. I have executed these tests using
SAIL
as our reference model andSPIKE
as the Device Under Test (DUT).Here's an overview of the different categories covered by these tests
Enhancements to test_macros.h and arch_test.h
ALL_MEM_PMP
macro, a significant addition that grants PMP (Physical Memory Protection) permissions to all available memory regions and is particularly useful whenever we want to grant PMP permissions to all regions.PTE_SETUP_RV64
macro, which marks a substantial improvement in memory page table management. Previously, we had the "PTE_SETUP_RV32" macro, exclusively designed for RV32 architecture. With this update, this macro now extends its support to RV64 architecture, allowing us to efficiently set up Page Table Entries for sv39, sv48 and sv57.SATP_SETUP_RV64
macro has been introduced to facilitate the setup of the SATP (Supervisor Address Translation and Protection) register's MODE field. This macro enhances support for virtualization across different modes in RV64 architecture, including sv39, sv48, and sv57.SIGNATURE_AREA
macro has been added. This macro plays a crucial role within our tests, ensuring that the save area aligns with the specific requirements of each test and facilitating the dumping of signatures as needed.Important Note
These tests have been specifically designed for the RV64 architecture. However, it's important to note that by default, both
SPIKE
andSAIL
do not support addresses greater than 32 bits. The physical address space for sv48 architecture extends up to 56 bits. To enable support for this 56-bit address space:SPIKE
, use the-m<size in MB>
flag in the execute command within theriscof_spike.py
script. In the context of a 56-bit address space, set the size to 8796093022208 MB, equivalent to 0x80000000000, effectively encompassing the entire 56-bit memory.SAIL
, utilize the--ram-size=<size in MB>
flag in the execute command within theriscof_sail_cSim.py
script, again setting the size to 8796093022208 MB.Related Issues
Ratified/Unratified Extensions
Reference Model Used
Mandatory Checklist:
Optional Checklist: