From c357fd6a1f79e2d7b0a1bd01994b8d33925bfff5 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Fri, 10 Jan 2014 11:27:31 +0000 Subject: ArmPkg/ArmPkg.dec: Redefined PcdSystemMemory(Base|Size) as UINT64 The System Memory region might be out of the 32-bit memory space. This change has been validated on the FVP AArch64 model using 4GB of DRAM at 0x8_0000_0000: - # System Memory (2GB) - gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000 - gArmTokenSpaceGuid.PcdSystemMemorySize|0x80000000 + # System Memory (4GB) + gArmTokenSpaceGuid.PcdSystemMemoryBase|0x800000000 + gArmTokenSpaceGuid.PcdSystemMemorySize|0x100000000 EFI Shell and Linux kernel boot successfully. Note: This change has not been validated on AArch32. I expect some early assembly code to not work. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15093 6f19259b-4bc3-4df7-8a09-765794883524 --- ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c | 2 +- ArmPkg/Library/BdsLib/BdsLinuxLoader.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'ArmPkg/Library/BdsLib') diff --git a/ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c b/ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c index 887058bafe..19177c8e4e 100644 --- a/ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c +++ b/ArmPkg/Library/BdsLib/AArch64/BdsLinuxLoader.c @@ -223,7 +223,7 @@ BdsBootLinuxFdt ( // Try to put the kernel at the start of RAM so as to give it access to all memory. // If that fails fall back to try loading it within LINUX_KERNEL_MAX_OFFSET of memory start. - LinuxImage = PcdGet32(PcdSystemMemoryBase) + 0x80000; + LinuxImage = PcdGet64 (PcdSystemMemoryBase) + 0x80000; Status = BdsLoadImage (LinuxKernelDevicePath, AllocateAddress, &LinuxImage, &LinuxImageSize); if (EFI_ERROR(Status)) { // Try again but give the loader more freedom of where to put the image. diff --git a/ArmPkg/Library/BdsLib/BdsLinuxLoader.h b/ArmPkg/Library/BdsLib/BdsLinuxLoader.h index 09b212f364..8949cfa981 100644 --- a/ArmPkg/Library/BdsLib/BdsLinuxLoader.h +++ b/ArmPkg/Library/BdsLib/BdsLinuxLoader.h @@ -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 @@ -16,9 +16,9 @@ #define __BDSLINUXLOADER_H #define LINUX_UIMAGE_SIGNATURE 0x56190527 -#define LINUX_KERNEL_MAX_OFFSET (PcdGet32(PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxKernelMaxOffset)) -#define LINUX_ATAG_MAX_OFFSET (PcdGet32(PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxAtagMaxOffset)) -#define LINUX_FDT_MAX_OFFSET (PcdGet32(PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxFdtMaxOffset)) +#define LINUX_KERNEL_MAX_OFFSET (PcdGet64 (PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxKernelMaxOffset)) +#define LINUX_ATAG_MAX_OFFSET (PcdGet64 (PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxAtagMaxOffset)) +#define LINUX_FDT_MAX_OFFSET (PcdGet64 (PcdSystemMemoryBase) + PcdGet32(PcdArmLinuxFdtMaxOffset)) // Additional size that could be used for FDT entries added by the UEFI OS Loader // Estimation based on: EDID (300bytes) + bootargs (200bytes) + initrd region (20bytes) -- cgit v1.2.3