From: oliviermartin Date: Mon, 28 Jan 2013 11:44:50 +0000 (+0000) Subject: ArmPlatformPkg/Bds/BootMenu.c: Set "Fdt" UEFI variable as local X-Git-Tag: edk2-stable201903~12740 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=aeaf64d64da4242a93ba36f1b290da4e5e1129a3 ArmPlatformPkg/Bds/BootMenu.c: Set "Fdt" UEFI variable as local "Fdt" UEFI variable is not a global variable as defined by UEFI specification. Signed-off-by: Olivier Martin git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14104 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/ArmPlatformPkg/Bds/Bds.inf b/ArmPlatformPkg/Bds/Bds.inf index 5027041211..5faa4b2ee7 100644 --- a/ArmPlatformPkg/Bds/Bds.inf +++ b/ArmPlatformPkg/Bds/Bds.inf @@ -1,24 +1,24 @@ #/** @file -# +# # Component description file for Bds module -# -# Copyright (c) 2011-2012, ARM Ltd. All rights reserved.
+# +# Copyright (c) 2011-2013, ARM Ltd. All rights reserved.
# # 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 = ArmPlatformBds - FILE_GUID = 5a50aa81-c3ae-4608-a0e3-41a2e69baf94 + FILE_GUID = 5a50aa81-c3ae-4608-a0e3-41a2e69baf94 MODULE_TYPE = DXE_DRIVER VERSION_STRING = 1.0 @@ -47,10 +47,11 @@ DebugLib PrintLib BaseLib - + [Guids] gEfiFileSystemInfoGuid - + gArmGlobalVariableGuid + [Protocols] gEfiBdsArchProtocolGuid gEfiBlockIoProtocolGuid @@ -70,6 +71,6 @@ gArmPlatformTokenSpaceGuid.PcdPlatformBootTimeOut gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths - + [Depex] TRUE diff --git a/ArmPlatformPkg/Bds/BootMenu.c b/ArmPlatformPkg/Bds/BootMenu.c index c2b91b8bad..12463194d0 100644 --- a/ArmPlatformPkg/Bds/BootMenu.c +++ b/ArmPlatformPkg/Bds/BootMenu.c @@ -1,6 +1,6 @@ /** @file * -* Copyright (c) 2011-2012, ARM Limited. All rights reserved. +* Copyright (c) 2011-2013, ARM Limited. All rights reserved. * * This program and the accompanying materials * are licensed and made available under the terms and conditions of the BSD License @@ -14,9 +14,12 @@ #include "BdsInternal.h" +#include + extern EFI_HANDLE mImageHandle; extern BDS_LOAD_OPTION_SUPPORT *BdsLoadOptionSupportList; + EFI_STATUS SelectBootDevice ( OUT BDS_SUPPORTED_DEVICE** SupportedBootDevice @@ -102,7 +105,7 @@ SelectBootDevice ( } Index++; } - + EXIT: BootDeviceListSupportedFree (&SupportedDeviceList, *SupportedBootDevice); return Status; @@ -185,7 +188,7 @@ BootMenuAddBootOption ( InitrdSize = GetDevicePathSize (InitrdPath); BootArguments = (ARM_BDS_LOADER_ARGUMENTS*)AllocatePool (sizeof(ARM_BDS_LOADER_ARGUMENTS) + CmdLineSize + InitrdSize); - + BootArguments->LinuxArguments.CmdLineSize = CmdLineSize; BootArguments->LinuxArguments.InitrdSize = InitrdSize; CopyMem ((VOID*)(&BootArguments->LinuxArguments + 1), CmdLine, CmdLineSize); @@ -211,7 +214,7 @@ BootMenuAddBootOption ( FREE_DEVICE_PATH: FreePool (DevicePath); - + EXIT: if (Status == EFI_ABORTED) { Print(L"\n"); @@ -439,7 +442,7 @@ BootMenuUpdateBootOption ( InitrdSize = 0; } - Print(L"Arguments to pass to the binary: "); + Print(L"Arguments to pass to the binary: "); if (CmdLineSize > 0) { AsciiStrnCpy(CmdLine, (CONST CHAR8*)(LinuxArguments + 1), CmdLineSize); } else { @@ -511,10 +514,22 @@ UpdateFdtPath ( // Append the Device Path node to the select device path FdtDevicePath = AppendDevicePathNode (SupportedBootDevice->DevicePathProtocol, FdtDevicePathNode); FdtDevicePathSize = GetDevicePathSize (FdtDevicePath); - Status = gRT->SetVariable ((CHAR16*)L"Fdt", &gEfiGlobalVariableGuid, (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS ), FdtDevicePathSize, FdtDevicePath); + Status = gRT->SetVariable ( + (CHAR16*)L"Fdt", + &gArmGlobalVariableGuid, + EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, + FdtDevicePathSize, + FdtDevicePath + ); ASSERT_EFI_ERROR(Status); } else { - gRT->SetVariable ((CHAR16*)L"Fdt", &gEfiGlobalVariableGuid, (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS ), 0, NULL); + gRT->SetVariable ( + (CHAR16*)L"Fdt", + &gArmGlobalVariableGuid, + EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, + 0, + NULL + ); ASSERT_EFI_ERROR(Status); }