[PATCH] lib: sbi: Detect support of entropy source
Anup Patel
anup at brainfault.org
Mon Nov 3 19:50:31 PST 2025
On Tue, Sep 30, 2025 at 7:57 AM Xiang W <wxjstz at 126.com> wrote:
>
> Detect if entropy source, Zkr extension, is supported
> by the HART.
>
> Signed-off-by: Xiang W <wxjstz at 126.com>
We are already detecting the Zkr extension from the ISA string
in fdt_parse_isa_one_hart(). I don't see any value in trap-n-detect
Zkr.
Regards,
Anup
> ---
> include/sbi/riscv_encoding.h | 3 +++
> lib/sbi/sbi_hart.c | 14 ++++++++++++++
> 2 files changed, 17 insertions(+)
>
> diff --git a/include/sbi/riscv_encoding.h b/include/sbi/riscv_encoding.h
> index 40a854e3..8ca607c0 100644
> --- a/include/sbi/riscv_encoding.h
> +++ b/include/sbi/riscv_encoding.h
> @@ -261,6 +261,9 @@
> #define CSR_FRM 0x002
> #define CSR_FCSR 0x003
>
> +/* User entropy source */
> +#define CSR_SEED 0x015
> +
> /* User Counters/Timers */
> #define CSR_CYCLE 0xc00
> #define CSR_TIME 0xc01
> diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c
> index 1b50f671..ee655375 100644
> --- a/lib/sbi/sbi_hart.c
> +++ b/lib/sbi/sbi_hart.c
> @@ -983,6 +983,20 @@ __pmp_skip:
>
> #undef __check_ext_csr
>
> +#define __check_ext_csr_w(__base_priv, __csr, __val, __ext) \
> + if (hfeatures->priv_version >= __base_priv) { \
> + csr_write_allowed(__csr, &trap, __val); \
> + if (!trap.cause) \
> + __sbi_hart_update_extension(hfeatures, \
> + __ext, true); \
> + }
> +
> + /* Detect if hart supports Zkr (entropy source) */
> + __check_ext_csr_w(SBI_HART_PRIV_VER_UNKNOWN,
> + CSR_SEED, 0, SBI_HART_EXT_ZKR);
> +
> +#undef __check_ext_csr_w
> +
> #define __check_csr_existence(__csr, __csr_id) \
> csr_read_allowed(__csr, &trap); \
> if (!trap.cause) \
> --
> 2.47.3
>
More information about the opensbi
mailing list