On 28 July 2015 at 19:10, Ryan Harkin ryan.harkin@linaro.org wrote:
Move the initrd to an address greater than the 128MiB boundary as requested in the kernel recommendation.
We do this by reusing LINX_FDT_MAX_OFFSET, which is above the 128MiB boundary.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org
ArmPkg/Application/LinuxLoader/AArch64/LinuxStarter.c | 2 +- ArmPkg/Application/LinuxLoader/Arm/LinuxStarter.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/ArmPkg/Application/LinuxLoader/AArch64/LinuxStarter.c b/ArmPkg/Application/LinuxLoader/AArch64/LinuxStarter.c index da4a79d..e72537f 100644 --- a/ArmPkg/Application/LinuxLoader/AArch64/LinuxStarter.c +++ b/ArmPkg/Application/LinuxLoader/AArch64/LinuxStarter.c @@ -248,7 +248,7 @@ BootLinuxFdt ( }
if (InitrdDevicePath) {
- InitrdImageBase = LINUX_KERNEL_MAX_OFFSET;
- InitrdImageBase = LINUX_FDT_MAX_OFFSET; Status = BdsLoadImage (InitrdDevicePath, AllocateMaxAddress, &InitrdImageBase, &InitrdImageBaseSize); if (Status == EFI_OUT_OF_RESOURCES) { Status = BdsLoadImage (InitrdDevicePath, AllocateAnyPages, &InitrdImageBase, &InitrdImageBaseSize);
arm64 has no such requirement, but since it can support the same logic we apply in the 32-bit case, I still think it is the preferred strategy.
Reviewed-by: Ard Biesheuvel ard.biesheuvel@linaro.org
diff --git a/ArmPkg/Application/LinuxLoader/Arm/LinuxStarter.c b/ArmPkg/Application/LinuxLoader/Arm/LinuxStarter.c index 34185b8..ca6331a 100644 --- a/ArmPkg/Application/LinuxLoader/Arm/LinuxStarter.c +++ b/ArmPkg/Application/LinuxLoader/Arm/LinuxStarter.c @@ -192,7 +192,7 @@ BootLinuxAtag (
if (InitrdDevicePath) { // Load the initrd near to the Linux kernel
- InitrdImageBase = LINUX_KERNEL_MAX_OFFSET;
- InitrdImageBase = LINUX_FDT_MAX_OFFSET; Status = BdsLoadImage (InitrdDevicePath, AllocateMaxAddress, &InitrdImageBase, &InitrdImageBaseSize); if (Status == EFI_OUT_OF_RESOURCES) { Status = BdsLoadImage (InitrdDevicePath, AllocateAnyPages, &InitrdImageBase, &InitrdImageBaseSize);
@@ -280,7 +280,7 @@ BootLinuxFdt ( }
if (InitrdDevicePath) {
- InitrdImageBase = LINUX_KERNEL_MAX_OFFSET;
- InitrdImageBase = LINUX_FDT_MAX_OFFSET; Status = BdsLoadImage (InitrdDevicePath, AllocateMaxAddress, &InitrdImageBase, &InitrdImageBaseSize); if (Status == EFI_OUT_OF_RESOURCES) { Status = BdsLoadImage (InitrdDevicePath, AllocateAnyPages, &InitrdImageBase, &InitrdImageBaseSize);
-- 2.1.0