From f64f4b92e411709227ee830bc1e9f8f87c72423e Mon Sep 17 00:00:00 2001 From: Atish Patra Date: Tue, 11 Feb 2020 17:32:36 -0800 Subject: [PATCH] lib: Add a new platform feature to bringup secondary harts A platform may have a specific method to bring-up secondary harts for the first time but may rely on generic WFI based approach for hart hotplug in absence of a platform specific hart hotplug method. Define a platform feature flag for such platforms. The platform needs to implement platform specific bring-up method in hart_start and not define hart_stop method in this case. They must only define SBI_PLATFORM_HAS_HART_SECONDARY_BOOT. SBI_PLATFORM_HAS_HART_HOTPLUG should only be defined when the platform intend to support both hart_start and hart_stop and do not intend to rely on generic WFI based approach. Signed-off-by: Atish Patra Reviewed-by: Anup Patel --- include/sbi/sbi_platform.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index ba1d95f4..16ee05c7 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -59,6 +59,8 @@ enum sbi_platform_features { SBI_PLATFORM_HAS_MCOUNTEREN = (1 << 4), /** Platform has fault delegation support */ SBI_PLATFORM_HAS_MFAULTS_DELEGATION = (1 << 5), + /** Platform has custom secondary hart booting support */ + SBI_PLATFORM_HAS_HART_SECONDARY_BOOT = (1 << 6), }; /** Default feature set for a platform */ @@ -204,6 +206,9 @@ struct sbi_platform { /** Check whether the platform supports fault delegation */ #define sbi_platform_has_mfaults_delegation(__p) \ ((__p)->features & SBI_PLATFORM_HAS_MFAULTS_DELEGATION) +/** Check whether the platform supports custom secondary hart booting support */ +#define sbi_platform_has_hart_secondary_boot(__p) \ + ((__p)->features & SBI_PLATFORM_HAS_HART_SECONDARY_BOOT) /** * Get name of the platform