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