Introduce HAS_MFAULTS_DELEGATION feature

Conditionnally delegate page fault exceptions from M mode to S mode
based on the platform features.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
This commit is contained in:
Damien Le Moal
2018-12-21 19:19:54 +09:00
committed by Anup Patel
parent db6c1fe78b
commit 27332e63fa
3 changed files with 13 additions and 7 deletions

View File

@@ -18,13 +18,15 @@ enum sbi_platform_features {
SBI_PLATFORM_HAS_PMP = (1 << 2),
SBI_PLATFORM_HAS_SCOUNTEREN = (1 << 3),
SBI_PLATFORM_HAS_MCOUNTEREN = (1 << 4),
SBI_PLATFORM_HAS_MFAULTS_DELEGATION = (1 << 5),
};
#define SBI_PLATFORM_DEFAULT_FEATURES \
(SBI_PLATFORM_HAS_MMIO_TIMER_VALUE | \
SBI_PLATFORM_HAS_PMP | \
SBI_PLATFORM_HAS_SCOUNTEREN | \
SBI_PLATFORM_HAS_MCOUNTEREN)
SBI_PLATFORM_HAS_MCOUNTEREN | \
SBI_PLATFORM_HAS_MFAULTS_DELEGATION)
struct sbi_platform {
char name[64];
@@ -71,6 +73,8 @@ struct sbi_platform {
((__p)->features & SBI_PLATFORM_HAS_SCOUNTEREN)
#define sbi_platform_has_mcounteren(__p) \
((__p)->features & SBI_PLATFORM_HAS_MCOUNTEREN)
#define sbi_platform_has_mfaults_delegation(__p) \
((__p)->features & SBI_PLATFORM_HAS_MFAULTS_DELEGATION)
static inline const char *sbi_platform_name(struct sbi_platform *plat)
{