aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGovindraj Raja <govindraj.raja@arm.com>2024-05-08 20:36:04 -0500
committerGovindraj Raja <govindraj.raja@arm.com>2024-05-08 20:36:04 -0500
commit62865b4ee455806e37a9c5bd52255b8c09cf1a1a (patch)
treef0f63b150668dd5f99214f449ff50aef598cdd28
parenta97e1f9747e295af74e032c20c32eb94cfdf2a04 (diff)
downloadarm-trusted-firmware-62865b4ee455806e37a9c5bd52255b8c09cf1a1a.tar.gz
fix(smc): correctly find pmf version
Commit@f7679d437d5f27a3168f017db8d42bc561ac0c59 PMF is moved under vendor specific EL3 range, part of this we have introduced each sub-service have an version scheme[1]. - Current PMF is not handling correctly identifying all FID's under it so handle this correctly. - Minor refactor to use existing macro GET_SMC_NUM rather than manual parsing to find the SMC number. [1]: https://trustedfirmware-a.readthedocs.io/en/latest/components/ven-el3-service.html Change-Id: I7a4c8936e42d4a579f0243fa3d06015540caca37 Signed-off-by: Govindraj Raja <govindraj.raja@arm.com>
-rw-r--r--include/lib/debugfs.h6
-rw-r--r--include/lib/pmf/pmf.h5
2 files changed, 6 insertions, 5 deletions
diff --git a/include/lib/debugfs.h b/include/lib/debugfs.h
index 941596278..1fdccb6ae 100644
--- a/include/lib/debugfs.h
+++ b/include/lib/debugfs.h
@@ -66,8 +66,8 @@ int debugfs_smc_setup(void);
*/
#define DEBUGFS_FID_VALUE (0x10U)
-#define is_debugfs_fid(_fid) \
- (((_fid) & FUNCID_NUM_MASK) == DEBUGFS_FID_VALUE)
+#define is_debugfs_fid(_fid) \
+ (GET_SMC_NUM(_fid) == DEBUGFS_FID_VALUE)
/* Function ID for accessing the debugfs interface from arm sip.
@@ -76,7 +76,7 @@ int debugfs_smc_setup(void);
#define DEBUGFS_FID_VALUE_DEPRECATED (0x30U)
#define is_debugfs_fid_deprecated(_fid) \
- (((_fid) & FUNCID_NUM_MASK) == DEBUGFS_FID_VALUE_DEPRECATED)
+ (GET_SMC_NUM(_fid) == DEBUGFS_FID_VALUE_DEPRECATED)
/* Error code for debugfs SMC interface failures */
diff --git a/include/lib/pmf/pmf.h b/include/lib/pmf/pmf.h
index 38841d9d9..41bf7fc7d 100644
--- a/include/lib/pmf/pmf.h
+++ b/include/lib/pmf/pmf.h
@@ -44,7 +44,7 @@
#define PMF_FID_VALUE_DEPRECATED U(0x10)
#define is_pmf_fid_deprecated(_fid) \
- (((_fid) & FUNCID_NUM_MASK) == PMF_FID_VALUE_DEPRECATED)
+ (GET_SMC_NUM(_fid) == PMF_FID_VALUE_DEPRECATED)
/*
* Defines for PMF SMC function ids used with Vendor-Specific
@@ -64,7 +64,8 @@
* PMF calls from the SMC function ID.
*/
#define PMF_FID_VALUE U(0x20)
-#define is_pmf_fid(_fid) (((_fid) & FUNCID_NUM_MASK) == PMF_FID_VALUE)
+#define PMF_ID_MASK (FUNCID_NUM_MASK & ~(0xf))
+#define is_pmf_fid(_fid) ((GET_SMC_NUM(_fid) & PMF_ID_MASK) == PMF_FID_VALUE)
/* Following are the supported PMF service IDs */
#define PMF_PSCI_STAT_SVC_ID 0