Comments (9)
Why does it fail? MISA should be WARL register. If MISA is hardwired or isn't implemented, test should continue anyway. It will fail only in case C is implemented because trap is not executed. So I would say implementations with C extension (without capability of turning C off) will fail.
I agree that writing to MISA should be removed. At the same time test should be skipped for configurations with C extension. But there is one other issue in this test (and MISALIGN_LDST too) - trap handler, because spec supports hardwired mtvec.
from riscv-arch-test.
Yes you are right "implementations with C extension (without capability of turning C off) will fail".
That is the case I am referring to. Probably couldn't convey it right in the description.
If you skip a test you will still have to manage generating the signature which matches the reference signature. Since the signature is updated at multiple places: within the test-cases themselves and in the trap handler.. I am finding it hard to figure out a clean fix.
The issue of considering mtvec to be readonly is captured in issue #9 .
from riscv-arch-test.
Turning off compression could be made conditional?
from riscv-arch-test.
Actually, the RISCV way would be to check (via a write-0-read) to see if "C" can be cleared. If it can be cleared, proceed with the clearing and the test. If "C" cannot be cleared, test should provide alternal paths to success.
from riscv-arch-test.
Two reminders:
-
Make sure the PC is 4-byte aligned when clearing misa.C, or the write will be suppressed.
-
Clearing misa.C does not necessarily guarantee that IALIGN increases to 32 bits. There could be other extensions that maintain IALIGN of 16 bits, e.g. 48-bit extensions.
from riscv-arch-test.
I think the tests may have 3 results:
PASS/FAIL/SKIP.
like @aprnath mentioned,
If the C-bit can be turn off correctly, test should keep running.
If C-bit is still on after trying to clear it, test should end and leave a result of SKIP.
from riscv-arch-test.
As I've commented in several other issues: tests that use privileged resources should not be in the unprivileged test suite. MISA is inherently privileged; QED it should be in the privileged test suite (which doesn't really exist yet).
To another point: WARL CSRs are a pain for compliance - but unimplemented CSRs are a special case, and tests that depend on CSRs than can be unimplemented must compensate for that.
That may require tests to have multiple signatures (which is going to be a pain) or may require that a list of unimplemented CSRs must be passed to the framework, which either modifies the test or selects a different test (in which case there are effectively 2 tests but each with a unique signature).
from riscv-arch-test.
The riscof framework uses a YAML file to describe extensions and options implemented by a device (and the illegal to legal value mapping for WARL fields) and employs a macro in each test case that contains the required options to run it. This test will eventually be re-written to use that information, and the test will be skipped if MISA.C can't be cleared.
from riscv-arch-test.
closing this as it has been fixed in RISCOF and cannot be fixed in the current framework without major revamps
from riscv-arch-test.
Related Issues (20)
- Continued missing coverage for x0/non-x0 on registers (when all registers are the same)
- Atomic Test cases for amominu (and potentially others) Sail is not generating the correect signature HOT 1
- RVMODEL_IO_ASSERT_GPR_RQ used for float point registers HOT 2
- Example models where asserts are actually defined/used? HOT 6
- ecall check fails in CLIC mode HOT 5
- mode bits inside "vector" entry in signature
- Test misalign-jal-01.S generates compressed instruction for platforms that support only RV32I HOT 7
- Floating point tests are enormous HOT 4
- jalr-01.S fails with illegal operands on latest binutils 2.42 HOT 2
- misalign-jal-01.S without support for compressed instruction signature mismatch HOT 5
- Zfh's 'flh-align-01' test is executed even if Zfh is not enabled HOT 6
- Extra spaces at the end of a multiline macro causing compile warnings for env/test_macros.h
- RVTEST_CODE_END use of RVTEST_SAVE_GPRS in env/arch_test.h doesn't work HOT 4
- Compliance command failure HOT 4
- Unexpected Zfh's fdiv test appear when no Zfh enable HOT 4
- Zfa tests missing fmvp.d.x
- Regnerated MUL* tests missing Zmmul string in RVTEST_ISA macro
- Zfh tests missing floating-to-float conversions
- Error in CTG commands for generating floating point riscv-tests HOT 4
- Cover Group files are scattered in different directories HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from riscv-arch-test.