在 8/3/2018 6:28 PM, Leif Lindholm 写道: > On Tue, Jul 24, 2018 at 03:08:56PM +0800, Ming Huang wrote: >> From: Sun Yuanchen <sunyuanc...@huawei.com> >> >> according as watchdog design on D06, watchdog should be >> stoped befor boot a option. > > stopped before > >> >> Contributed-under: TianoCore Contribution Agreement 1.1 >> Signed-off-by: Wang Yue <wangyu...@huawei.com> >> Signed-off-by: Ming Huang <ming.hu...@linaro.org> >> Signed-off-by: Heyi Guo <heyi....@linaro.org> >> --- >> Silicon/Hisilicon/Include/Library/IpmiCmdLib.h >> | 16 ++++++++++++++ >> Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c >> | 22 ++++++++++++++++++++ >> Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >> | 2 ++ >> 3 files changed, 40 insertions(+) >> >> diff --git a/Silicon/Hisilicon/Include/Library/IpmiCmdLib.h >> b/Silicon/Hisilicon/Include/Library/IpmiCmdLib.h >> index 8868b76135..b956ee6d07 100644 >> --- a/Silicon/Hisilicon/Include/Library/IpmiCmdLib.h >> +++ b/Silicon/Hisilicon/Include/Library/IpmiCmdLib.h >> @@ -19,6 +19,17 @@ >> #define BOOT_OPTION_BOOT_FLAG_VALID 1 >> #define BOOT_OPTION_BOOT_FLAG_INVALID 0 >> >> +typedef enum { >> + EfiReserved, >> + EfiBiosFrb2, >> + EfiBiosPost, >> + EfiOsLoad, >> + EfiSmsOs, >> + EfiOem, >> + EfiFrbReserved1, >> + EfiFrbReserved2 >> +} EFI_WDT_USER_TYPE; >> + >> typedef enum { >> NoOverride = 0x0, >> ForcePxe, >> @@ -91,4 +102,9 @@ IpmiCmdGetSysBootOptions ( >> IN IPMI_GET_BOOT_OPTION *BootOption >> ); >> >> +EFI_STATUS >> +IpmiCmdStopWatchdogTimer ( >> + IN EFI_WDT_USER_TYPE UserType >> + ); >> + >> #endif >> diff --git a/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c >> b/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c >> index f7536bfea3..9636f29dce 100644 >> --- a/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c >> +++ b/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBm.c >> @@ -19,8 +19,10 @@ >> #include <Library/BootLogoLib.h> >> #include <Library/BmcConfigBootLib.h> >> #include <Library/DevicePathLib.h> >> +#include <Library/OemConfigData.h> >> #include <Library/PcdLib.h> >> #include <Library/TimerLib.h> >> +#include <Library/IpmiCmdLib.h> > > Please put this line after Library/DevicePathLib.h. > >> #include <Library/UefiBootManagerLib.h> >> #include <Library/UefiLib.h> >> #include <Protocol/DevicePath.h> >> @@ -615,6 +617,8 @@ PlatformBootManagerAfterConsole ( >> { >> EFI_STATUS Status; >> ESRT_MANAGEMENT_PROTOCOL *EsrtManagement = NULL; >> + OEM_CONFIG_DATA SetupData; >> + UINTN DataSize = sizeof (OEM_CONFIG_DATA); >> >> // >> // Show the splash screen. >> @@ -651,6 +655,24 @@ PlatformBootManagerAfterConsole ( >> ); >> >> HandleBmcBootType (); >> + >> + //Disable POST Watch Dog before enter setup > > Before entering setup (as stated here) or before attempting boot (as > stated in commit message)? >
Before attempting boot >> + Status = gRT->GetVariable ( >> + OEM_CONFIG_NAME, >> + &gOemConfigGuid, >> + NULL, >> + &DataSize, >> + &SetupData >> + ); >> + >> + if (!EFI_ERROR (Status)) { >> + if (SetupData.BmcWdtEnable) { >> + Status = IpmiCmdStopWatchdogTimer (EfiBiosPost); >> + if (EFI_ERROR (Status)) { >> + DEBUG ((DEBUG_ERROR, "%a:%r\n", __FUNCTION__, Status)); >> + } >> + } >> + } >> } >> >> /** >> diff --git >> a/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >> >> b/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >> index a093f13fb0..21afb53fc5 100644 >> --- >> a/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >> +++ >> b/Silicon/Hisilicon/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf >> @@ -47,6 +47,7 @@ >> DevicePathLib >> DxeServicesLib >> MemoryAllocationLib >> + IpmiCmdLib > > Please move up one line. > > / > Leif > All comments will be apply. Thanks. Ming >> PcdLib >> PrintLib >> TimerLib >> @@ -69,6 +70,7 @@ >> gEfiEndOfDxeEventGroupGuid >> gEfiTtyTermGuid >> gHisiOemVariableGuid >> + gOemConfigGuid >> >> [Protocols] >> gEfiGenericMemTestProtocolGuid >> -- >> 2.17.0 >> _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel