LibResetSystem was performing a cold reboot for both reboot and shutdown.
This patch updates LibResetSystem to pass SYS_CFG_SHUTDOWN to the microcontroller when called wit EfiResetShutdown.
Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- .../Library/ResetSystemLib/ResetSystemLib.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.c b/ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.c index f858317..f32b533 100644 --- a/ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.c +++ b/ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.c @@ -49,12 +49,19 @@ LibResetSystem ( case EfiResetWarm: // Map a warm reset into a cold reset case EfiResetCold: - case EfiResetShutdown: // Send the REBOOT function to the platform microcontroller ArmPlatformSysConfigSet (SYS_CFG_REBOOT, 0);
// We should never be here while(1); + break; + case EfiResetShutdown: + // Send the SHUTDOWN function to the platform microcontroller + ArmPlatformSysConfigSet (SYS_CFG_SHUTDOWN, 0); + + // We should never be here + while(1); + break; }
ASSERT(FALSE);