diff options
author | Kun Qin <kuqin@microsoft.com> | 2025-02-05 16:00:12 -0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2025-02-11 21:21:40 +0000 |
commit | 523dbb6d597b63181bba85a337d1f53e511f4822 (patch) | |
tree | b68f9f6f447c382af96c539898453425ba394f65 | |
parent | 96cf70951f53f16853fdd42129b73940e71bab2d (diff) | |
download | edk2-523dbb6d597b63181bba85a337d1f53e511f4822.tar.gz |
ArmPkg: ArmFfaStandaloneMmLib: Fix non-FFA path
ArmFfaLibCommonInit will return EFI_UNSUPPORTED when there is no FFA
supported on the platform. This is expected behavior. However, the return
of error code will incur program asserts.
This change fixed the non-FFA path for the Standalone MM instance.
Signed-off-by: Kun Qin <kun.qin@microsoft.com>
-rw-r--r-- | ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c b/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c index ce70e07d48..2d7f834219 100644 --- a/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c +++ b/ArmPkg/Library/ArmFfaLib/ArmFfaStandaloneMmLib.c @@ -68,5 +68,22 @@ ArmFfaStandaloneMmLibConstructor ( IN EFI_MM_SYSTEM_TABLE *MmSystemTable
)
{
- return ArmFfaLibCommonInit ();
+ EFI_STATUS Status;
+
+ Status = ArmFfaLibCommonInit ();
+ if (Status == EFI_UNSUPPORTED) {
+ /*
+ * EFI_UNSUPPORTED means FF-A interface isn't available.
+ * However, for Standalone MM modules, FF-A availability is not required.
+ * i.e. Standalone MM could use SpmMm as a legitimate protocol.
+ * Thus, returning EFI_SUCCESS here to avoid the entrypoint to assert.
+ */
+ return EFI_SUCCESS;
+ }
+
+ if (EFI_ERROR (Status)) {
+ DEBUG ((DEBUG_ERROR, "%a failed. Status = %r\n", __func__, Status));
+ }
+
+ return Status;
}
|