>From BDS side, there is no feature gap.
>From the UI/Firmware Setup side, the standalone UI/Firmware Setup (provided by 
>MdeModulePkg/Application/BootManagerMenuApp) only lists all boot options. So 
>there is feature gap. We need to develop a feature equivalent UI/Firmware 
>Setup.
Sure I will provide a V2 patch to separate the library and DSC/FDF change, with 
subject prefix fixed.

Thanks,
Ray
-----Original Message-----
From: Justen, Jordan L 
Sent: Saturday, May 9, 2015 3:38 AM
To: edk2-devel@lists.sourceforge.net; Ni, Ruiyu
Subject: Re: [edk2] [Patch] Nt32Pkg: Enable new BDS in NT32 platform.

Are you using 'git format-patch --subject-prefix=Patch'? If you leave
off --subject-prefix, then the default is PATCH. You should only need
subject prefix for special cases, like "RFC" or "PATCH v2".

Why not just migrate to the new BDS entirely? Or, why not make it the
default? What feature gaps are there from the old BDS?

How about adding the library in a separate commit from the DSC/FDF
changes?

-Jordan

On 2015-05-08 03:15:43, Ruiyu Ni wrote:
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ruiyu Ni <ruiyu...@intel.com>
> CC: Eric Dong <eric.d...@intel.com>
> ---
>  .../PlatformBootManagerLib/PlatformBootManager.c   | 220 
> +++++++++++++++++++++
>  .../PlatformBootManagerLib/PlatformBootManager.h   |  78 ++++++++
>  .../PlatformBootManagerLib.inf                     |  52 +++++
>  .../Library/PlatformBootManagerLib/PlatformData.c  | 158 +++++++++++++++
>  Nt32Pkg/Nt32Pkg.dsc                                |  13 +-
>  Nt32Pkg/Nt32Pkg.fdf                                |   8 +-
>  6 files changed, 526 insertions(+), 3 deletions(-)
>  create mode 100644 
> Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c
>  create mode 100644 
> Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h
>  create mode 100644 
> Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>  create mode 100644 Nt32Pkg/Library/PlatformBootManagerLib/PlatformData.c
> 
> diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c 
> b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c
> new file mode 100644
> index 0000000..60d0126
> --- /dev/null
> +++ b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c
> @@ -0,0 +1,220 @@
> +/** @file
> +  This file include all platform action which can be customized
> +  by IBV/OEM.
> +
> +Copyright (c) 2015, Intel Corporation. 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.
> +
> +**/
> +
> +#include "PlatformBootManager.h"
> +
> +
> +EFI_GUID mUefiShellFileGuid = { 0x7C04A583, 0x9E3E, 0x4f1c, 0xAD, 0x65, 
> 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 };
> +
> +/**
> +  Return the index of the load option in the load option array.
> +
> +  The function consider two load options are equal when the 
> +  OptionType, Attributes, Description, FilePath and OptionalData are equal.
> +
> +  @param Key    Pointer to the load option to be found.
> +  @param Array  Pointer to the array of load options to be found.
> +  @param Count  Number of entries in the Array.
> +
> +  @retval -1          Key wasn't found in the Array.
> +  @retval 0 ~ Count-1 The index of the Key in the Array.
> +**/
> +INTN
> +PlatformFindLoadOption (
> +  IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Key,
> +  IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Array,
> +  IN UINTN                              Count
> +  )
> +{
> +  UINTN                             Index;
> +
> +  for (Index = 0; Index < Count; Index++) {
> +    if ((Key->OptionType == Array[Index].OptionType) &&
> +        (Key->Attributes == Array[Index].Attributes) &&
> +        (StrCmp (Key->Description, Array[Index].Description) == 0) &&
> +        (CompareMem (Key->FilePath, Array[Index].FilePath, GetDevicePathSize 
> (Key->FilePath)) == 0) &&
> +        (Key->OptionalDataSize == Array[Index].OptionalDataSize) &&
> +        (CompareMem (Key->OptionalData, Array[Index].OptionalData, 
> Key->OptionalDataSize) == 0)) {
> +      return (INTN) Index;
> +    }
> +  }
> +
> +  return -1;
> +}
> +
> +VOID
> +PlatformRegisterFvBootOption (
> +  EFI_GUID                         *FileGuid,
> +  CHAR16                           *Description,
> +  UINT32                           Attributes
> +  )
> +{
> +  EFI_STATUS                        Status;
> +  UINTN                             OptionIndex;
> +  EFI_BOOT_MANAGER_LOAD_OPTION      NewOption;
> +  EFI_BOOT_MANAGER_LOAD_OPTION      *BootOptions;
> +  UINTN                             BootOptionCount;
> +  MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FileNode;
> +  EFI_LOADED_IMAGE_PROTOCOL         *LoadedImage;
> +  EFI_DEVICE_PATH_PROTOCOL          *DevicePath;
> +
> +  Status = gBS->HandleProtocol (gImageHandle, &gEfiLoadedImageProtocolGuid, 
> (VOID **) &LoadedImage);
> +  ASSERT_EFI_ERROR (Status);
> +
> +  EfiInitializeFwVolDevicepathNode (&FileNode, FileGuid);
> +  DevicePath = AppendDevicePathNode (
> +                 DevicePathFromHandle (LoadedImage->DeviceHandle),
> +                 (EFI_DEVICE_PATH_PROTOCOL *) &FileNode
> +                 );
> +
> +  Status = EfiBootManagerInitializeLoadOption (
> +             &NewOption,
> +             LoadOptionNumberUnassigned,
> +             LoadOptionTypeBoot,
> +             Attributes,
> +             Description,
> +             DevicePath,
> +             NULL,
> +             0
> +             );
> +  if (!EFI_ERROR (Status)) {
> +    BootOptions = EfiBootManagerGetLoadOptions (&BootOptionCount, 
> LoadOptionTypeBoot);
> +
> +    OptionIndex = PlatformFindLoadOption (&NewOption, BootOptions, 
> BootOptionCount);
> +
> +    if (OptionIndex == -1) {
> +      Status = EfiBootManagerAddLoadOptionVariable (&NewOption, (UINTN) -1);
> +      ASSERT_EFI_ERROR (Status);
> +    }
> +    EfiBootManagerFreeLoadOption (&NewOption);
> +    EfiBootManagerFreeLoadOptions (BootOptions, BootOptionCount);
> +  }
> +}
> +
> +/**
> +  Do the platform specific action before the console is connected.
> +
> +  Such as:
> +    Update console variable;
> +    Register new Driver#### or Boot####;
> +    Signal ReadyToLock event.
> +**/
> +VOID
> +EFIAPI
> +PlatformBootManagerBeforeConsole (
> +  VOID
> +  )
> +{
> +  UINTN                        Index;
> +  EFI_STATUS                   Status;
> +  WIN_NT_SYSTEM_CONFIGURATION  *Configuration;
> +  EFI_INPUT_KEY                Enter;
> +  EFI_INPUT_KEY                F2;
> +  EFI_BOOT_MANAGER_LOAD_OPTION BootOption;
> +
> +  GetVariable2 (L"Setup", &gEfiWinNtSystemConfigGuid, (VOID **) 
> &Configuration, NULL);
> +  if (Configuration != NULL) {
> +    //
> +    // SetupVariable is corrupt
> +    //
> +    Configuration->ConOutRow = PcdGet32 (PcdConOutColumn);
> +    Configuration->ConOutColumn = PcdGet32 (PcdConOutRow);
> +
> +    Status = gRT->SetVariable (
> +                    L"Setup",
> +                    &gEfiWinNtSystemConfigGuid,
> +                    EFI_VARIABLE_NON_VOLATILE | 
> EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
> +                    sizeof (WIN_NT_SYSTEM_CONFIGURATION),
> +                    Configuration
> +                    );
> +    if (EFI_ERROR (Status)) {
> +      DEBUG ((EFI_D_ERROR, "Failed to save Setup Variable to non-volatile 
> storage, Status = %r\n", Status));
> +    }
> +    FreePool (Configuration);
> +  }
> +
> +  //
> +  // Update the ocnsole variables.
> +  //
> +  for (Index = 0; gPlatformConsole[Index].DevicePath != NULL; Index++) {
> +    if ((gPlatformConsole[Index].ConnectType & CONSOLE_IN) == CONSOLE_IN) {
> +      EfiBootManagerUpdateConsoleVariable (ConIn, 
> gPlatformConsole[Index].DevicePath, NULL);
> +    }
> +
> +    if ((gPlatformConsole[Index].ConnectType & CONSOLE_OUT) == CONSOLE_OUT) {
> +      EfiBootManagerUpdateConsoleVariable (ConOut, 
> gPlatformConsole[Index].DevicePath, NULL);
> +    }
> +
> +    if ((gPlatformConsole[Index].ConnectType & STD_ERROR) == STD_ERROR) {
> +      EfiBootManagerUpdateConsoleVariable (ErrOut, 
> gPlatformConsole[Index].DevicePath, NULL);
> +    }
> +  }
> +
> +  //
> +  // Register ENTER as CONTINUE key
> +  //
> +  Enter.ScanCode    = SCAN_NULL;
> +  Enter.UnicodeChar = CHAR_CARRIAGE_RETURN;
> +  EfiBootManagerRegisterContinueKeyOption (0, &Enter, NULL);
> +  //
> +  // Map F2 to Boot Manager Menu
> +  //
> +  F2.ScanCode    = SCAN_F2;
> +  F2.UnicodeChar = CHAR_NULL;
> +  EfiBootManagerGetBootManagerMenu (&BootOption);
> +  EfiBootManagerAddKeyOptionVariable (NULL, (UINT16) 
> BootOption.OptionNumber, 0, &F2, NULL);
> +  //
> +  // Register UEFI Shell
> +  //
> +  PlatformRegisterFvBootOption (&mUefiShellFileGuid, L"UEFI Shell", 
> LOAD_OPTION_ACTIVE);
> +}
> +
> +/**
> +  Do the platform specific action after the console is connected.
> +
> +  Such as:
> +    Dynamically switch output mode;
> +    Signal console ready platform customized event;
> +    Run diagnostics like memory testing;
> +    Connect certain devices;
> +    Dispatch aditional option roms.
> +**/
> +VOID
> +EFIAPI
> +PlatformBootManagerAfterConsole (
> +  VOID
> +  )
> +{
> +  Print (
> +    L"\n"
> +    L"F2    to enter Boot Manager Menu.\n"
> +    L"Enter to boot directly.\n"
> +    L"\n"
> +    );
> +}
> +
> +/**
> +  This function is called each second during the boot manager waits the 
> timeout.
> +
> +  @param TimeoutRemain  The remaining timeout.
> +**/
> +VOID
> +EFIAPI
> +PlatformBootManagerWaitCallback (
> +  UINT16          TimeoutRemain
> +  )
> +{
> +  Print (L"\r%-2d seconds remained...", TimeoutRemain);
> +}
> diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h 
> b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h
> new file mode 100644
> index 0000000..6ab7d9f
> --- /dev/null
> +++ b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.h
> @@ -0,0 +1,78 @@
> +/**@file
> +   Head file for BDS Platform specific code
> +
> +Copyright (c) 2015, Intel Corporation. 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.             
> +**/
> +
> +#ifndef _PLATFORM_BOOT_MANAGER_H
> +#define _PLATFORM_BOOT_MANAGER_H
> +
> +#include <PiDxe.h>
> +
> +#include <Guid/WinNtSystemConfig.h>
> +#include <Protocol/WinNtThunk.h>
> +#include <Protocol/WinNtIo.h>
> +#include <Protocol/LoadedImage.h>
> +
> +#include <Library/DebugLib.h>
> +#include <Library/BaseMemoryLib.h>
> +#include <Library/UefiBootServicesTableLib.h>
> +#include <Library/UefiRuntimeServicesTableLib.h>
> +#include <Library/MemoryAllocationLib.h>
> +#include <Library/BaseLib.h>
> +#include <Library/UefiRuntimeServicesTableLib.h>
> +#include <Library/UefiLib.h>
> +#include <Library/UefiBootManagerLib.h>
> +#include <Library/PcdLib.h>
> +#include <Library/DevicePathLib.h>
> +
> +
> +typedef struct {
> +  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;
> +  UINTN                     ConnectType;
> +} PLATFORM_CONSOLE_CONNECT_ENTRY;
> +
> +extern PLATFORM_CONSOLE_CONNECT_ENTRY  gPlatformConsole[];
> +
> +#define gEndEntire \
> +  { \
> +    END_DEVICE_PATH_TYPE,\
> +    END_ENTIRE_DEVICE_PATH_SUBTYPE,\
> +    END_DEVICE_PATH_LENGTH,\
> +    0\
> +  }
> +
> +#define CONSOLE_OUT BIT0
> +#define CONSOLE_IN  BIT1
> +#define STD_ERROR   BIT2
> +
> +typedef struct {
> +  VENDOR_DEVICE_PATH  VendorDevicePath;
> +  UINT32              Instance;
> +} WIN_NT_VENDOR_DEVICE_PATH_NODE;
> +
> +//
> +// Below is the platform console device path
> +//
> +typedef struct {
> +  VENDOR_DEVICE_PATH              NtBus;
> +  WIN_NT_VENDOR_DEVICE_PATH_NODE  SerialDevice;
> +  UART_DEVICE_PATH                Uart;
> +  VENDOR_DEVICE_PATH              TerminalType;
> +  EFI_DEVICE_PATH_PROTOCOL        End;
> +} NT_ISA_SERIAL_DEVICE_PATH;
> +
> +typedef struct {
> +  VENDOR_DEVICE_PATH              NtBus;
> +  WIN_NT_VENDOR_DEVICE_PATH_NODE  NtGopDevice;
> +  EFI_DEVICE_PATH_PROTOCOL        End;
> +} NT_PLATFORM_GOP_DEVICE_PATH;
> +
> +#endif // _PLATFORM_BOOT_MANAGER_H
> diff --git 
> a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf 
> b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> new file mode 100644
> index 0000000..7754619
> --- /dev/null
> +++ b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
> @@ -0,0 +1,52 @@
> +## @file
> +#  Include all platform action which can be customized by IBV/OEM.
> +#
> +#  Copyright (c) 2012 - 2015, Intel Corporation. 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.
> +#
> +##
> +
> +[Defines]
> +  INF_VERSION                    = 0x00010005
> +  BASE_NAME                      = PlatformBootManagerLib
> +  FILE_GUID                      = 95C097CC-8943-4038-BB8A-1C70CF2E9F3C
> +  MODULE_TYPE                    = DXE_DRIVER
> +  VERSION_STRING                 = 1.0
> +  LIBRARY_CLASS                  = PlatformBootManagerLib|DXE_DRIVER
> +
> +
> +#
> +# The following information is for reference only and not required by the 
> build tools.
> +#
> +#  VALID_ARCHITECTURES           = IA32 X64 EBC
> +#
> +
> +[Sources]
> +  PlatformData.c
> +  PlatformBootManager.c
> +  PlatformBootManager.h
> +
> +[Packages]
> +  MdePkg/MdePkg.dec
> +  MdeModulePkg/MdeModulePkg.dec
> +  Nt32Pkg/Nt32Pkg.dec
> +
> +[LibraryClasses]
> +  BaseLib
> +  UefiRuntimeServicesTableLib
> +  UefiLib
> +  UefiBootManagerLib
> +  PcdLib
> +
> +[Guids]
> +  gEfiWinNtSystemConfigGuid
> +
> +[Pcd]
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutRow
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn
> diff --git a/Nt32Pkg/Library/PlatformBootManagerLib/PlatformData.c 
> b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformData.c
> new file mode 100644
> index 0000000..e92f377
> --- /dev/null
> +++ b/Nt32Pkg/Library/PlatformBootManagerLib/PlatformData.c
> @@ -0,0 +1,158 @@
> +/**@file
> +  Defined the platform specific device path which will be filled to
> +  ConIn/ConOut variables.
> +   
> +Copyright (c) 2015, Intel Corporation. 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.             
> +**/
> +
> +#include "PlatformBootManager.h"
> +
> +//
> +// Platform specific keyboard device path
> +//
> +NT_PLATFORM_GOP_DEVICE_PATH gGopDevicePath0 = {
> +  {
> +    HARDWARE_DEVICE_PATH,
> +    HW_VENDOR_DP,
> +    (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
> +    (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
> +    EFI_WIN_NT_THUNK_PROTOCOL_GUID
> +  },
> +  {
> +    HARDWARE_DEVICE_PATH,
> +    HW_VENDOR_DP,
> +    (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)),
> +    (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8),
> +    EFI_WIN_NT_GOP_GUID,
> +    0
> +  },
> +  gEndEntire
> +};
> +
> +NT_PLATFORM_GOP_DEVICE_PATH gGopDevicePath1 = {
> +  {
> +    HARDWARE_DEVICE_PATH,
> +    HW_VENDOR_DP,
> +    (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
> +    (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
> +    EFI_WIN_NT_THUNK_PROTOCOL_GUID
> +  },
> +  {
> +    HARDWARE_DEVICE_PATH,
> +    HW_VENDOR_DP,
> +    (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)),
> +    (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8),
> +    EFI_WIN_NT_GOP_GUID,
> +    1
> +  },
> +  gEndEntire
> +};
> +
> +//
> +// Platform specific serial device path
> +//
> +NT_ISA_SERIAL_DEVICE_PATH   gNtSerialDevicePath0 = {
> +  {
> +    HARDWARE_DEVICE_PATH,
> +    HW_VENDOR_DP,
> +    (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
> +    (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
> +    EFI_WIN_NT_THUNK_PROTOCOL_GUID
> +  },
> +  {
> +    HARDWARE_DEVICE_PATH,
> +    HW_VENDOR_DP,
> +    (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)),
> +    (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8),
> +    EFI_WIN_NT_SERIAL_PORT_GUID
> +  },
> +  {
> +    MESSAGING_DEVICE_PATH,
> +    MSG_UART_DP,
> +    (UINT8) (sizeof (UART_DEVICE_PATH)),
> +    (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8),
> +    0,
> +    115200,
> +    8,
> +    1,
> +    1
> +  },
> +  {
> +    MESSAGING_DEVICE_PATH,
> +    MSG_VENDOR_DP,
> +    (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
> +    (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
> +    DEVICE_PATH_MESSAGING_PC_ANSI
> +  },
> +  gEndEntire
> +};
> +
> +NT_ISA_SERIAL_DEVICE_PATH   gNtSerialDevicePath1 = {
> +  {
> +    HARDWARE_DEVICE_PATH,
> +    HW_VENDOR_DP,
> +    (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
> +    (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
> +    EFI_WIN_NT_THUNK_PROTOCOL_GUID
> +  },
> +  {
> +    HARDWARE_DEVICE_PATH,
> +    HW_VENDOR_DP,
> +    (UINT8) (sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)),
> +    (UINT8) ((sizeof (WIN_NT_VENDOR_DEVICE_PATH_NODE)) >> 8),
> +    EFI_WIN_NT_SERIAL_PORT_GUID,
> +    1
> +  },
> +  {
> +    MESSAGING_DEVICE_PATH,
> +    MSG_UART_DP,
> +    (UINT8) (sizeof (UART_DEVICE_PATH)),
> +    (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8),
> +    0,
> +    115200,
> +    8,
> +    1,
> +    1
> +  },
> +  {
> +    MESSAGING_DEVICE_PATH,
> +    MSG_VENDOR_DP,
> +    (UINT8) (sizeof (VENDOR_DEVICE_PATH)),
> +    (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8),
> +    DEVICE_PATH_MESSAGING_PC_ANSI
> +  },
> +  gEndEntire
> +};
> +
> +//
> +// Predefined platform default console device path
> +//
> +PLATFORM_CONSOLE_CONNECT_ENTRY   gPlatformConsole[] = {
> +  {
> +    (EFI_DEVICE_PATH_PROTOCOL *) &gNtSerialDevicePath0,
> +    (CONSOLE_OUT | CONSOLE_IN)
> +  },
> +  {
> +    (EFI_DEVICE_PATH_PROTOCOL *) &gNtSerialDevicePath1,
> +    (CONSOLE_OUT | CONSOLE_IN)
> +  },
> +  {
> +    (EFI_DEVICE_PATH_PROTOCOL *) &gGopDevicePath0,
> +    (CONSOLE_OUT | CONSOLE_IN)
> +  },
> +  {
> +    (EFI_DEVICE_PATH_PROTOCOL *) &gGopDevicePath1,
> +    (CONSOLE_OUT | CONSOLE_IN)
> +  },
> +  {
> +    NULL,
> +    0
> +  }
> +};
> diff --git a/Nt32Pkg/Nt32Pkg.dsc b/Nt32Pkg/Nt32Pkg.dsc
> index 1b7d329..b0d3fbf 100644
> --- a/Nt32Pkg/Nt32Pkg.dsc
> +++ b/Nt32Pkg/Nt32Pkg.dsc
> @@ -5,7 +5,7 @@
>  #    a real platform. This also provides an example for how an DSC is 
> created.
>  #
>  # Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>
> -# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
>  #
>  #    This program and the accompanying materials
>  #    are licensed and made available under the terms and conditions of the 
> BSD License
> @@ -82,6 +82,7 @@
>    
> CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
>    PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
>    
> PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
> +  SortLib|MdeModulePkg/Library/BaseSortLib/BaseSortLib.inf
>    #
>    # UEFI & PI
>    #
> @@ -97,6 +98,7 @@
>    PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
>    DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
>    
> DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
> +  
> UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
>    
>    #
>    # Generic Modules
> @@ -118,6 +120,7 @@
>    # Platform
>    #
>    PlatformBdsLib|Nt32Pkg/Library/Nt32BdsLib/Nt32BdsLib.inf
> +  
> PlatformBootManagerLib|Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
>    #
>    # Misc
>    #
> @@ -197,7 +200,7 @@
>    PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
>  
>  [LibraryClasses.common.UEFI_APPLICATION]
> -  PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> +  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
>    
> PrintLib|MdeModulePkg/Library/DxePrintLibPrint2Protocol/DxePrintLibPrint2Protocol.inf
>    
>  [LibraryClasses.common.DXE_RUNTIME_DRIVER]
> @@ -428,7 +431,13 @@
>  
>    MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
>  
> +!if $(USE_NEW_BDS) == TRUE
> +  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
> +  MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
> +  MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
> +!else
>    IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
> +!endif
>    MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
>    MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
>    MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
> diff --git a/Nt32Pkg/Nt32Pkg.fdf b/Nt32Pkg/Nt32Pkg.fdf
> index 7174cdf..1eedb75 100644
> --- a/Nt32Pkg/Nt32Pkg.fdf
> +++ b/Nt32Pkg/Nt32Pkg.fdf
> @@ -1,7 +1,7 @@
>  ## @file
>  # This is NT32 FDF file with UEFI HII features enabled
>  #
> -# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
>  #
>  #    This program and the accompanying materials
>  #    are licensed and made available under the terms and conditions of the 
> BSD License
> @@ -210,7 +210,13 @@ INF  
> MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf
>  INF  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
>  INF  Nt32Pkg/WinNtThunkDxe/WinNtThunkDxe.inf
>  INF  Nt32Pkg/CpuRuntimeDxe/CpuRuntimeDxe.inf
> +!if $(USE_NEW_BDS) == TRUE
> +INF  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
> +INF  MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
> +INF  MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
> +!else
>  INF  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
> +!endif
>  INF  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
>  INF  Nt32Pkg/MiscSubClassPlatformDxe/MiscSubClassPlatformDxe.inf
>  INF  Nt32Pkg/TimerDxe/TimerDxe.inf
> -- 
> 1.9.5.msysgit.1
> 
> 
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud 
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to