diff options
author | Palmer Dabbelt <palmer@rivosinc.com> | 2022-08-11 14:41:52 -0700 |
---|---|---|
committer | Palmer Dabbelt <palmer@rivosinc.com> | 2022-08-11 14:41:52 -0700 |
commit | 7ab52f75a9cf7fed7ba85802b986825dd72df641 (patch) | |
tree | 7925addedc2d883212d80f000d16a683c0984681 /arch/riscv/include/asm/csr.h | |
parent | 3dbe5829408bc1586f75b4667ef60e5aab0209c7 (diff) | |
parent | 9f7a8ff6391fd5363363b8e5c8b1462a07922368 (diff) | |
download | lwn-7ab52f75a9cf7fed7ba85802b986825dd72df641.tar.gz lwn-7ab52f75a9cf7fed7ba85802b986825dd72df641.zip |
RISC-V: Add Sstc extension support
This series implements Sstc extension support which was ratified
recently. Before the Sstc extension, an SBI call is necessary to
generate timer interrupts as only M-mode have access to the timecompare
registers. Thus, there is significant latency to generate timer
interrupts at kernel. For virtualized enviornments, its even worse as
the KVM handles the SBI call and uses a software timer to emulate the
timecomapre register.
Sstc extension solves both these problems by defining a
stimecmp/vstimecmp at supervisor (host/guest) level. It allows kernel to
program a timer and recieve interrupt without supervisor execution
enviornment (M-mode/HS mode) intervention.
* palmer/riscv-sstc:
RISC-V: Prefer sstc extension if available
RISC-V: Enable sstc extension parsing from DT
RISC-V: Add SSTC extension CSR details
Diffstat (limited to 'arch/riscv/include/asm/csr.h')
-rw-r--r-- | arch/riscv/include/asm/csr.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/riscv/include/asm/csr.h b/arch/riscv/include/asm/csr.h index 17516afc389a..0e571f6483d9 100644 --- a/arch/riscv/include/asm/csr.h +++ b/arch/riscv/include/asm/csr.h @@ -247,6 +247,9 @@ #define CSR_SIP 0x144 #define CSR_SATP 0x180 +#define CSR_STIMECMP 0x14D +#define CSR_STIMECMPH 0x15D + #define CSR_VSSTATUS 0x200 #define CSR_VSIE 0x204 #define CSR_VSTVEC 0x205 @@ -256,6 +259,8 @@ #define CSR_VSTVAL 0x243 #define CSR_VSIP 0x244 #define CSR_VSATP 0x280 +#define CSR_VSTIMECMP 0x24D +#define CSR_VSTIMECMPH 0x25D #define CSR_HSTATUS 0x600 #define CSR_HEDELEG 0x602 |