mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2026-08-18 01:21:49 +01:00
lib: sbi: Extend hart protection abstraction to allow ID configuration
There are various ID configuration ISA extensions such as RISC-V Worlds, Supervisor domain ID, QoS ID, etc which need to be re-configured upon domain context switch on a hart. Extend hart protection abstraction to support both memory protection and ID configuration ISA extensions. Signed-off-by: Anup Patel <anup.patel@oss.qualcomm.com> Reviewed-by: Rahul Pathak <rahul.pathak@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260727042504.1743250-5-anup.patel@oss.qualcomm.com Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -13,6 +13,13 @@
|
||||
struct sbi_scratch;
|
||||
struct sbi_domain;
|
||||
|
||||
/** Different types of hart protection mechanisms */
|
||||
enum sbi_hart_protection_type {
|
||||
SBI_HART_PROTECTION_TYPE_MEMORY = 0,
|
||||
SBI_HART_PROTECTION_TYPE_ID,
|
||||
SBI_HART_PROTECTION_TYPE_MAX
|
||||
};
|
||||
|
||||
/** Representation of hart protection mechanism */
|
||||
struct sbi_hart_protection {
|
||||
/** List head */
|
||||
@@ -21,6 +28,9 @@ struct sbi_hart_protection {
|
||||
/** Name of the hart protection mechanism */
|
||||
char name[32];
|
||||
|
||||
/** Type of the hart protection mechanism */
|
||||
enum sbi_hart_protection_type type;
|
||||
|
||||
/** Ratings of the hart protection mechanism (higher is better) */
|
||||
unsigned long rating;
|
||||
|
||||
@@ -40,11 +50,11 @@ struct sbi_hart_protection {
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the best hart protection mechanism
|
||||
* Get the best hart memory protection mechanism
|
||||
*
|
||||
* @return pointer to best hart protection mechanism
|
||||
* @return pointer to best hart memory protection mechanism
|
||||
*/
|
||||
struct sbi_hart_protection *sbi_hart_protection_best(void);
|
||||
struct sbi_hart_protection *sbi_hart_memory_protection_best(void);
|
||||
|
||||
/**
|
||||
* Register a hart protection mechanism
|
||||
|
||||
Reference in New Issue
Block a user