[edk2-devel] [PATCH v3 13/26] StandaloneMmPkg: Fix ECC error 4002 in StandaloneMmCoreEntryPoint
Sami Mujawar
sami.mujawar at arm.com
Mon Jan 4 13:22:00 UTC 2021
Bugzilla: 3150 (https://bugzilla.tianocore.org/show_bug.cgi?id=3150)
Add doxygen style function headers to fix ECC reported errors
"[4002] Function header doesn't exist Function".
Also update the corresponding declaration to add IN/OUT doxygen
style reference tags.
Signed-off-by: Sami Mujawar <sami.mujawar at arm.com>
Acked-by: Jiewen Yao <Jiewen.yao at intel.com>
---
Notes:
v3:
- No code change. Added bugzilla ID and resending patch [SAMI]
with v3 series.
v2:
- No code change. Resending patch with v2 series. [SAMI]
StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h | 34 +++++++-------
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c | 48 ++++++++++++++++++++
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c | 14 +++++-
3 files changed, 78 insertions(+), 18 deletions(-)
diff --git a/StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h b/StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h
index 0f9a032404582fd59e3d4e2bf2884b1077b78d5c..34c43897dded9aebe1470f2dbfe96b93590a9e45 100644
--- a/StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h
+++ b/StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h
@@ -2,7 +2,7 @@
Entry point to the Standalone MM Foundation when initialized during the SEC
phase on ARM platforms
-Copyright (c) 2017 - 2018, ARM Ltd. All rights reserved.<BR>
+Copyright (c) 2017 - 2020, Arm Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -70,13 +70,13 @@ typedef RETURN_STATUS (*REGION_PERMISSION_UPDATE_FUNC) (
sections in the Standalone MM Core module to be able to access RO and RW data
and make further progress in the boot process.
- @param ImageContext Pointer to PE/COFF image context
- @param ImageBase Base of image in memory
- @param SectionHeaderOffset Offset of PE/COFF image section header
- @param NumberOfSections Number of Sections
- @param TextUpdater Function to change code permissions
- @param ReadOnlyUpdater Function to change RO permissions
- @param ReadWriteUpdater Function to change RW permissions
+ @param [in] ImageContext Pointer to PE/COFF image context
+ @param [in] ImageBase Base of image in memory
+ @param [in] SectionHeaderOffset Offset of PE/COFF image section header
+ @param [in] NumberOfSections Number of Sections
+ @param [in] TextUpdater Function to change code permissions
+ @param [in] ReadOnlyUpdater Function to change RO permissions
+ @param [in] ReadWriteUpdater Function to change RW permissions
**/
EFI_STATUS
@@ -98,11 +98,11 @@ UpdateMmFoundationPeCoffPermissions (
the Standalone MM Core module to be able to change permissions of the
individual sections later in the boot process.
- @param TeData Pointer to PE/COFF image data
- @param ImageContext Pointer to PE/COFF image context
- @param ImageBase Pointer to ImageBase variable
- @param SectionHeaderOffset Offset of PE/COFF image section header
- @param NumberOfSections Number of Sections
+ @param [in] TeData Pointer to PE/COFF image data
+ @param [in, out] ImageContext Pointer to PE/COFF image context
+ @param [out] ImageBase Pointer to ImageBase variable
+ @param [in, out] SectionHeaderOffset Offset of PE/COFF image section header
+ @param [in, out] NumberOfSections Number of Sections
**/
EFI_STATUS
@@ -121,10 +121,10 @@ GetStandaloneMmCorePeCoffSections (
by the Boot Firmware Volume. This function locates the Standalone MM Core
module PE/COFF image in the BFV and returns this information.
- @param BfvAddress Base Address of Boot Firmware Volume
- @param TeData Pointer to address for allocating memory for
- PE/COFF image data
- @param TeDataSize Pointer to size of PE/COFF image data
+ @param [in] BfvAddress Base Address of Boot Firmware Volume
+ @param [in, out] TeData Pointer to address for allocating memory
+ for PE/COFF image data
+ @param [in, out] TeDataSize Pointer to size of PE/COFF image data
**/
EFI_STATUS
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c
index 0ab6edaeb7f05bc814281d0e928305804633e970..f2e724cfc38e75d61bae5d8d21d40feda1685144 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/SetPermissions.c
@@ -25,6 +25,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <IndustryStandard/ArmStdSmc.h>
+/**
+ Privileged firmware assigns RO & Executable attributes to all memory occupied
+ by the Boot Firmware Volume. This function sets the correct permissions of
+ sections in the Standalone MM Core module to be able to access RO and RW data
+ and make further progress in the boot process.
+
+ @param [in] ImageContext Pointer to PE/COFF image context
+ @param [in] ImageBase Base of image in memory
+ @param [in] SectionHeaderOffset Offset of PE/COFF image section header
+ @param [in] NumberOfSections Number of Sections
+ @param [in] TextUpdater Function to change code permissions
+ @param [in] ReadOnlyUpdater Function to change RO permissions
+ @param [in] ReadWriteUpdater Function to change RW permissions
+
+**/
EFI_STATUS
EFIAPI
UpdateMmFoundationPeCoffPermissions (
@@ -113,6 +128,17 @@ UpdateMmFoundationPeCoffPermissions (
return RETURN_SUCCESS;
}
+/**
+ Privileged firmware assigns RO & Executable attributes to all memory occupied
+ by the Boot Firmware Volume. This function locates the Standalone MM Core
+ module PE/COFF image in the BFV and returns this information.
+
+ @param [in] BfvAddress Base Address of Boot Firmware Volume
+ @param [in, out] TeData Pointer to address for allocating memory
+ for PE/COFF image data
+ @param [in, out] TeDataSize Pointer to size of PE/COFF image data
+
+**/
EFI_STATUS
EFIAPI
LocateStandaloneMmCorePeCoffData (
@@ -151,6 +177,15 @@ LocateStandaloneMmCorePeCoffData (
return Status;
}
+/**
+ Returns the PC COFF section information.
+
+ @param [in, out] ImageContext Pointer to PE/COFF image context
+ @param [out] ImageBase Base of image in memory
+ @param [out] SectionHeaderOffset Offset of PE/COFF image section header
+ @param [out] NumberOfSections Number of Sections
+
+**/
STATIC
EFI_STATUS
GetPeCoffSectionInformation (
@@ -241,6 +276,19 @@ GetPeCoffSectionInformation (
return RETURN_SUCCESS;
}
+/**
+ Privileged firmware assigns RO & Executable attributes to all memory occupied
+ by the Boot Firmware Volume. This function locates the section information of
+ the Standalone MM Core module to be able to change permissions of the
+ individual sections later in the boot process.
+
+ @param [in] TeData Pointer to PE/COFF image data
+ @param [in, out] ImageContext Pointer to PE/COFF image context
+ @param [out] ImageBase Pointer to ImageBase variable
+ @param [in, out] SectionHeaderOffset Offset of PE/COFF image section header
+ @param [in, out] NumberOfSections Number of Sections
+
+**/
EFI_STATUS
EFIAPI
GetStandaloneMmCorePeCoffSections (
diff --git a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c
index 9cecfa667b905c975ddd348513c51fc8a5955718..3d3c772019df9afe9b8ec77019c776ea7c3b55fb 100644
--- a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c
+++ b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/AArch64/StandaloneMmCoreEntryPoint.c
@@ -2,7 +2,7 @@
Entry point to the Standalone MM Foundation when initialized during the SEC
phase on ARM platforms
-Copyright (c) 2017 - 2018, ARM Ltd. All rights reserved.<BR>
+Copyright (c) 2017 - 2020, Arm Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -101,6 +101,12 @@ GetAndPrintBootinformation (
return PayloadBootInfo;
}
+/**
+ A loop to delegated events.
+
+ @param [in] EventCompleteSvcArgs Pointer to the event completion arguments.
+
+**/
VOID
EFIAPI
DelegatedEventLoop (
@@ -156,6 +162,12 @@ DelegatedEventLoop (
}
}
+/**
+ Query the SPM version, check compatibility and return success if compatible.
+
+ @retval EFI_SUCCESS SPM versions compatible.
+ @retval EFI_UNSUPPORTED SPM versions not compatible.
+**/
STATIC
EFI_STATUS
GetSpmVersion (VOID)
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#69573): https://edk2.groups.io/g/devel/message/69573
Mute This Topic: https://groups.io/mt/79423287/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list