diff --git a/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c b/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c index 85af7f1250..d075fbef0a 100644 --- a/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c +++ b/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c @@ -17,6 +17,7 @@ #include #include #include +#include VOID AcpiPmControl ( @@ -46,7 +47,10 @@ ResetCold ( ) { IoWrite8 (0xCF9, BIT2 | BIT1); // 1st choice: PIIX3 RCR, RCPU|SRST + MicroSecondDelay (50); + IoWrite8 (0x64, 0xfe); // 2nd choice: keyboard controller + CpuDeadLoop (); } /** @@ -63,6 +67,7 @@ ResetWarm ( ) { IoWrite8 (0x64, 0xfe); + CpuDeadLoop (); } /** diff --git a/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf b/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf index 0694b4dd3c..c4d8ce54bf 100644 --- a/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf +++ b/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.inf @@ -35,4 +35,4 @@ [LibraryClasses] DebugLib IoLib - + TimerLib