[RFC patch 1/4] riscv: Add 3 SBI wrapper functions to get cpu manufacturer information
Palmer Dabbelt
palmer at dabbelt.com
Wed Mar 10 04:39:10 GMT 2021
On Sun, 07 Mar 2021 19:58:14 PST (-0800), vincent.chen at sifive.com wrote:
> Add 3 wrapper functions to get vendor id, architecture id and implement id
> from M-mode
>
> Signed-off-by: Vincent Chen <vincent.chen at sifive.com>
> ---
> arch/riscv/include/asm/sbi.h | 3 +++
> arch/riscv/kernel/sbi.c | 15 +++++++++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h
> index 99895d9c3bdd..94a7f664caf4 100644
> --- a/arch/riscv/include/asm/sbi.h
> +++ b/arch/riscv/include/asm/sbi.h
> @@ -97,6 +97,9 @@ struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0,
>
> void sbi_console_putchar(int ch);
> int sbi_console_getchar(void);
> +long sbi_get_vendorid(void);
> +long sbi_get_archid(void);
> +long sbi_get_impid(void);
> void sbi_set_timer(uint64_t stime_value);
> void sbi_shutdown(void);
> void sbi_clear_ipi(void);
> diff --git a/arch/riscv/kernel/sbi.c b/arch/riscv/kernel/sbi.c
> index f4a7db3d309e..33e3a9d6efab 100644
> --- a/arch/riscv/kernel/sbi.c
> +++ b/arch/riscv/kernel/sbi.c
> @@ -547,6 +547,21 @@ static inline long sbi_get_firmware_version(void)
> return __sbi_base_ecall(SBI_EXT_BASE_GET_IMP_VERSION);
> }
>
> +long sbi_get_vendorid(void)
> +{
> + return __sbi_base_ecall(SBI_EXT_BASE_GET_MVENDORID);
> +}
> +
> +long sbi_get_archid(void)
> +{
> + return __sbi_base_ecall(SBI_EXT_BASE_GET_MARCHID);
> +}
> +
> +long sbi_get_impid(void)
> +{
> + return __sbi_base_ecall(SBI_EXT_BASE_GET_MIMPID);
> +}
The function names should match the SBI function names, which have an extra "m"
in them. Otherwise it's just confusing.
> +
> static void sbi_send_cpumask_ipi(const struct cpumask *target)
> {
> struct cpumask hartid_mask;
More information about the linux-riscv
mailing list