On Tue, Sep 01, 2015 at 07:12:33PM +0200, Ard Biesheuvel wrote:
> On 1 September 2015 at 18:59, Leif Lindholm <leif.lindh...@linaro.org> wrote:
> > On Tue, Sep 01, 2015 at 11:58:20AM +0200, Ard Biesheuvel wrote:
> >> The Intel BDS platform library still depends on the ARM BDS specific
> >> BdsLib. So replace its invocations with GenericBdsLib counterparts,
> >> and fix up where needed, so that we can drop the dependency.
> >>
> >> Contributed-under: TianoCore Contribution Agreement 1.0
> >> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
> >> ---
> >>  ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c      | 21 
> >> ++++++++++++++------
> >>  ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.h      |  1 -
> >>  ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf |  1 -
> >>  3 files changed, 15 insertions(+), 8 deletions(-)
> >>
> >> diff --git a/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c 
> >> b/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
> >> index c82f27fb4edd..739704727945 100644
> >> --- a/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
> >> +++ b/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
> >> @@ -63,8 +63,11 @@ GetConsoleDevicePathFromVariable (
> >>    CHAR16*                   NextDevicePathStr;
> >>    EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL  *EfiDevicePathFromTextProtocol;
> >>
> >> -  Status = GetGlobalEnvironmentVariable (ConsoleVarName, NULL, NULL, 
> >> (VOID**)&DevicePathInstances);
> >> -  if (EFI_ERROR(Status)) {
> >> +  Status = EFI_SUCCESS;
> >> +  Size = 0;
> >> +
> >> +  DevicePathInstances = BdsLibGetVariableAndSize (ConsoleVarName, 
> >> &gEfiGlobalVariableGuid, &Size);
> >> +  if (DevicePathInstances == NULL) {
> >>      // In case no default console device path has been defined we assume 
> >> a driver handles the console (eg: SimpleTextInOutSerial)
> >>      if ((DefaultConsolePaths == NULL) || (DefaultConsolePaths[0] == 
> >> L'\0')) {
> >>        *DevicePaths = NULL;
> >> @@ -74,8 +77,6 @@ GetConsoleDevicePathFromVariable (
> >>      Status = gBS->LocateProtocol (&gEfiDevicePathFromTextProtocolGuid, 
> >> NULL, (VOID **)&EfiDevicePathFromTextProtocol);
> >>      ASSERT_EFI_ERROR(Status);
> >>
> >> -    DevicePathInstances = NULL;
> >> -
> >>      // Extract the Device Path instances from the multi-device path string
> >>      while ((DefaultConsolePaths != NULL) && (DefaultConsolePaths[0] != 
> >> L'\0')) {
> >>        NextDevicePathStr = StrStr (DefaultConsolePaths, L";");
> >> @@ -141,7 +142,15 @@ InitializeConsolePipe (
> >>    while (ConsoleDevicePaths != NULL) {
> >>      DevicePath = GetNextDevicePathInstance (&ConsoleDevicePaths, &Size);
> >>
> >> -    Status = BdsConnectDevicePath (DevicePath, Handle, NULL);
> >> +    Status = BdsLibConnectDevicePath (DevicePath);
> >> +    if (!EFI_ERROR (Status)) {
> >> +      //
> >> +      // If BdsLibConnectDevicePath () succeeded, *Handle must have a 
> >> non-NULL
> >> +      // value. So ASSERT that this is the case.
> >> +      //
> >> +      gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &DevicePath, 
> >> Handle);
> >> +      ASSERT (*Handle != NULL);
> >> +    }
> >>      DEBUG_CODE_BEGIN();
> >>        if (EFI_ERROR(Status)) {
> >>          // We convert back to the text representation of the device Path
> >> @@ -171,7 +180,7 @@ InitializeConsolePipe (
> >>    if (*Interface == NULL) {
> >>      Status = gBS->LocateHandleBuffer (ByProtocol, Protocol, NULL, 
> >> &NoHandles, &Buffer);
> >>      if (EFI_ERROR (Status)) {
> >> -      BdsConnectAllDrivers ();
> >> +      BdsLibConnectAll ();
> >>        Status = gBS->LocateHandleBuffer (ByProtocol, Protocol, NULL, 
> >> &NoHandles, &Buffer);
> >>      }
> >>
> >> diff --git a/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.h 
> >> b/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.h
> >> index a244ac913255..7122d58be7d7 100644
> >> --- a/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.h
> >> +++ b/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.h
> >> @@ -19,7 +19,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, 
> >> EITHER EXPRESS OR IMPLIED.
> >>  #include <Protocol/DevicePathToText.h>
> >>
> >>  #include <Library/BaseMemoryLib.h>
> >> -#include <Library/BdsLib.h>
> >>  #include <Library/DebugLib.h>
> >>  #include <Library/DevicePathLib.h>
> >>  #include <Library/UefiBootServicesTableLib.h>
> >> diff --git 
> >> a/ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf 
> >> b/ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
> >> index 07de4cae4824..d47298d01a81 100644
> >> --- a/ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
> >> +++ b/ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
> >> @@ -44,7 +44,6 @@ [Packages]
> >>  [LibraryClasses]
> >>    BaseLib
> >>    BaseMemoryLib
> >> -  BdsLib
> >>    DebugLib
> >>    DevicePathLib
> >>    MemoryAllocationLib
> >> --
> >> 1.9.1
> >
> > So, it's not a big deal, and I think this series is useful enough to
> > go in anyway, but with this patch and ArmBds, I end up with two
> > preconfigured boot menu entries for Shell:
> > ---
> > [1] EFI Misc Device
> > [2] EFI Misc Device 1
> > [3] EFI Misc Device 2
> > [4] EFI Misc Device 3
> > [5] EFI Misc Device 4
> > [6] EFI Internal Shell
> > [7] EFI Misc Device 5
> > [8] Shell
> > [9] Boot Manager
> > Start:
> > ---
> >
> > I think this has now also discarded the default boot entry that used
> > to be on this platform with the ArmBds.
> >
> 
> So that is just the state of the NOR flash after running both the ARM
> and the Intel BDS, right?

Ah, yes, you are correct.
I didn't realise the IntelBds also auto-added the things it already
autodetected on boot.

Apologies - go ahead.

> I don't think we should care about that kind of differentials. Or am I
> not following you?
> 
> > However, if Ryan does not object to that:
> > Reviewed-by: Leif Lindholm <leif.lindh...@linaro.org>
> 
> Thanks
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to