diff options
author | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2018-06-06 14:32:42 +0200 |
---|---|---|
committer | Ard Biesheuvel <ard.biesheuvel@linaro.org> | 2018-06-15 18:18:37 +0200 |
commit | dde2dd64f07041c2ccc23dc7a5a846e667b7bb1a (patch) | |
tree | e9e7a0dacb660f6bf63f9a595a99ecc098fef458 /ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf | |
parent | cae823161249198976a7e8c2711d39f3832a09cd (diff) | |
download | edk2-dde2dd64f07041c2ccc23dc7a5a846e667b7bb1a.zip edk2-dde2dd64f07041c2ccc23dc7a5a846e667b7bb1a.tar.gz edk2-dde2dd64f07041c2ccc23dc7a5a846e667b7bb1a.tar.bz2 |
ArmPkg/ArmSmcPsciResetSystemLib: implement fallback for warm reboot
Implement ResetSystemLib's EnterS3WithImmediateWake() routine using
a jump back to the PEI entry point with interrupts and MMU+caches
disabled. This is only possible at boot time, when we are sure that
the current CPU is the only one up and running. Also, it depends on
the platform whether the PEI code is preserved in memory (it may be
copied to DRAM rather than execute in place), so also add a feature
PCD to selectively enable this feature.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Diffstat (limited to 'ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf')
-rw-r--r-- | ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf b/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf index 5a1ee97..19021cd 100644 --- a/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf +++ b/ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf @@ -30,6 +30,15 @@ MdePkg/MdePkg.dec
[LibraryClasses]
+ ArmMmuLib
ArmSmcLib
BaseLib
DebugLib
+ UefiBootServicesTableLib
+ UefiRuntimeLib
+
+[FeaturePcd]
+ gArmTokenSpaceGuid.PcdArmReenterPeiForCapsuleWarmReboot
+
+[FixedPcd]
+ gArmTokenSpaceGuid.PcdFvBaseAddress
|