summaryrefslogtreecommitdiff
path: root/include/sbi/sbi_platform.h
diff options
context:
space:
mode:
authorAtish Patra <atish.patra@wdc.com>2020-05-10 02:47:28 +0300
committerAnup Patel <anup@brainfault.org>2020-05-10 07:35:41 +0300
commitb2df751acfd2858f2370d896f91543593647b243 (patch)
tree75bb454392222a4686dbf12191ce3831738662d6 /include/sbi/sbi_platform.h
parent6a053f6e6cb4db8a291239e882e9a778c2738e0a (diff)
downloadopensbi-b2df751acfd2858f2370d896f91543593647b243.tar.xz
platform: Move platform features to hart
PMP & performance counters belong to a hart rather than a platform. In addition to that, these features enable reading/writing from a particular csr. Thus, they can be detected and set at runtime rather than compile time. Move PMP/MCOUNTEREN/SCOUNTEREN features to hart and detect them at runtime. Signed-off-by: Atish Patra <atish.patra@wdc.com> Tested-by: Jonathan Balkind <jbalkind@cs.princeton.edu> Reviewed-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'include/sbi/sbi_platform.h')
-rw-r--r--include/sbi/sbi_platform.h22
1 files changed, 3 insertions, 19 deletions
diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h
index 9eaf82e..675d021 100644
--- a/include/sbi/sbi_platform.h
+++ b/include/sbi/sbi_platform.h
@@ -52,23 +52,15 @@ enum sbi_platform_features {
SBI_PLATFORM_HAS_TIMER_VALUE = (1 << 0),
/** Platform has HART hotplug support */
SBI_PLATFORM_HAS_HART_HOTPLUG = (1 << 1),
- /** Platform has PMP support */
- SBI_PLATFORM_HAS_PMP = (1 << 2),
- /** Platform has S-mode counter enable */
- SBI_PLATFORM_HAS_SCOUNTEREN = (1 << 3),
- /** Platform has M-mode counter enable */
- SBI_PLATFORM_HAS_MCOUNTEREN = (1 << 4),
/** Platform has fault delegation support */
- SBI_PLATFORM_HAS_MFAULTS_DELEGATION = (1 << 5),
+ SBI_PLATFORM_HAS_MFAULTS_DELEGATION = (1 << 2),
/** Platform has custom secondary hart booting support */
- SBI_PLATFORM_HAS_HART_SECONDARY_BOOT = (1 << 6),
+ SBI_PLATFORM_HAS_HART_SECONDARY_BOOT = (1 << 3),
};
/** Default feature set for a platform */
#define SBI_PLATFORM_DEFAULT_FEATURES \
- (SBI_PLATFORM_HAS_TIMER_VALUE | SBI_PLATFORM_HAS_PMP | \
- SBI_PLATFORM_HAS_SCOUNTEREN | SBI_PLATFORM_HAS_MCOUNTEREN | \
- SBI_PLATFORM_HAS_MFAULTS_DELEGATION)
+ (SBI_PLATFORM_HAS_TIMER_VALUE | SBI_PLATFORM_HAS_MFAULTS_DELEGATION)
/** Platform functions */
struct sbi_platform_operations {
@@ -224,14 +216,6 @@ struct sbi_platform {
/** Check whether the platform supports HART hotplug */
#define sbi_platform_has_hart_hotplug(__p) \
((__p)->features & SBI_PLATFORM_HAS_HART_HOTPLUG)
-/** Check whether the platform has PMP support */
-#define sbi_platform_has_pmp(__p) ((__p)->features & SBI_PLATFORM_HAS_PMP)
-/** Check whether the platform supports scounteren CSR */
-#define sbi_platform_has_scounteren(__p) \
- ((__p)->features & SBI_PLATFORM_HAS_SCOUNTEREN)
-/** Check whether the platform supports mcounteren CSR */
-#define sbi_platform_has_mcounteren(__p) \
- ((__p)->features & SBI_PLATFORM_HAS_MCOUNTEREN)
/** Check whether the platform supports fault delegation */
#define sbi_platform_has_mfaults_delegation(__p) \
((__p)->features & SBI_PLATFORM_HAS_MFAULTS_DELEGATION)