summaryrefslogtreecommitdiff
path: root/ArmPlatformPkg
diff options
context:
space:
mode:
Diffstat (limited to 'ArmPlatformPkg')
-rw-r--r--ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c14
-rw-r--r--ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c16
-rw-r--r--ArmPlatformPkg/Include/Library/ArmPlatformLib.h13
-rw-r--r--ArmPlatformPkg/PlatformPei/PlatformPei.c7
-rw-r--r--ArmPlatformPkg/PlatformPei/PlatformPei.inf2
5 files changed, 46 insertions, 6 deletions
diff --git a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c
index 003f657..070db6a 100644
--- a/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c
+++ b/ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEb.c
@@ -58,6 +58,20 @@ VOID ArmPlatformBootRemapping(VOID) {
}
/**
+ Return the current Boot Mode
+
+ This function returns the boot reason on the platform
+
+**/
+EFI_BOOT_MODE
+ArmPlatformGetBootMode (
+ VOID
+ )
+{
+ return BOOT_WITH_FULL_CONFIGURATION;
+}
+
+/**
Initialize controllers that must setup at the early stage
Some peripherals must be initialized in Secure World.
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
index 2d39207..490dda1 100644
--- a/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
+++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/CTA9x4.c
@@ -138,6 +138,22 @@ VOID ArmPlatformTrustzoneInit(VOID) {
}
/**
+ Return the current Boot Mode
+
+ This function returns the boot reason on the platform
+
+ @return Return the current Boot Mode of the platform
+
+**/
+EFI_BOOT_MODE
+ArmPlatformGetBootMode (
+ VOID
+ )
+{
+ return BOOT_WITH_FULL_CONFIGURATION;
+}
+
+/**
Remap the memory at 0x0
Some platform requires or gives the ability to remap the memory at the address 0x0.
diff --git a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h
index c9b215e..83c19ba 100644
--- a/ArmPlatformPkg/Include/Library/ArmPlatformLib.h
+++ b/ArmPlatformPkg/Include/Library/ArmPlatformLib.h
@@ -68,6 +68,19 @@ VOID ArmPlatformIsMemoryInitialized(VOID);
VOID ArmPlatformInitializeBootMemory(VOID);
/**
+ Return the current Boot Mode
+
+ This function returns the boot reason on the platform
+
+ @return Return the current Boot Mode of the platform
+
+**/
+EFI_BOOT_MODE
+ArmPlatformGetBootMode (
+ VOID
+ );
+
+/**
Initialize controllers that must setup at the early stage
Some peripherals must be initialized in Secure World.
diff --git a/ArmPlatformPkg/PlatformPei/PlatformPei.c b/ArmPlatformPkg/PlatformPei/PlatformPei.c
index a7fa432..0d90173 100644
--- a/ArmPlatformPkg/PlatformPei/PlatformPei.c
+++ b/ArmPlatformPkg/PlatformPei/PlatformPei.c
@@ -77,12 +77,7 @@ Returns:
BuildFvHob (FixedPcdGet32(PcdFlashFvMainBase), FixedPcdGet32(PcdFlashFvMainSize));
- //
- // Let's assume things are OK if not told otherwise
- // Should we read an environment variable in order to easily change this?
- //
- BootMode = BOOT_WITH_FULL_CONFIGURATION;
-
+ BootMode = ArmPlatformGetBootMode ();
Status = (**PeiServices).SetBootMode (PeiServices, (UINT8) BootMode);
ASSERT_EFI_ERROR (Status);
diff --git a/ArmPlatformPkg/PlatformPei/PlatformPei.inf b/ArmPlatformPkg/PlatformPei/PlatformPei.inf
index 452c025..c35889a 100644
--- a/ArmPlatformPkg/PlatformPei/PlatformPei.inf
+++ b/ArmPlatformPkg/PlatformPei/PlatformPei.inf
@@ -34,11 +34,13 @@
MdePkg/MdePkg.dec
EmbeddedPkg/EmbeddedPkg.dec
ArmPkg/ArmPkg.dec
+ ArmPlatformPkg/ArmPlatformPkg.dec
[LibraryClasses]
PeimEntryPoint
DebugLib
HobLib
+ ArmPlatformLib
[Ppis]
gEfiPeiMasterBootModePpiGuid # PPI ALWAYS_PRODUCED