firmware: smccc: Add function to fetch SMCCC version
For backward compatibility reasons, PSCI maintains SMCCC version as SMCCC didn't provide ARM_SMCCC_VERSION_FUNC_ID until v1.1. PSCI initialises both the SMCCC version and conduit. Similar to the conduit, let us provide accessors to fetch the SMCCC version also so that other SMCCC v1.1+ features can use it. Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> Tested-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Steven Price <steven.price@arm.com> Reviewed-by: Etienne Carriere <etienne.carriere@st.com> Acked-by: Mark Rutland <mark.rutland@arm.com> Link: https://lore.kernel.org/r/20200518091222.27467-7-sudeep.holla@arm.com Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
f2ae97062a
commit
a4fb174651
|
@ -24,3 +24,8 @@ enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void)
|
||||||
|
|
||||||
return smccc_conduit;
|
return smccc_conduit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 arm_smccc_get_version(void)
|
||||||
|
{
|
||||||
|
return smccc_version;
|
||||||
|
}
|
||||||
|
|
|
@ -100,6 +100,17 @@ enum arm_smccc_conduit {
|
||||||
*/
|
*/
|
||||||
enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void);
|
enum arm_smccc_conduit arm_smccc_1_1_get_conduit(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* arm_smccc_get_version()
|
||||||
|
*
|
||||||
|
* Returns the version to be used for SMCCCv1.1 or later.
|
||||||
|
*
|
||||||
|
* When SMCCCv1.1 or above is not present, returns SMCCCv1.0, but this
|
||||||
|
* does not imply the presence of firmware or a valid conduit. Caller
|
||||||
|
* handling SMCCCv1.0 must determine the conduit by other means.
|
||||||
|
*/
|
||||||
|
u32 arm_smccc_get_version(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct arm_smccc_res - Result from SMC/HVC call
|
* struct arm_smccc_res - Result from SMC/HVC call
|
||||||
* @a0-a3 result values from registers 0 to 3
|
* @a0-a3 result values from registers 0 to 3
|
||||||
|
|
Loading…
Reference in a new issue