summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRebecca Cran <rebecca@nuviainc.com>2021-12-13 11:30:56 -0700
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-12-14 11:30:26 +0000
commitc039fa7ff09729de07bc7ebcdd4878340bfaf252 (patch)
tree1bc0b9da87f0f4f4108f3a9ee367a5a8acb31548
parent4d303524451d87d411c972736015138a8a4f03f6 (diff)
downloadedk2-c039fa7ff09729de07bc7ebcdd4878340bfaf252.tar.gz
edk2-c039fa7ff09729de07bc7ebcdd4878340bfaf252.tar.bz2
edk2-c039fa7ff09729de07bc7ebcdd4878340bfaf252.zip
ArmPkg: Update SMC calls to use the new ArmCallSmc0/1/2/3 functions
New SMC helper functions have been added to reduce the amount of template code. Update ArmSmcPsciResetSystemLib and Smbios/ProcessorSubClassDxe to use them. Signed-off-by: Rebecca Cran <rebecca@nuviainc.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
-rw-r--r--ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c10
-rw-r--r--ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c40
2 files changed, 18 insertions, 32 deletions
diff --git a/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c b/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c
index 6688fca37a..af6738459e 100644
--- a/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c
+++ b/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.c
@@ -31,11 +31,8 @@ ResetCold (
VOID
)
{
- ARM_SMC_ARGS ArmSmcArgs;
-
// Send a PSCI 0.2 SYSTEM_RESET command
- ArmSmcArgs.Arg0 = ARM_SMC_ID_PSCI_SYSTEM_RESET;
- ArmCallSmc (&ArmSmcArgs);
+ ArmCallSmc0 (ARM_SMC_ID_PSCI_SYSTEM_RESET, NULL, NULL, NULL);
}
/**
@@ -66,11 +63,8 @@ ResetShutdown (
VOID
)
{
- ARM_SMC_ARGS ArmSmcArgs;
-
// Send a PSCI 0.2 SYSTEM_OFF command
- ArmSmcArgs.Arg0 = ARM_SMC_ID_PSCI_SYSTEM_OFF;
- ArmCallSmc (&ArmSmcArgs);
+ ArmCallSmc0 (ARM_SMC_ID_PSCI_SYSTEM_OFF, NULL, NULL, NULL);
}
/**
diff --git a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c
index 7a8c3ca567..e0010a40e4 100644
--- a/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c
+++ b/ArmPkg/Universal/Smbios/ProcessorSubClassDxe/SmbiosProcessorArmCommon.c
@@ -88,22 +88,18 @@ HasSmcArm64SocId (
VOID
)
{
- ARM_SMC_ARGS Args;
- INT32 SmcCallStatus;
- BOOLEAN Arm64SocIdSupported;
+ INT32 SmcCallStatus;
+ BOOLEAN Arm64SocIdSupported;
+ UINTN SmcParam;
Arm64SocIdSupported = FALSE;
- Args.Arg0 = SMCCC_VERSION;
- ArmCallSmc (&Args);
- SmcCallStatus = (INT32)Args.Arg0;
+ SmcCallStatus = ArmCallSmc0 (SMCCC_VERSION, NULL, NULL, NULL);
if ((SmcCallStatus < 0) || ((SmcCallStatus >> 16) >= 1)) {
- Args.Arg0 = SMCCC_ARCH_FEATURES;
- Args.Arg1 = SMCCC_ARCH_SOC_ID;
- ArmCallSmc (&Args);
-
- if (Args.Arg0 >= 0) {
+ SmcParam = SMCCC_ARCH_SOC_ID;
+ SmcCallStatus = ArmCallSmc1 (SMCCC_ARCH_FEATURES, &SmcParam, NULL, NULL);
+ if (SmcCallStatus >= 0) {
Arm64SocIdSupported = TRUE;
}
}
@@ -125,30 +121,26 @@ SmbiosGetSmcArm64SocId (
OUT INT32 *SocRevision
)
{
- ARM_SMC_ARGS Args;
- INT32 SmcCallStatus;
- EFI_STATUS Status;
+ INT32 SmcCallStatus;
+ EFI_STATUS Status;
+ UINTN SmcParam;
Status = EFI_SUCCESS;
- Args.Arg0 = SMCCC_ARCH_SOC_ID;
- Args.Arg1 = 0;
- ArmCallSmc (&Args);
- SmcCallStatus = (INT32)Args.Arg0;
+ SmcParam = 0;
+ SmcCallStatus = ArmCallSmc1 (SMCCC_ARCH_SOC_ID, &SmcParam, NULL, NULL);
if (SmcCallStatus >= 0) {
- *Jep106Code = (INT32)Args.Arg0;
+ *Jep106Code = (INT32)SmcParam;
} else {
Status = EFI_UNSUPPORTED;
}
- Args.Arg0 = SMCCC_ARCH_SOC_ID;
- Args.Arg1 = 1;
- ArmCallSmc (&Args);
- SmcCallStatus = (INT32)Args.Arg0;
+ SmcParam = 1;
+ SmcCallStatus = ArmCallSmc1 (SMCCC_ARCH_SOC_ID, &SmcParam, NULL, NULL);
if (SmcCallStatus >= 0) {
- *SocRevision = (INT32)Args.Arg0;
+ *SocRevision = (INT32)SmcParam;
} else {
Status = EFI_UNSUPPORTED;
}