diff options
author | Sami Mujawar <sami.mujawar@arm.com> | 2020-12-07 11:22:43 +0000 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2021-01-07 11:13:39 +0000 |
commit | 764942a2dd9ea2c7fa3243ced4395aacd5133c82 (patch) | |
tree | ca81cf4ff20090f0affa0688ca7228b575037cab /StandaloneMmPkg | |
parent | 84096dccd6b6e801be78ba7819eeb87885e0ef4e (diff) | |
download | edk2-764942a2dd9ea2c7fa3243ced4395aacd5133c82.tar.gz edk2-764942a2dd9ea2c7fa3243ced4395aacd5133c82.tar.bz2 edk2-764942a2dd9ea2c7fa3243ced4395aacd5133c82.zip |
StandaloneMmPkg: Fix ECC error 4002 in StandaloneMmCoreEntryPoint
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@arm.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Diffstat (limited to 'StandaloneMmPkg')
3 files changed, 78 insertions, 18 deletions
diff --git a/StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h b/StandaloneMmPkg/Include/Library/AArch64/StandaloneMmCoreEntryPoint.h index 0f9a032404..8e39ea16d7 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 - 2021, 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 57325c4a5f..4a380df4a6 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 9cecfa667b..903e32d711 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 - 2021, 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)
|