diff options
author | Govindraj Raja <govindraj.raja@arm.com> | 2024-05-08 20:36:04 -0500 |
---|---|---|
committer | Govindraj Raja <govindraj.raja@arm.com> | 2024-05-08 20:36:04 -0500 |
commit | 62865b4ee455806e37a9c5bd52255b8c09cf1a1a (patch) | |
tree | f0f63b150668dd5f99214f449ff50aef598cdd28 | |
parent | a97e1f9747e295af74e032c20c32eb94cfdf2a04 (diff) | |
download | arm-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.h | 6 | ||||
-rw-r--r-- | include/lib/pmf/pmf.h | 5 |
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 |