34 lines
661 B
C
34 lines
661 B
C
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||
|
/*
|
||
|
* Copyright 2022-2023 Rivos, Inc
|
||
|
*/
|
||
|
|
||
|
#ifndef _ASM_CPUFEATURE_H
|
||
|
#define _ASM_CPUFEATURE_H
|
||
|
|
||
|
#include <linux/bitmap.h>
|
||
|
#include <asm/hwcap.h>
|
||
|
|
||
|
/*
|
||
|
* These are probed via a device_initcall(), via either the SBI or directly
|
||
|
* from the corresponding CSRs.
|
||
|
*/
|
||
|
struct riscv_cpuinfo {
|
||
|
unsigned long mvendorid;
|
||
|
unsigned long marchid;
|
||
|
unsigned long mimpid;
|
||
|
};
|
||
|
|
||
|
struct riscv_isainfo {
|
||
|
DECLARE_BITMAP(isa, RISCV_ISA_EXT_MAX);
|
||
|
};
|
||
|
|
||
|
DECLARE_PER_CPU(struct riscv_cpuinfo, riscv_cpuinfo);
|
||
|
|
||
|
DECLARE_PER_CPU(long, misaligned_access_speed);
|
||
|
|
||
|
/* Per-cpu ISA extensions. */
|
||
|
extern struct riscv_isainfo hart_isa[NR_CPUS];
|
||
|
|
||
|
#endif
|