P22 adds the official I-jal-00.S test to the P21 strict subset.
Status: RTL pass for a 24-test official subset. These are upstream
riscv-arch-testsources built inRVTEST_SELFCHECKmode, UART-loaded into the P17 external-memory model, and accepted only when the core reaches the local pass convention.
The Result
Run it:
make -C projects/22_rv32i_jal_tests/test
| group | result |
|---|---|
P21 baseline: no-op/fence, LUI, AUIPC, immediate ALU, R-type ALU | PASS |
I-jal-00.S | PASS |
Summary: PASS=24 FAIL=0 NOT RUN=0
This is not a full RV32I compliance claim. It is a larger, strict, official subset.
Signature Model
JAL checks both the link register and whether forward/backward jumps were
taken. The runner now has a reference-emulated signature path:
- Build the official test once in normal signature-writing mode.
- Run that image through a small local RV32I interpreter.
- Read the generated signature words.
- Rebuild the same test in
RVTEST_SELFCHECKmode with those words.
For P22, that path is enabled only for I-jal-00.S.
What This Proves
The official pass set now covers the no-op/fence baseline, LUI, AUIPC,
JAL, all modeled immediate ALU tests, and all modeled R-type ALU tests.
The remaining unclaimed RV32I/I tests are JALR, branches, loads, and stores.