mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 07:21:22 +01:00
lib: sbi_hart: fix sstateen emulation
The Sstateen extension defines 4 sstateen registers, but SBI currently configures the execution environment to throw illegal instruction exception when accessing sstateen1-3. SBI should implement all sstateen registers, so delegate the implementation to hardware by setting the SE bit. Reviewed-by: Anup Patel <anup@brainfault.org> Signed-off-by: Radim Krčmář <rkrcmar@ventanamicro.com> Link: https://lore.kernel.org/r/20250429142549.3673976-7-rkrcmar@ventanamicro.com Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -111,6 +111,9 @@ static void mstatus_init(struct sbi_scratch *scratch)
|
||||
mstateen_val &= ~SMSTATEEN0_CTR;
|
||||
|
||||
csr_write64(CSR_MSTATEEN0, mstateen_val);
|
||||
csr_write64(CSR_MSTATEEN1, SMSTATEEN_STATEN);
|
||||
csr_write64(CSR_MSTATEEN2, SMSTATEEN_STATEN);
|
||||
csr_write64(CSR_MSTATEEN3, SMSTATEEN_STATEN);
|
||||
|
||||
if (misa_extension('S'))
|
||||
csr_write(CSR_SSTATEEN0, 0);
|
||||
|
Reference in New Issue
Block a user