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? 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