-
Notifications
You must be signed in to change notification settings - Fork 76
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'chipsalliance:main' into change-coverage-report-structure
- Loading branch information
Showing
17 changed files
with
144 additions
and
132 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,44 @@ | ||
# 17 Veer El2 Compliance Test Suite Failures | ||
# 17 VeeR EL2 Compliance Test Suite Failures | ||
|
||
## 17.1 I-Misalign_Ldst-01 | ||
## 17.1 I-MISALIGN_LDST-01 | ||
|
||
* Test Location: [https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32i/src/I-MISALIGN_LDST-01.S](https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32i/src/I-MISALIGN_LDST-01.S) | ||
* Reason for Failure: | ||
* **Test Location**: [https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32i/src/I-MISALIGN_LDST-01.S](https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32i/src/I-MISALIGN_LDST-01.S) | ||
* **Reason for Failure**: | ||
* The VeeR EL2 core supports unaligned accesses to memory addresses which are not marked as having side effects (i.e., to idempotent memory). | ||
Load and store accesses to non-idempotent memory addresses take misalignment exceptions. | ||
* Note that this is a known issue with the test suite ([https://github.com/riscv/riscv-compliance/issues/22](https://github.com/riscv/riscv-compliance/issues/22)) and is expected to eventually be fixed. | ||
* Workaround: | ||
* **Workaround**: | ||
* Configure the address range used by this test to "non-idempotent" in the mrac register. | ||
|
||
## 17.2 I-Misalign_Jmp-01 Test Location: | ||
## 17.2 I-MISALIGN_JMP-01 | ||
|
||
* Test location: [https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32i/src/I-MISALIGN_JMP-01.S](https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32i/src/I-MISALIGN_JMP-01.S) | ||
* Reason for Failure: | ||
* **Test location**: [https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32i/src/I-MISALIGN_JMP-01.S](https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32i/src/I-MISALIGN_JMP-01.S) | ||
* **Reason for Failure**: | ||
* The VeeR EL2 core supports the standard "C" 16-bit compressed instruction extension. | ||
Compressed instruction execution cannot be turned off. | ||
Therefore, branch and jump instructions to 16-bit aligned memory addresses do not trigger misalignment exceptions. | ||
* Note that this is a known issue with the test suite ([https://github.com/riscv/riscv-compliance/issues/16](https://github.com/riscv/riscv-compliance/issues/16)) and is expected to eventually be fixed. | ||
* Workaround: | ||
* **Workaround**: | ||
* None. | ||
|
||
## 17.3 I-Fence.I-01 And Fence_I Test Location: | ||
## 17.3 I-FENCE.I-01 and fence_i | ||
|
||
* Test location: | ||
* **Test location**: | ||
* [https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32Zifencei/src/I-FENCE.I-01.S](https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32Zifencei/src/I-FENCE.I-01.S) and | ||
* [https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32ui/src/fence_i.S](https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32ui/src/fence_i.S) | ||
* Reason for Failure: | ||
* **Reason for Failure**: | ||
* The VeeR EL2 core implements separate instruction and data buses to the system interconnect (i.e., Harvard architecture). | ||
The latencies to memory through the system interconnect may be different for the two interfaces and the order is therefore not guaranteed. | ||
* Workaround: | ||
* **Workaround**: | ||
* Configuring the address range used by this test to "non-idempotent" in the mrac register forces the core to wait for a write response before fetching the updated line. | ||
Alternatively, the system interconnect could provide ordering guarantees between requests sent to the instruction fetch and load/store bus interfaces (e.g., matching latencies through the interconnect). | ||
|
||
## 17.4 Breakpoint | ||
|
||
* Test Location: | ||
* **Test Location**: | ||
* [https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32mi/src/breakpoint.S](https://github.com/riscv/riscv-compliance/blob/master/riscv-test-suite/rv32mi/src/breakpoint.S) | ||
* Reason for Failure: | ||
* **Reason for Failure**: | ||
* The VeeR EL2 core disables breakpoints when the *mie* bit in the standard mstatus register is cleared. | ||
* Note that this behavior is compliant with the RISC-V External Debug Support specification, Version 0.13.2. See Section 5.1, 'Native M-Mode Triggers' in [3] for more details. | ||
* Workaround: | ||
* **Workaround**: | ||
* None. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,20 @@ | ||
# 18 Veer El2 Errata | ||
## 18.1 Back-To-Back Write Transactions Not Supported On Ahb-Lite Bus Description: | ||
# 18 VeeR EL2 Errata | ||
## 18.1 Back-To-Back Write Transactions Not Supported on AHB-Lite Bus | ||
|
||
* **Description**: | ||
The AHB-Lite bus interface for LSU is not optimized for write performance. | ||
Each aligned store is issued to the bus as a single write transaction followed by an idle cycle. | ||
Each unaligned store is issued to the bus as multiple backto-back byte write transactions followed by an idle cycle. | ||
These idle cycles limit the achievable bus utilization for writes. | ||
* **Symptoms**: Potential performance impact for writes with AHB-Lite bus. | ||
* **Workaround**: None. | ||
|
||
* Symptoms: Potential performance impact for writes with AHB-Lite bus. | ||
* Workaround: None. | ||
|
||
## 18.2 Debug Abstract Command Register May Return Non-Zero Value On Read Description: | ||
## 18.2 Debug Abstract Command Register May Return Non-Zero Value On Read | ||
|
||
* **Description**: | ||
The RISC-V External Debug specification specifies the abstract command (command) register as write-only (see Section 3.14.7 in [3]). | ||
However, the VeeR EL2 implementation supports write as well as read operations to this register. | ||
This may help a debugger's feature discovery process, but is not fully compliant with the RISC-V External Debug specification. | ||
Because the expected return value for reading this register is always zero, it is unlikely that a debugger expecting a zero value would attempt to read it. | ||
|
||
* Symptoms: Reading the debug abstract command (command) register may return a non-zero value. | ||
* Workaround: A debugger should avoid reading the abstract command register if it cannot handle non-zero data. | ||
* **Symptoms**: Reading the debug abstract command (command) register may return a non-zero value. | ||
* **Workaround**: A debugger should avoid reading the abstract command register if it cannot handle non-zero data. |
Oops, something went wrong.