From 0aec7ddfc9afd90b12ef887ff94d0303cfcce3c7 Mon Sep 17 00:00:00 2001 From: David Harris Date: Wed, 14 Oct 2026 04:57:31 -0700 Subject: [PATCH] ACT: sync config/*/act with riscv-arch-test's copies Take the changes made on the riscv-arch-test side: WFI_FINITE false (and WFI_U_MODE / Sail wfi_available_to_user_mode false on rv32gc and rv64gc) from riscv-arch-test#2716, and Svvptc not supported in Sail from riscv-arch-test#2770. Reformat the rv32i and rv64i UDB yamls the way riscv-arch-test's prettier hook does, so actconfig-sync finds the copies identical once riscv-arch-test#2816 adds them. Co-Authored-By: Claude Opus 5.5 (1M context) Signed-off-by: David Harris --- config/rv32gc/act/cvw-rv32gc.yaml | 4 +- config/rv32gc/act/sail.json | 5 +- config/rv32i/act/cvw-rv32i.yaml | 72 ++++++++++++++++++++++++++++- config/rv32imc/act/cvw-rv32imc.yaml | 2 +- config/rv64gc/act/cvw-rv64gc.yaml | 4 +- config/rv64gc/act/sail.json | 5 +- config/rv64i/act/cvw-rv64i.yaml | 72 ++++++++++++++++++++++++++++- 7 files changed, 151 insertions(+), 13 deletions(-) diff --git a/config/rv32gc/act/cvw-rv32gc.yaml b/config/rv32gc/act/cvw-rv32gc.yaml index 1b12412f80..cbdca495ec 100644 --- a/config/rv32gc/act/cvw-rv32gc.yaml +++ b/config/rv32gc/act/cvw-rv32gc.yaml @@ -92,7 +92,7 @@ params: # Zicntr params TIME_CSR_IMPLEMENTED: true # U params - WFI_U_MODE: true + WFI_U_MODE: false MUTABLE_MISA_U: false U_MODE_ENDIANNESS: dynamic UXLEN: [32] @@ -164,7 +164,7 @@ params: MEI_INTR_IMPL: true MSI_INTR_IMPL: true MTI_INTR_IMPL: true - WFI_FINITE: true + WFI_FINITE: false MXLEN: 32 PRECISE_SYNCHRONOUS_EXCEPTIONS: true TRAP_ON_ECALL_FROM_M: true diff --git a/config/rv32gc/act/sail.json b/config/rv32gc/act/sail.json index bed31ac046..834a4c4fb1 100644 --- a/config/rv32gc/act/sail.json +++ b/config/rv32gc/act/sail.json @@ -468,7 +468,7 @@ // `wfi_is_nop` is set to `true` above, it will still not be // available to User mode unless `wfi_available_to_user_mode` is // also `true`. - "wfi_available_to_user_mode": true, + "wfi_available_to_user_mode": false, // The maximum increment in the time CSR before a wait instruction // (e.g. WFI, WRS.NTO, WRS.STO) that is not a NOP expires its // wait. It is not possible to wait indefinitely. @@ -969,8 +969,9 @@ "Svpbmt": { "supported": false }, + // Wally's page-table walker caches invalid PTEs in the TLB until SFENCE.VMA, which Svvptc forbids. "Svvptc": { - "supported": true + "supported": false }, "Sdtrig": { "supported": false, diff --git a/config/rv32i/act/cvw-rv32i.yaml b/config/rv32i/act/cvw-rv32i.yaml index 93deac7378..4a60d5d162 100644 --- a/config/rv32i/act/cvw-rv32i.yaml +++ b/config/rv32i/act/cvw-rv32i.yaml @@ -47,7 +47,75 @@ params: MTVEC_ACCESS: ro MTVEC_MODES: [0] MTVEC_ILLEGAL_WRITE_BEHAVIOR: custom - HPM_COUNTER_EN: [false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false] + HPM_COUNTER_EN: + [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + ] MCOUNTINHIBIT_IMPLEMENTED: false - MCOUNTENABLE_EN: [false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false] + MCOUNTENABLE_EN: + [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + ] NUM_PMP_ENTRIES: 0 diff --git a/config/rv32imc/act/cvw-rv32imc.yaml b/config/rv32imc/act/cvw-rv32imc.yaml index b30c715030..c853857de5 100644 --- a/config/rv32imc/act/cvw-rv32imc.yaml +++ b/config/rv32imc/act/cvw-rv32imc.yaml @@ -35,7 +35,7 @@ params: MEI_INTR_IMPL: true MSI_INTR_IMPL: true MTI_INTR_IMPL: true - WFI_FINITE: true + WFI_FINITE: false MXLEN: 32 PRECISE_SYNCHRONOUS_EXCEPTIONS: true TRAP_ON_ECALL_FROM_M: true diff --git a/config/rv64gc/act/cvw-rv64gc.yaml b/config/rv64gc/act/cvw-rv64gc.yaml index 41a9bfd53f..89870167a6 100644 --- a/config/rv64gc/act/cvw-rv64gc.yaml +++ b/config/rv64gc/act/cvw-rv64gc.yaml @@ -97,7 +97,7 @@ params: # Zicntr params TIME_CSR_IMPLEMENTED: true # U params - WFI_U_MODE: true + WFI_U_MODE: false MUTABLE_MISA_U: false U_MODE_ENDIANNESS: dynamic UXLEN: [64] @@ -169,7 +169,7 @@ params: MEI_INTR_IMPL: true MSI_INTR_IMPL: true MTI_INTR_IMPL: true - WFI_FINITE: true + WFI_FINITE: false MXLEN: 64 PRECISE_SYNCHRONOUS_EXCEPTIONS: true TRAP_ON_ECALL_FROM_M: true diff --git a/config/rv64gc/act/sail.json b/config/rv64gc/act/sail.json index 8ca45e2a6d..649c80a1fe 100644 --- a/config/rv64gc/act/sail.json +++ b/config/rv64gc/act/sail.json @@ -473,7 +473,7 @@ // `wfi_is_nop` is set to `true` above, it will still not be // available to User mode unless `wfi_available_to_user_mode` is // also `true`. - "wfi_available_to_user_mode": true, + "wfi_available_to_user_mode": false, // The maximum increment in the time CSR before a wait instruction // (e.g. WFI, WRS.NTO, WRS.STO) that is not a NOP expires its // wait. It is not possible to wait indefinitely. @@ -969,8 +969,9 @@ "Svpbmt": { "supported": true }, + // Wally's page-table walker caches invalid PTEs in the TLB until SFENCE.VMA, which Svvptc forbids. "Svvptc": { - "supported": true + "supported": false }, "Sdtrig": { "supported": false, diff --git a/config/rv64i/act/cvw-rv64i.yaml b/config/rv64i/act/cvw-rv64i.yaml index 19e23f1a97..95a0cb83be 100644 --- a/config/rv64i/act/cvw-rv64i.yaml +++ b/config/rv64i/act/cvw-rv64i.yaml @@ -47,7 +47,75 @@ params: MTVEC_ACCESS: ro MTVEC_MODES: [0] MTVEC_ILLEGAL_WRITE_BEHAVIOR: custom - HPM_COUNTER_EN: [false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false] + HPM_COUNTER_EN: + [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + ] MCOUNTINHIBIT_IMPLEMENTED: false - MCOUNTENABLE_EN: [false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false] + MCOUNTENABLE_EN: + [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + ] NUM_PMP_ENTRIES: 0