Entry point to the Standalone MM Foundation when initialized during the SEC\r
phase on ARM platforms\r
\r
-Copyright (c) 2017 - 2018, ARM Ltd. All rights reserved.<BR>\r
+Copyright (c) 2017 - 2021, Arm Ltd. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
sections in the Standalone MM Core module to be able to access RO and RW data\r
and make further progress in the boot process.\r
\r
- @param ImageContext Pointer to PE/COFF image context\r
- @param ImageBase Base of image in memory\r
- @param SectionHeaderOffset Offset of PE/COFF image section header\r
- @param NumberOfSections Number of Sections\r
- @param TextUpdater Function to change code permissions\r
- @param ReadOnlyUpdater Function to change RO permissions\r
- @param ReadWriteUpdater Function to change RW permissions\r
+ @param [in] ImageContext Pointer to PE/COFF image context\r
+ @param [in] ImageBase Base of image in memory\r
+ @param [in] SectionHeaderOffset Offset of PE/COFF image section header\r
+ @param [in] NumberOfSections Number of Sections\r
+ @param [in] TextUpdater Function to change code permissions\r
+ @param [in] ReadOnlyUpdater Function to change RO permissions\r
+ @param [in] ReadWriteUpdater Function to change RW permissions\r
\r
**/\r
EFI_STATUS\r
the Standalone MM Core module to be able to change permissions of the\r
individual sections later in the boot process.\r
\r
- @param TeData Pointer to PE/COFF image data\r
- @param ImageContext Pointer to PE/COFF image context\r
- @param ImageBase Pointer to ImageBase variable\r
- @param SectionHeaderOffset Offset of PE/COFF image section header\r
- @param NumberOfSections Number of Sections\r
+ @param [in] TeData Pointer to PE/COFF image data\r
+ @param [in, out] ImageContext Pointer to PE/COFF image context\r
+ @param [out] ImageBase Pointer to ImageBase variable\r
+ @param [in, out] SectionHeaderOffset Offset of PE/COFF image section header\r
+ @param [in, out] NumberOfSections Number of Sections\r
\r
**/\r
EFI_STATUS\r
by the Boot Firmware Volume. This function locates the Standalone MM Core\r
module PE/COFF image in the BFV and returns this information.\r
\r
- @param BfvAddress Base Address of Boot Firmware Volume\r
- @param TeData Pointer to address for allocating memory for\r
- PE/COFF image data\r
- @param TeDataSize Pointer to size of PE/COFF image data\r
+ @param [in] BfvAddress Base Address of Boot Firmware Volume\r
+ @param [in, out] TeData Pointer to address for allocating memory\r
+ for PE/COFF image data\r
+ @param [in, out] TeDataSize Pointer to size of PE/COFF image data\r
\r
**/\r
EFI_STATUS\r
\r
#include <IndustryStandard/ArmStdSmc.h>\r
\r
+/**\r
+ Privileged firmware assigns RO & Executable attributes to all memory occupied\r
+ by the Boot Firmware Volume. This function sets the correct permissions of\r
+ sections in the Standalone MM Core module to be able to access RO and RW data\r
+ and make further progress in the boot process.\r
+\r
+ @param [in] ImageContext Pointer to PE/COFF image context\r
+ @param [in] ImageBase Base of image in memory\r
+ @param [in] SectionHeaderOffset Offset of PE/COFF image section header\r
+ @param [in] NumberOfSections Number of Sections\r
+ @param [in] TextUpdater Function to change code permissions\r
+ @param [in] ReadOnlyUpdater Function to change RO permissions\r
+ @param [in] ReadWriteUpdater Function to change RW permissions\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
UpdateMmFoundationPeCoffPermissions (\r
return RETURN_SUCCESS;\r
}\r
\r
+/**\r
+ Privileged firmware assigns RO & Executable attributes to all memory occupied\r
+ by the Boot Firmware Volume. This function locates the Standalone MM Core\r
+ module PE/COFF image in the BFV and returns this information.\r
+\r
+ @param [in] BfvAddress Base Address of Boot Firmware Volume\r
+ @param [in, out] TeData Pointer to address for allocating memory\r
+ for PE/COFF image data\r
+ @param [in, out] TeDataSize Pointer to size of PE/COFF image data\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
LocateStandaloneMmCorePeCoffData (\r
return Status;\r
}\r
\r
+/**\r
+ Returns the PC COFF section information.\r
+\r
+ @param [in, out] ImageContext Pointer to PE/COFF image context\r
+ @param [out] ImageBase Base of image in memory\r
+ @param [out] SectionHeaderOffset Offset of PE/COFF image section header\r
+ @param [out] NumberOfSections Number of Sections\r
+\r
+**/\r
STATIC\r
EFI_STATUS\r
GetPeCoffSectionInformation (\r
return RETURN_SUCCESS;\r
}\r
\r
+/**\r
+ Privileged firmware assigns RO & Executable attributes to all memory occupied\r
+ by the Boot Firmware Volume. This function locates the section information of\r
+ the Standalone MM Core module to be able to change permissions of the\r
+ individual sections later in the boot process.\r
+\r
+ @param [in] TeData Pointer to PE/COFF image data\r
+ @param [in, out] ImageContext Pointer to PE/COFF image context\r
+ @param [out] ImageBase Pointer to ImageBase variable\r
+ @param [in, out] SectionHeaderOffset Offset of PE/COFF image section header\r
+ @param [in, out] NumberOfSections Number of Sections\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
GetStandaloneMmCorePeCoffSections (\r
Entry point to the Standalone MM Foundation when initialized during the SEC\r
phase on ARM platforms\r
\r
-Copyright (c) 2017 - 2018, ARM Ltd. All rights reserved.<BR>\r
+Copyright (c) 2017 - 2021, Arm Ltd. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
return PayloadBootInfo;\r
}\r
\r
+/**\r
+ A loop to delegated events.\r
+\r
+ @param [in] EventCompleteSvcArgs Pointer to the event completion arguments.\r
+\r
+**/\r
VOID\r
EFIAPI\r
DelegatedEventLoop (\r
}\r
}\r
\r
+/**\r
+ Query the SPM version, check compatibility and return success if compatible.\r
+\r
+ @retval EFI_SUCCESS SPM versions compatible.\r
+ @retval EFI_UNSUPPORTED SPM versions not compatible.\r
+**/\r
STATIC\r
EFI_STATUS\r
GetSpmVersion (VOID)\r