From: "Ard Biesheuvel" <ard.biesheuvel@linaro.org>
To: Hao A Wu <hao.a.wu@intel.com>
Cc: edk2-devel-groups-io <devel@edk2.groups.io>,
Leif Lindholm <leif.lindholm@linaro.org>,
Michael D Kinney <michael.d.kinney@intel.com>
Subject: Re: [edk2-platforms][PATCH v1 12/16] Silicon/Hisilicon/PlatformIntelBdsLib: Remove Hisilicon PlatformBdsLib
Date: Fri, 17 May 2019 17:43:45 +0200 [thread overview]
Message-ID: <CAKv+Gu8nBff1sDu0z7Bk+SLiyPfc0Hpi5=R3+TqDycrp05yH9w@mail.gmail.com> (raw)
In-Reply-To: <20190514020831.7728-15-hao.a.wu@intel.com>
On Tue, 14 May 2019 at 04:08, Hao A Wu <hao.a.wu@intel.com> wrote:
>
> Hisilicon platforms have already switched to the BDS driver in
> MdeModulePkg by commit 5845a5cde9d6bd51d77067b2594654005887a434.
>
> Thus, the Hisilicon PlatformBdsLib is no longer needed. This commit will
> remove this library instance implementation.
>
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Leif Lindholm <leif.lindholm@linaro.org>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Signed-off-by: Hao A Wu <hao.a.wu@intel.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
> Silicon/Hisilicon/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf | 84 --
> Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatform.h | 61 --
> Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatformCommon.h | 27 -
> Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatform.c | 963 --------------------
> Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatformCommon.c | 118 ---
> 5 files changed, 1253 deletions(-)
>
> diff --git a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf b/Silicon/Hisilicon/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
> deleted file mode 100644
> index 0feec06392..0000000000
> --- a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -## @file
> -# Implementation for PlatformBdsLib library class interfaces.
> -#
> -# Copyright (C) 2015, Red Hat, Inc.
> -# Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
> -# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
> -# Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> -# Copyright (c) 2015, Linaro Limited. All rights reserved.
> -#
> -# This program and the accompanying materials are licensed and made available
> -# under the terms and conditions of the BSD License which accompanies this
> -# distribution. The full text of the license may be found at
> -# http://opensource.org/licenses/bsd-license.php
> -#
> -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
> -# IMPLIED.
> -#
> -# Based on the files under ArmVirtPkg/Library/PlatformIntelBdsLib/
> -#
> -##
> -
> -[Defines]
> - INF_VERSION = 0x00010005
> - BASE_NAME = PlatformIntelBdsLib
> - FILE_GUID = 46DF84EB-F603-4D39-99D8-E1E86B50BCC2
> - MODULE_TYPE = DXE_DRIVER
> - VERSION_STRING = 1.0
> - LIBRARY_CLASS = PlatformBdsLib|DXE_DRIVER
> -
> -#
> -# The following information is for reference only and not required by the build tools.
> -#
> -# VALID_ARCHITECTURES = ARM AARCH64
> -#
> -
> -[Sources]
> - IntelBdsPlatform.c
> - IntelBdsPlatformCommon.c
> -
> -[Packages]
> - IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
> - MdeModulePkg/MdeModulePkg.dec
> - MdePkg/MdePkg.dec
> - Silicon/Hisilicon/HisiPkg.dec
> -
> -[LibraryClasses]
> - BaseLib
> - BaseMemoryLib
> - DebugLib
> - DevicePathLib
> - GenericBdsLib
> - IpmiCmdLib
> - MemoryAllocationLib
> - PcdLib
> - PrintLib
> - UefiBootServicesTableLib
> - UefiRuntimeServicesTableLib
> - UefiLib
> -
> -[FixedPcd]
> - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile
> - gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
> - gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
> - gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
> - gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits
> -
> -[Pcd]
> - gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
> -
> -[Guids]
> - gEfiEndOfDxeEventGroupGuid
> - gEfiEventReadyToBootGuid
> - gEfiFileInfoGuid
> - gEfiFileSystemInfoGuid
> - gEfiFileSystemVolumeLabelInfoIdGuid
> -
> -[Protocols]
> - gEfiDevicePathProtocolGuid
> - gEfiDevicePathToTextProtocolGuid
> - gEfiGraphicsOutputProtocolGuid
> - gEfiLoadedImageProtocolGuid
> - gEfiPciRootBridgeIoProtocolGuid
> - gEfiSimpleFileSystemProtocolGuid
> diff --git a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatform.h b/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatform.h
> deleted file mode 100644
> index 4a912627a9..0000000000
> --- a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatform.h
> +++ /dev/null
> @@ -1,61 +0,0 @@
> -/** @file
> - Head file for BDS Platform specific code
> -
> - Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
> - Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
> - Copyright (c) 2015, Linaro Limited. All rights reserved.<BR>
> -
> - This program and the accompanying materials are licensed and made available
> - under the terms and conditions of the BSD License which accompanies this
> - distribution. The full text of the license may be found at
> - http://opensource.org/licenses/bsd-license.php
> -
> - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
> - WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -
> - Based on the files under ArmVirtPkg/Library/PlatformIntelBdsLib/
> -
> -**/
> -
> -#ifndef _INTEL_BDS_PLATFORM_H_
> -#define _INTEL_BDS_PLATFORM_H_
> -
> -#include <Library/BaseLib.h>
> -#include <Library/BaseMemoryLib.h>
> -#include <Library/DebugLib.h>
> -#include <Library/DevicePathLib.h>
> -#include <Library/MemoryAllocationLib.h>
> -#include <Library/UefiBootServicesTableLib.h>
> -#include <Library/UefiRuntimeServicesTableLib.h>
> -
> -#include "IntelBdsPlatformCommon.h"
> -
> -VOID
> -PlatformBdsEnterFrontPage (
> - IN UINT16 TimeoutDefault,
> - IN BOOLEAN ConnectAllHappened
> - );
> -
> -/**
> - Download the kernel, the initial ramdisk, and the kernel command line from
> - QEMU's fw_cfg. Construct a minimal SimpleFileSystem that contains the two
> - image files, and load and start the kernel from it.
> -
> - The kernel will be instructed via its command line to load the initrd from
> - the same Simple FileSystem.
> -
> - @retval EFI_NOT_FOUND Kernel image was not found.
> - @retval EFI_OUT_OF_RESOURCES Memory allocation failed.
> - @retval EFI_PROTOCOL_ERROR Unterminated kernel command line.
> -
> - @return Error codes from any of the underlying
> - functions. On success, the function doesn't
> - return.
> -**/
> -EFI_STATUS
> -EFIAPI
> -TryRunningQemuKernel (
> - VOID
> - );
> -
> -#endif // _INTEL_BDS_PLATFORM_H
> diff --git a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatformCommon.h b/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatformCommon.h
> deleted file mode 100644
> index 73b901ab51..0000000000
> --- a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatformCommon.h
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -/** @file
> -*
> -* Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> -* Copyright (c) 2015, Linaro Limited. All rights reserved.
> -*
> -* This program and the accompanying materials
> -* are licensed and made available under the terms and conditions of the BSD License
> -* which accompanies this distribution. The full text of the license may be found at
> -* http://opensource.org/licenses/bsd-license.php
> -*
> -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -*
> -**/
> -
> -#ifndef _HW_BDS_LIB_H_
> -#define _HW_BDS_LIB_H_
> -
> -EFI_STATUS
> -EFIAPI
> -HwBdsLibRegisterAppBootOption (
> - IN OUT LIST_ENTRY *BdsBootOptionList,
> - IN GUID *FileGuid,
> - IN CHAR16 *Description
> - );
> -
> -#endif
> diff --git a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatform.c b/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
> deleted file mode 100644
> index dc23e46c1f..0000000000
> --- a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
> +++ /dev/null
> @@ -1,963 +0,0 @@
> -/** @file
> - Implementation for PlatformBdsLib library class interfaces.
> -
> - Copyright (C) 2015, Red Hat, Inc.
> - Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
> - Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
> - Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> - Copyright (c) 2015, Linaro Limited. All rights reserved.
> -
> - This program and the accompanying materials are licensed and made available
> - under the terms and conditions of the BSD License which accompanies this
> - distribution. The full text of the license may be found at
> - http://opensource.org/licenses/bsd-license.php
> -
> - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
> - WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -
> - Based on the files under ArmVirtPkg/Library/PlatformIntelBdsLib/
> -
> -**/
> -
> -#include <IndustryStandard/Pci22.h>
> -#include <Library/DevicePathLib.h>
> -#include <Library/GenericBdsLib.h>
> -#include <Library/IpmiCmdLib.h>
> -#include <Library/PcdLib.h>
> -#include <Library/PlatformBdsLib.h>
> -#include <Library/PrintLib.h>
> -#include <Library/UefiLib.h>
> -#include <Protocol/DevicePath.h>
> -#include <Protocol/DevicePathToText.h>
> -#include <Protocol/GraphicsOutput.h>
> -#include <Protocol/PciIo.h>
> -#include <Protocol/PciRootBridgeIo.h>
> -#include <Guid/GlobalVariable.h>
> -
> -#include "IntelBdsPlatform.h"
> -
> -GUID gOemBootVaraibleGuid = {0xb7784577, 0x5aaf, 0x4557, {0xa1, 0x99,
> - 0xd4, 0xa4, 0x2f, 0x45, 0x06, 0xf8} };
> -
> -//3CEF354A-3B7A-4519-AD70-72A134698311
> -GUID gEblFileGuid = {0x3CEF354A, 0x3B7A, 0x4519, {0xAD, 0x70,
> - 0x72, 0xA1, 0x34, 0x69, 0x83, 0x11} };
> -
> -// Need to keep the same with FlashStartOs.inf
> -// 282cae50-940e-11e5-b7b8-774201c0f2d8
> -GUID gFlashStartOsAppGuid = { 0x282cae50, 0x940e, 0x11e5, {0xb7, 0xb8,
> - 0x77, 0x42, 0x01, 0xc0, 0xf2, 0xd8} };
> -
> -// Need to keep the same with EslStartOs.inf
> -// 8880a72c-9411-11e5-b6f0-97310bc151d1
> -GUID gEslStartOsAppGuid = { 0x8880a72c, 0x9411, 0x11e5, {0xb6, 0xf0,
> - 0x97, 0x31, 0x0b, 0xc1, 0x51, 0xd1} };
> -
> -EFI_STATUS
> -BdsDeleteAllInvalidEfiBootOption (
> - VOID
> - );
> -
> -#define DP_NODE_LEN(Type) { (UINT8)sizeof (Type), (UINT8)(sizeof (Type) >> 8) }
> -
> -
> -#pragma pack (1)
> -typedef struct {
> - VENDOR_DEVICE_PATH SerialDxe;
> - UART_DEVICE_PATH Uart;
> - VENDOR_DEFINED_DEVICE_PATH Vt100;
> - EFI_DEVICE_PATH_PROTOCOL End;
> -} PLATFORM_SERIAL_CONSOLE;
> -#pragma pack ()
> -
> -#define SERIAL_DXE_FILE_GUID { \
> - 0xD3987D4B, 0x971A, 0x435F, \
> - { 0x8C, 0xAF, 0x49, 0x67, 0xEB, 0x62, 0x72, 0x41 } \
> - }
> -
> -STATIC PLATFORM_SERIAL_CONSOLE mSerialConsole = {
> - //
> - // VENDOR_DEVICE_PATH SerialDxe
> - //
> - {
> - { HARDWARE_DEVICE_PATH, HW_VENDOR_DP, DP_NODE_LEN (VENDOR_DEVICE_PATH) },
> - SERIAL_DXE_FILE_GUID
> - },
> -
> - //
> - // UART_DEVICE_PATH Uart
> - //
> - {
> - { MESSAGING_DEVICE_PATH, MSG_UART_DP, DP_NODE_LEN (UART_DEVICE_PATH) },
> - 0, // Reserved
> - FixedPcdGet64 (PcdUartDefaultBaudRate), // BaudRate
> - FixedPcdGet8 (PcdUartDefaultDataBits), // DataBits
> - FixedPcdGet8 (PcdUartDefaultParity), // Parity
> - FixedPcdGet8 (PcdUartDefaultStopBits) // StopBits
> - },
> -
> - //
> - // VENDOR_DEFINED_DEVICE_PATH Vt100
> - //
> - {
> - {
> - MESSAGING_DEVICE_PATH, MSG_VENDOR_DP,
> - DP_NODE_LEN (VENDOR_DEFINED_DEVICE_PATH)
> - },
> - EFI_VT_100_GUID
> - },
> -
> - //
> - // EFI_DEVICE_PATH_PROTOCOL End
> - //
> - {
> - END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE,
> - DP_NODE_LEN (EFI_DEVICE_PATH_PROTOCOL)
> - }
> -};
> -
> -
> -#pragma pack (1)
> -typedef struct {
> - USB_CLASS_DEVICE_PATH Keyboard;
> - EFI_DEVICE_PATH_PROTOCOL End;
> -} PLATFORM_USB_KEYBOARD;
> -#pragma pack ()
> -
> -STATIC PLATFORM_USB_KEYBOARD mUsbKeyboard = {
> - //
> - // USB_CLASS_DEVICE_PATH Keyboard
> - //
> - {
> - {
> - MESSAGING_DEVICE_PATH, MSG_USB_CLASS_DP,
> - DP_NODE_LEN (USB_CLASS_DEVICE_PATH)
> - },
> - 0xFFFF, // VendorId: any
> - 0xFFFF, // ProductId: any
> - 3, // DeviceClass: HID
> - 1, // DeviceSubClass: boot
> - 1 // DeviceProtocol: keyboard
> - },
> -
> - //
> - // EFI_DEVICE_PATH_PROTOCOL End
> - //
> - {
> - END_DEVICE_PATH_TYPE, END_ENTIRE_DEVICE_PATH_SUBTYPE,
> - DP_NODE_LEN (EFI_DEVICE_PATH_PROTOCOL)
> - }
> -};
> -
> -STATIC
> -UINT16
> -GetBBSTypeFromFileSysPath (
> - IN CHAR16 *UsbPathTxt,
> - IN CHAR16 *FileSysPathTxt,
> - IN EFI_DEVICE_PATH_PROTOCOL *FileSysPath
> - )
> -{
> - EFI_DEVICE_PATH_PROTOCOL *Node;
> -
> - if (StrnCmp (UsbPathTxt, FileSysPathTxt, StrLen (UsbPathTxt)) == 0) {
> - Node = FileSysPath;
> - while (!IsDevicePathEnd (Node)) {
> - if ((DevicePathType (Node) == MEDIA_DEVICE_PATH) &&
> - (DevicePathSubType (Node) == MEDIA_CDROM_DP)) {
> - return BBS_TYPE_CDROM;
> - }
> - Node = NextDevicePathNode (Node);
> - }
> - }
> -
> - return BBS_TYPE_UNKNOWN;
> -}
> -
> -STATIC
> -UINT16
> -GetBBSTypeFromUsbPath (
> - IN CONST EFI_DEVICE_PATH_PROTOCOL *UsbPath
> - )
> -{
> - EFI_STATUS Status;
> - EFI_HANDLE *FileSystemHandles;
> - UINTN NumberFileSystemHandles;
> - UINTN Index;
> - EFI_DEVICE_PATH_PROTOCOL *FileSysPath;
> - EFI_DEVICE_PATH_TO_TEXT_PROTOCOL *DevPathToText;
> - CHAR16 *UsbPathTxt;
> - CHAR16 *FileSysPathTxt;
> - UINT16 Result;
> -
> - Status = gBS->LocateProtocol (&gEfiDevicePathToTextProtocolGuid, NULL, (VOID **) &DevPathToText);
> - if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "Locate DevicePathToTextPro %r\n", Status));
> - return BBS_TYPE_UNKNOWN;
> - }
> -
> - Result = BBS_TYPE_UNKNOWN;
> - UsbPathTxt = DevPathToText->ConvertDevicePathToText (UsbPath, TRUE, TRUE);
> - if (UsbPathTxt == NULL) {
> - return Result;
> - }
> -
> - Status = gBS->LocateHandleBuffer (
> - ByProtocol,
> - &gEfiSimpleFileSystemProtocolGuid,
> - NULL,
> - &NumberFileSystemHandles,
> - &FileSystemHandles
> - );
> - if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "Locate SimpleFileSystemProtocol error(%r)\n", Status));
> - FreePool (UsbPathTxt);
> - return BBS_TYPE_UNKNOWN;
> - }
> -
> - for (Index = 0; Index < NumberFileSystemHandles; Index++) {
> - FileSysPath = DevicePathFromHandle (FileSystemHandles[Index]);
> - FileSysPathTxt = DevPathToText->ConvertDevicePathToText (FileSysPath, TRUE, TRUE);
> -
> - if (FileSysPathTxt == NULL) {
> - continue;
> - }
> -
> - Result = GetBBSTypeFromFileSysPath (UsbPathTxt, FileSysPathTxt, FileSysPath);
> - FreePool (FileSysPathTxt);
> -
> - if (Result != BBS_TYPE_UNKNOWN) {
> - break;
> - }
> - }
> -
> - if (NumberFileSystemHandles != 0) {
> - FreePool (FileSystemHandles);
> - }
> -
> - FreePool (UsbPathTxt);
> -
> - return Result;
> -}
> -
> -STATIC
> -UINT16
> -GetBBSTypeFromMessagingDevicePath (
> - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
> - IN EFI_DEVICE_PATH_PROTOCOL *Node
> - )
> -{
> - VENDOR_DEVICE_PATH *Vendor;
> - UINT16 Result;
> -
> - Result = BBS_TYPE_UNKNOWN;
> -
> - switch (DevicePathSubType (Node)) {
> - case MSG_MAC_ADDR_DP:
> - Result = BBS_TYPE_EMBEDDED_NETWORK;
> - break;
> -
> - case MSG_USB_DP:
> - Result = GetBBSTypeFromUsbPath (DevicePath);
> - if (Result == BBS_TYPE_UNKNOWN) {
> - Result = BBS_TYPE_USB;
> - }
> - break;
> -
> - case MSG_SATA_DP:
> - Result = BBS_TYPE_HARDDRIVE;
> - break;
> -
> - case MSG_VENDOR_DP:
> - Vendor = (VENDOR_DEVICE_PATH *) (Node);
> - if ((&Vendor->Guid) != NULL) {
> - if (CompareGuid (&Vendor->Guid, &((EFI_GUID) DEVICE_PATH_MESSAGING_SAS))) {
> - Result = BBS_TYPE_HARDDRIVE;
> - }
> - }
> - break;
> -
> - default:
> - Result = BBS_TYPE_UNKNOWN;
> - break;
> - }
> -
> - return Result;
> -}
> -
> -STATIC
> -UINT16
> -GetBBSTypeByDevicePath (
> - IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
> - )
> -{
> - EFI_DEVICE_PATH_PROTOCOL *Node;
> - UINT16 Result;
> -
> - Result = BBS_TYPE_UNKNOWN;
> - if (DevicePath == NULL) {
> - return Result;
> - }
> -
> - Node = DevicePath;
> - while (!IsDevicePathEnd (Node)) {
> - switch (DevicePathType (Node)) {
> - case MEDIA_DEVICE_PATH:
> - if (DevicePathSubType (Node) == MEDIA_CDROM_DP) {
> - Result = BBS_TYPE_CDROM;
> - }
> - break;
> -
> - case MESSAGING_DEVICE_PATH:
> - Result = GetBBSTypeFromMessagingDevicePath (DevicePath, Node);
> - break;
> -
> - default:
> - Result = BBS_TYPE_UNKNOWN;
> - break;
> - }
> -
> - if (Result != BBS_TYPE_UNKNOWN) {
> - break;
> - }
> -
> - Node = NextDevicePathNode (Node);
> - }
> -
> - return Result;
> -}
> -
> -STATIC
> -EFI_STATUS
> -GetBmcBootOptionsSetting (
> - OUT IPMI_GET_BOOT_OPTION *BmcBootOpt
> - )
> -{
> - EFI_STATUS Status;
> -
> - Status = IpmiCmdGetSysBootOptions (BmcBootOpt);
> - if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "Get iBMC BootOpts %r!\n", Status));
> - return Status;
> - }
> -
> - if (BmcBootOpt->BootFlagsValid != BOOT_OPTION_BOOT_FLAG_VALID) {
> - return EFI_NOT_FOUND;
> - }
> -
> - if (BmcBootOpt->Persistent) {
> - BmcBootOpt->BootFlagsValid = BOOT_OPTION_BOOT_FLAG_VALID;
> - } else {
> - BmcBootOpt->BootFlagsValid = BOOT_OPTION_BOOT_FLAG_INVALID;
> - }
> -
> - Status = IpmiCmdSetSysBootOptions (BmcBootOpt);
> - if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "Set iBMC BootOpts %r!\n", Status));
> - }
> -
> - return Status;
> -}
> -
> -STATIC
> -VOID
> -RestoreBootOrder (
> - VOID
> - )
> -{
> - EFI_STATUS Status;
> - UINT16 *BootOrder;
> - UINTN BootOrderSize;
> -
> - GetVariable2 (L"BootOrderBackup", &gOemBootVaraibleGuid, (VOID **) &BootOrder, &BootOrderSize);
> - if (BootOrder == NULL) {
> - return ;
> - }
> -
> - Print (L"Restore BootOrder(%d).\n", BootOrderSize / sizeof (UINT16));
> -
> - Status = gRT->SetVariable (
> - L"BootOrder",
> - &gEfiGlobalVariableGuid,
> - EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
> - BootOrderSize,
> - BootOrder
> - );
> - if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "SetVariable BootOrder %r!\n", Status));
> - }
> -
> - Status = gRT->SetVariable (
> - L"BootOrderBackup",
> - &gOemBootVaraibleGuid,
> - EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,
> - 0,
> - NULL
> - );
> - if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "SetVariable BootOrderBackup %r!\n", Status));
> - }
> -
> - FreePool (BootOrder);
> -
> - return;
> -}
> -
> -
> -VOID
> -RestoreBootOrderOnReadyToBoot (
> - IN EFI_EVENT Event,
> - IN VOID *Context
> - )
> -{
> - // restore BootOrder variable in normal condition.
> - RestoreBootOrder ();
> -}
> -
> -STATIC
> -VOID
> -UpdateBootOrder (
> - IN UINT16 *NewOrder,
> - IN UINT16 *BootOrder,
> - IN UINTN BootOrderSize
> - )
> -{
> - EFI_STATUS Status;
> - EFI_EVENT Event;
> -
> - Status = gRT->SetVariable (
> - L"BootOrderBackup",
> - &gOemBootVaraibleGuid,
> - EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,
> - BootOrderSize,
> - BootOrder
> - );
> - if (EFI_ERROR (Status)) {
> - return;
> - }
> -
> - Status = gRT->SetVariable (
> - L"BootOrder",
> - &gEfiGlobalVariableGuid,
> - EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
> - BootOrderSize,
> - NewOrder
> - );
> - if (EFI_ERROR (Status)) {
> - return;
> - }
> -
> - // Register notify function to restore BootOrder variable on ReadyToBoot Event.
> - Status = gBS->CreateEventEx (
> - EVT_NOTIFY_SIGNAL,
> - TPL_CALLBACK,
> - RestoreBootOrderOnReadyToBoot,
> - NULL,
> - &gEfiEventReadyToBootGuid,
> - &Event
> - );
> - if (EFI_ERROR (Status)) {
> - DEBUG ((DEBUG_ERROR, "Create ready to boot event %r!\n", Status));
> - }
> -
> - return;
> -}
> -
> -STATIC
> -VOID
> -SetBootOrder (
> - IN UINT16 BootType
> - )
> -{
> - UINT16 *NewOrder;
> - UINT16 *RemainBoots;
> - UINT16 *BootOrder;
> - UINTN BootOrderSize;
> - CHAR16 OptionName[sizeof ("Boot####")];
> - UINTN Index;
> - LIST_ENTRY BootOptionList;
> - BDS_COMMON_OPTION *Option;
> - UINTN SelectCnt;
> - UINTN RemainCnt;
> -
> - InitializeListHead (&BootOptionList);
> -
> - GetEfiGlobalVariable2 (L"BootOrder", (VOID **) &BootOrder, &BootOrderSize);
> - if (BootOrder == NULL) {
> - return ;
> - }
> -
> - NewOrder = AllocatePool (BootOrderSize);
> - RemainBoots = AllocatePool (BootOrderSize);
> - if ((NewOrder == NULL) || (RemainBoots == NULL)) {
> - DEBUG ((DEBUG_ERROR, "Out of resources."));
> - goto Exit;
> - }
> -
> - SelectCnt = 0;
> - RemainCnt = 0;
> -
> - for (Index = 0; Index < BootOrderSize / sizeof (UINT16); Index++) {
> - UnicodeSPrint (OptionName, sizeof (OptionName), L"Boot%04x", BootOrder[Index]);
> - Option = BdsLibVariableToOption (&BootOptionList, OptionName);
> - if (Option == NULL) {
> - DEBUG ((DEBUG_ERROR, "Boot%04x is invalid option!\n", BootOrder[Index]));
> - continue;
> - }
> -
> - if (GetBBSTypeByDevicePath (Option->DevicePath) == BootType) {
> - NewOrder[SelectCnt++] = BootOrder[Index];
> - } else {
> - RemainBoots[RemainCnt++] = BootOrder[Index];
> - }
> - }
> -
> - if (SelectCnt != 0) {
> - // append RemainBoots to NewOrder
> - for (Index = 0; Index < RemainCnt; Index++) {
> - NewOrder[SelectCnt + Index] = RemainBoots[Index];
> - }
> -
> - if (CompareMem (NewOrder, BootOrder, BootOrderSize) != 0) {
> - UpdateBootOrder (NewOrder, BootOrder, BootOrderSize);
> - }
> - }
> -
> -Exit:
> - FreePool (BootOrder);
> - if (NewOrder != NULL) {
> - FreePool (NewOrder);
> - }
> - if (RemainBoots != NULL) {
> - FreePool (RemainBoots);
> - }
> -
> - return ;
> -}
> -
> -STATIC
> -VOID
> -HandleBmcBootType (
> - VOID
> - )
> -{
> - EFI_STATUS Status;
> - IPMI_GET_BOOT_OPTION BmcBootOpt;
> - UINT16 BootType;
> -
> - Status = GetBmcBootOptionsSetting (&BmcBootOpt);
> - if (EFI_ERROR (Status)) {
> - return;
> - }
> -
> - Print (L"Boot Type from BMC is %x\n", BmcBootOpt.BootDeviceSelector);
> -
> - switch (BmcBootOpt.BootDeviceSelector) {
> - case ForcePxe:
> - BootType = BBS_TYPE_EMBEDDED_NETWORK;
> - break;
> -
> - case ForcePrimaryRemovableMedia:
> - BootType = BBS_TYPE_USB;
> - break;
> -
> - case ForceDefaultHardDisk:
> - BootType = BBS_TYPE_HARDDRIVE;
> - break;
> -
> - case ForceDefaultCD:
> - BootType = BBS_TYPE_CDROM;
> - break;
> -
> - default:
> - return;
> - }
> -
> - SetBootOrder (BootType);
> -}
> -
> -//
> -// BDS Platform Functions
> -//
> -/**
> - Platform Bds init. Include the platform firmware vendor, revision
> - and so crc check.
> -
> -**/
> -VOID
> -EFIAPI
> -PlatformBdsInit (
> - VOID
> - )
> -{
> - //Signal EndofDxe Event
> - EfiEventGroupSignal(&gEfiEndOfDxeEventGroupGuid);
> -
> - // restore BootOrder variable if previous BMC boot override attempt
> - // left it in a modified state
> - RestoreBootOrder ();
> -}
> -
> -
> -/**
> - Check if the handle satisfies a particular condition.
> -
> - @param[in] Handle The handle to check.
> - @param[in] ReportText A caller-allocated string passed in for reporting
> - purposes. It must never be NULL.
> -
> - @retval TRUE The condition is satisfied.
> - @retval FALSE Otherwise. This includes the case when the condition could not
> - be fully evaluated due to an error.
> -**/
> -typedef
> -BOOLEAN
> -(EFIAPI *FILTER_FUNCTION) (
> - IN EFI_HANDLE Handle,
> - IN CONST CHAR16 *ReportText
> - );
> -
> -
> -/**
> - Process a handle.
> -
> - @param[in] Handle The handle to process.
> - @param[in] ReportText A caller-allocated string passed in for reporting
> - purposes. It must never be NULL.
> -**/
> -typedef
> -VOID
> -(EFIAPI *CALLBACK_FUNCTION) (
> - IN EFI_HANDLE Handle,
> - IN CONST CHAR16 *ReportText
> - );
> -
> -/**
> - Locate all handles that carry the specified protocol, filter them with a
> - callback function, and pass each handle that passes the filter to another
> - callback.
> -
> - @param[in] ProtocolGuid The protocol to look for.
> -
> - @param[in] Filter The filter function to pass each handle to. If this
> - parameter is NULL, then all handles are processed.
> -
> - @param[in] Process The callback function to pass each handle to that
> - clears the filter.
> -**/
> -STATIC
> -VOID
> -FilterAndProcess (
> - IN EFI_GUID *ProtocolGuid,
> - IN FILTER_FUNCTION Filter OPTIONAL,
> - IN CALLBACK_FUNCTION Process
> - )
> -{
> - EFI_STATUS Status;
> - EFI_HANDLE *Handles;
> - UINTN NoHandles;
> - UINTN Idx;
> -
> - Status = gBS->LocateHandleBuffer (ByProtocol, ProtocolGuid,
> - NULL /* SearchKey */, &NoHandles, &Handles);
> - if (EFI_ERROR (Status)) {
> - //
> - // This is not an error, just an informative condition.
> - //
> - DEBUG ((EFI_D_VERBOSE, "%a: %g: %r\n", __FUNCTION__, ProtocolGuid,
> - Status));
> - return;
> - }
> -
> - ASSERT (NoHandles > 0);
> - for (Idx = 0; Idx < NoHandles; ++Idx) {
> - CHAR16 *DevicePathText;
> - STATIC CHAR16 Fallback[] = L"<device path unavailable>";
> -
> - //
> - // The ConvertDevicePathToText() function handles NULL input transparently.
> - //
> - DevicePathText = ConvertDevicePathToText (
> - DevicePathFromHandle (Handles[Idx]),
> - FALSE, // DisplayOnly
> - FALSE // AllowShortcuts
> - );
> - if (DevicePathText == NULL) {
> - DevicePathText = Fallback;
> - }
> -
> - if (Filter == NULL || Filter (Handles[Idx], DevicePathText)) {
> - Process (Handles[Idx], DevicePathText);
> - }
> -
> - if (DevicePathText != Fallback) {
> - FreePool (DevicePathText);
> - }
> - }
> - gBS->FreePool (Handles);
> -}
> -
> -
> -/**
> - This FILTER_FUNCTION checks if a handle corresponds to a PCI display device.
> -**/
> -STATIC
> -BOOLEAN
> -EFIAPI
> -IsPciDisplay (
> - IN EFI_HANDLE Handle,
> - IN CONST CHAR16 *ReportText
> - )
> -{
> - EFI_STATUS Status;
> - EFI_PCI_IO_PROTOCOL *PciIo;
> - PCI_TYPE00 Pci;
> -
> - Status = gBS->HandleProtocol (Handle, &gEfiPciIoProtocolGuid,
> - (VOID**)&PciIo);
> - if (EFI_ERROR (Status)) {
> - //
> - // This is not an error worth reporting.
> - //
> - return FALSE;
> - }
> -
> - Status = PciIo->Pci.Read (PciIo, EfiPciIoWidthUint32, 0 /* Offset */,
> - sizeof Pci / sizeof (UINT32), &Pci);
> - if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "%a: %s: %r\n", __FUNCTION__, ReportText, Status));
> - return FALSE;
> - }
> -
> - return IS_PCI_DISPLAY (&Pci);
> -}
> -
> -
> -/**
> - This CALLBACK_FUNCTION attempts to connect a handle non-recursively, asking
> - the matching driver to produce all first-level child handles.
> -**/
> -STATIC
> -VOID
> -EFIAPI
> -Connect (
> - IN EFI_HANDLE Handle,
> - IN CONST CHAR16 *ReportText
> - )
> -{
> - EFI_STATUS Status;
> -
> - Status = gBS->ConnectController (
> - Handle, // ControllerHandle
> - NULL, // DriverImageHandle
> - NULL, // RemainingDevicePath -- produce all children
> - FALSE // Recursive
> - );
> - DEBUG ((EFI_ERROR (Status) ? EFI_D_ERROR : EFI_D_VERBOSE, "%a: %s: %r\n",
> - __FUNCTION__, ReportText, Status));
> -}
> -
> -
> -/**
> - This CALLBACK_FUNCTION retrieves the EFI_DEVICE_PATH_PROTOCOL from the
> - handle, and adds it to ConOut and ErrOut.
> -**/
> -STATIC
> -VOID
> -EFIAPI
> -AddOutput (
> - IN EFI_HANDLE Handle,
> - IN CONST CHAR16 *ReportText
> - )
> -{
> - EFI_STATUS Status;
> - EFI_DEVICE_PATH_PROTOCOL *DevicePath;
> -
> - DevicePath = DevicePathFromHandle (Handle);
> - if (DevicePath == NULL) {
> - DEBUG ((EFI_D_ERROR, "%a: %s: handle %p: device path not found\n",
> - __FUNCTION__, ReportText, Handle));
> - return;
> - }
> -
> - Status = BdsLibUpdateConsoleVariable (L"ConOut", DevicePath, NULL);
> - if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "%a: %s: adding to ConOut: %r\n", __FUNCTION__,
> - ReportText, Status));
> - return;
> - }
> -
> - Status = BdsLibUpdateConsoleVariable (L"ErrOut", DevicePath, NULL);
> - if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "%a: %s: adding to ErrOut: %r\n", __FUNCTION__,
> - ReportText, Status));
> - return;
> - }
> -
> - DEBUG ((EFI_D_VERBOSE, "%a: %s: added to ConOut and ErrOut\n", __FUNCTION__,
> - ReportText));
> -}
> -
> -
> -/**
> - The function will execute with as the platform policy, current policy
> - is driven by boot mode. IBV/OEM can customize this code for their specific
> - policy action.
> -
> - @param DriverOptionList The header of the driver option link list
> - @param BootOptionList The header of the boot option link list
> - @param ProcessCapsules A pointer to ProcessCapsules()
> - @param BaseMemoryTest A pointer to BaseMemoryTest()
> -
> -**/
> -VOID
> -EFIAPI
> -PlatformBdsPolicyBehavior (
> - IN LIST_ENTRY *DriverOptionList,
> - IN LIST_ENTRY *BootOptionList,
> - IN PROCESS_CAPSULES ProcessCapsules,
> - IN BASEM_MEMORY_TEST BaseMemoryTest
> - )
> -{
> - EFI_STATUS Status;
> - //
> - // Locate the PCI root bridges and make the PCI bus driver connect each,
> - // non-recursively. This will produce a number of child handles with PciIo on
> - // them.
> - //
> - FilterAndProcess (&gEfiPciRootBridgeIoProtocolGuid, NULL, Connect);
> -
> - //
> - // Find all display class PCI devices (using the handles from the previous
> - // step), and connect them non-recursively. This should produce a number of
> - // child handles with GOPs on them.
> - //
> - FilterAndProcess (&gEfiPciIoProtocolGuid, IsPciDisplay, Connect);
> -
> - //
> - // Now add the device path of all handles with GOP on them to ConOut and
> - // ErrOut.
> - //
> - FilterAndProcess (&gEfiGraphicsOutputProtocolGuid, NULL, AddOutput);
> -
> - //
> - // Add the hardcoded short-form USB keyboard device path to ConIn.
> - //
> - BdsLibUpdateConsoleVariable (L"ConIn",
> - (EFI_DEVICE_PATH_PROTOCOL *)&mUsbKeyboard, NULL);
> -
> - //
> - // Add the hardcoded serial console device path to ConIn, ConOut, ErrOut.
> - //
> - BdsLibUpdateConsoleVariable (L"ConIn",
> - (EFI_DEVICE_PATH_PROTOCOL *)&mSerialConsole, NULL);
> - BdsLibUpdateConsoleVariable (L"ConOut",
> - (EFI_DEVICE_PATH_PROTOCOL *)&mSerialConsole, NULL);
> - BdsLibUpdateConsoleVariable (L"ErrOut",
> - (EFI_DEVICE_PATH_PROTOCOL *)&mSerialConsole, NULL);
> -
> - //
> - // Connect the consoles based on the above variables.
> - //
> - BdsLibConnectAllDefaultConsoles ();
> -
> - //
> - // Show the splash screen.
> - //
> - EnableQuietBoot (PcdGetPtr (PcdLogoFile));
> -
> - //
> - // Connect the rest of the devices.
> - //
> - BdsLibConnectAll ();
> -
> - //
> - // Add memory test to convert memory above 4GB to be tested
> - //
> - Status = BaseMemoryTest (QUICK);
> - if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "[%a:%d] - Base memory test failed: %r\n", __FUNCTION__, __LINE__, Status));
> - }
> -
> - //
> - // Process QEMU's -kernel command line option. Note that the kernel booted
> - // this way should receive ACPI tables, which is why we connect all devices
> - // first (see above) -- PCI enumeration blocks ACPI table installation, if
> - // there is a PCI host.
> - //
> - //TryRunningQemuKernel ();
> -
> - BdsLibEnumerateAllBootOption (BootOptionList);
> -
> - // Add Flash Start OS and ESL Start OS boot option
> - (VOID) HwBdsLibRegisterAppBootOption (BootOptionList, &gFlashStartOsAppGuid, L"Flash Start OS");
> - (VOID) HwBdsLibRegisterAppBootOption (BootOptionList, &gEslStartOsAppGuid, L"ESL Start OS");
> -
> - // Add EBL as boot option
> - (VOID) HwBdsLibRegisterAppBootOption (BootOptionList, &gEblFileGuid, L"Embedded Boot Loader (EBL)");
> -
> - // Remove EFI Misc Device Boot Options
> - BdsDeleteAllInvalidEfiBootOption ();
> -
> - //SetBootOrderFromQemu (BootOptionList);
> - //
> - // The BootOrder variable may have changed, reload the in-memory list with
> - // it.
> - //
> - BdsLibBuildOptionFromVar (BootOptionList, L"BootOrder");
> -
> - //PlatformBdsEnterFrontPage (GetFrontPageTimeoutFromQemu(), TRUE);
> - Print (L"Press Enter to boot OS immediately.\n");
> - Print (L"Press any other key in %d seconds to stop automatical booting...\n", PcdGet16(PcdPlatformBootTimeOut));
> - PlatformBdsEnterFrontPage (PcdGet16(PcdPlatformBootTimeOut), TRUE);
> - HandleBmcBootType ();
> -}
> -
> -/**
> - Hook point after a boot attempt succeeds. We don't expect a boot option to
> - return, so the UEFI 2.0 specification defines that you will default to an
> - interactive mode and stop processing the BootOrder list in this case. This
> - is also a platform implementation and can be customized by IBV/OEM.
> -
> - @param Option Pointer to Boot Option that succeeded to boot.
> -
> -**/
> -VOID
> -EFIAPI
> -PlatformBdsBootSuccess (
> - IN BDS_COMMON_OPTION *Option
> - )
> -{
> -}
> -
> -/**
> - Hook point after a boot attempt fails.
> -
> - @param Option Pointer to Boot Option that failed to boot.
> - @param Status Status returned from failed boot.
> - @param ExitData Exit data returned from failed boot.
> - @param ExitDataSize Exit data size returned from failed boot.
> -
> -**/
> -VOID
> -EFIAPI
> -PlatformBdsBootFail (
> - IN BDS_COMMON_OPTION *Option,
> - IN EFI_STATUS Status,
> - IN CHAR16 *ExitData,
> - IN UINTN ExitDataSize
> - )
> -{
> -}
> -
> -/**
> - This function locks platform flash that is not allowed to be updated during normal boot path.
> - The flash layout is platform specific.
> -**/
> -VOID
> -EFIAPI
> -PlatformBdsLockNonUpdatableFlash (
> - VOID
> - )
> -{
> - return;
> -}
> diff --git a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatformCommon.c b/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatformCommon.c
> deleted file mode 100644
> index 9ea701db11..0000000000
> --- a/Silicon/Hisilicon/Library/PlatformIntelBdsLib/IntelBdsPlatformCommon.c
> +++ /dev/null
> @@ -1,118 +0,0 @@
> -/** @file
> -*
> -* Copyright (c) 2015, Hisilicon Limited. All rights reserved.
> -* Copyright (c) 2015, Linaro Limited. All rights reserved.
> -*
> -* This program and the accompanying materials
> -* are licensed and made available under the terms and conditions of the BSD License
> -* which accompanies this distribution. The full text of the license may be found at
> -* http://opensource.org/licenses/bsd-license.php
> -*
> -* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> -* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> -*
> -**/
> -
> -#include "IntelBdsPlatform.h"
> -#include <Library/UefiLib.h>
> -#include <Library/GenericBdsLib.h>
> -#include <Protocol/FirmwareVolume2.h>
> -
> -VOID
> -EFIAPI
> -BdsLibBuildOptionFromApp (
> - IN EFI_HANDLE Handle,
> - IN OUT LIST_ENTRY *BdsBootOptionList,
> - IN GUID *FileGuid,
> - IN CHAR16 *Description
> - )
> -{
> - EFI_DEVICE_PATH_PROTOCOL *DevicePath;
> - MEDIA_FW_VOL_FILEPATH_DEVICE_PATH ShellNode;
> -
> - DevicePath = DevicePathFromHandle (Handle);
> -
> - //
> - // Build the shell device path
> - //
> - EfiInitializeFwVolDevicepathNode (&ShellNode, FileGuid);
> -
> - DevicePath = AppendDevicePathNode (DevicePath, (EFI_DEVICE_PATH_PROTOCOL *) &ShellNode);
> -
> - //
> - // Create and register the shell boot option
> - //
> - BdsLibRegisterNewOption (BdsBootOptionList, DevicePath, Description, L"BootOrder");
> -
> -}
> -EFI_STATUS
> -EFIAPI
> -HwBdsLibRegisterAppBootOption (
> - IN OUT LIST_ENTRY *BdsBootOptionList,
> - IN GUID *FileGuid,
> - IN CHAR16 *Description
> - )
> -{
> - EFI_STATUS Status;
> - UINTN Index;
> - UINTN FvHandleCount;
> - EFI_HANDLE *FvHandleBuffer;
> - EFI_FV_FILETYPE Type;
> - UINTN Size;
> - EFI_FV_FILE_ATTRIBUTES Attributes;
> - UINT32 AuthenticationStatus;
> - EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;
> - UINTN Count = 0;
> -
> - //
> - // Check if we have on flash shell
> - //
> - gBS->LocateHandleBuffer (
> - ByProtocol,
> - &gEfiFirmwareVolume2ProtocolGuid,
> - NULL,
> - &FvHandleCount,
> - &FvHandleBuffer
> - );
> - for (Index = 0; Index < FvHandleCount; Index++) {
> - gBS->HandleProtocol (
> - FvHandleBuffer[Index],
> - &gEfiFirmwareVolume2ProtocolGuid,
> - (VOID **) &Fv
> - );
> -
> - Status = Fv->ReadFile (
> - Fv,
> - FileGuid,
> - NULL,
> - &Size,
> - &Type,
> - &Attributes,
> - &AuthenticationStatus
> - );
> - if (EFI_ERROR (Status)) {
> - //
> - // Skip if no shell file in the FV
> - //
> - continue;
> - }
> - //
> - // Build the shell boot option
> - //
> - BdsLibBuildOptionFromApp (FvHandleBuffer[Index], BdsBootOptionList,
> - FileGuid, Description);
> -
> - Count++;
> - }
> -
> - if (FvHandleCount != 0) {
> - FreePool (FvHandleBuffer);
> - }
> -
> - if (Count == 0) {
> - return EFI_NOT_FOUND;
> - }
> -
> - return EFI_SUCCESS;
> -}
> -
> --
> 2.12.0.windows.1
>
next prev parent reply other threads:[~2019-05-17 15:44 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-14 2:08 [edk2-platforms][PATCH v1 00/16] Drop IntelFramework[Module]Pkg dependency Wu, Hao A
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 01/16] Platform/AMD: Use Lzma decompress lib in MdeModulePkg Wu, Hao A
2019-05-17 15:20 ` Ard Biesheuvel
2019-05-14 2:08 ` [PATCH 1/2] Platform/BeagleBoard: Use ReportStatusCodeLib " Wu, Hao A
2019-05-14 2:09 ` [edk2-devel] " Wu, Hao A
2019-05-14 15:13 ` Leif Lindholm
2019-05-15 0:30 ` [edk2-devel] " Wu, Hao A
2019-05-14 2:08 ` [PATCH 2/2] Platform/BeagleBoard: Drop the consume of PcdShellFile Wu, Hao A
2019-05-14 2:09 ` [edk2-devel] " Wu, Hao A
2019-05-14 15:13 ` Leif Lindholm
2019-05-17 15:25 ` Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 02/16] Platform/BeagleBoard: Use ReportStatusCodeLib in MdeModulePkg Wu, Hao A
2019-05-15 19:44 ` [edk2-devel] " Leif Lindholm
2019-05-17 15:24 ` Ard Biesheuvel
2019-05-17 16:02 ` Leif Lindholm
2019-05-17 16:05 ` Ard Biesheuvel
2019-05-17 16:11 ` Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 03/16] Platform/BeagleBoard: Drop the consume of PcdShellFile Wu, Hao A
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 04/16] Hisilicon/D0x: Use Lzma decompress lib in MdeModulePkg Wu, Hao A
2019-05-17 15:26 ` [edk2-devel] " Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 05/16] Hisilicon/D0x: Drop the consume of GenericBdsLib & PlatformBdsLib Wu, Hao A
2019-05-17 15:27 ` [edk2-devel] " Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 06/16] Hisilicon/D0x: Use StatusCode Router & Handler in MdeModulePkg Wu, Hao A
2019-05-15 19:47 ` Leif Lindholm
2019-05-17 15:33 ` Ard Biesheuvel
2019-05-20 8:49 ` [edk2-devel] " Wu, Hao A
2019-05-22 3:27 ` Ni, Ray
2019-05-27 12:11 ` ming.huang
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 07/16] Hisilicon/D06: Drop the consume of PcdShellFile Wu, Hao A
2019-05-17 15:34 ` Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 08/16] Silicon/Hisilicon: Use Lzma decompress lib in MdeModulePkg Wu, Hao A
2019-05-17 15:37 ` Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 09/16] Silicon/Hisilicon: Use ReportStatusCodeLib (DXE) " Wu, Hao A
2019-05-15 19:48 ` [edk2-devel] " Leif Lindholm
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 10/16] Silicon/Hisilicon: Use DebugLib (DXE_RUNTIME_DRIVER) " Wu, Hao A
2019-05-17 15:41 ` Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 11/16] Silicon/Hisilicon/Smbios: Drop IntelFramework[Module]Pkg dependency Wu, Hao A
2019-05-17 15:43 ` Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 12/16] Silicon/Hisilicon/PlatformIntelBdsLib: Remove Hisilicon PlatformBdsLib Wu, Hao A
2019-05-17 15:43 ` Ard Biesheuvel [this message]
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 13/16] Platform/LeMaker: Use Lzma decompress lib in MdeModulePkg Wu, Hao A
2019-05-17 15:44 ` Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 14/16] Platform/LeMaker: Use ReportStatusCodeLib " Wu, Hao A
2019-05-15 19:51 ` Leif Lindholm
2019-05-17 15:45 ` Ard Biesheuvel
2019-05-17 16:04 ` Leif Lindholm
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 15/16] Platform/SoftIron: Use Lzma decompress lib " Wu, Hao A
2019-05-17 15:45 ` Ard Biesheuvel
2019-05-14 2:08 ` [edk2-platforms][PATCH v1 16/16] Platform/SoftIron: Use ReportStatusCodeLib " Wu, Hao A
2019-05-17 15:46 ` Ard Biesheuvel
2019-05-17 16:04 ` Leif Lindholm
2019-05-14 2:10 ` [edk2-devel] [edk2-platforms][PATCH v1 00/16] Drop IntelFramework[Module]Pkg dependency Wu, Hao A
2019-05-15 20:01 ` Leif Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAKv+Gu8nBff1sDu0z7Bk+SLiyPfc0Hpi5=R3+TqDycrp05yH9w@mail.gmail.com' \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox