summaryrefslogtreecommitdiff
path: root/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
diff options
context:
space:
mode:
Diffstat (limited to 'ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c')
-rw-r--r--ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c b/ArmPlatformPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c
index c82f27fb4..739704727 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);
}