X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=ArmPlatformPkg%2FMemoryInitPei%2FMemoryInitPeim.c;h=25baac170c6c087406cb0955bd7208f6d341ec92;hp=3559e08862b3ee7ec64c5ee1a706d69d5687c3a3;hb=984ec7588d569cc35dcbdd3c45a86088c4366eeb;hpb=d269095b712ba45fd4aca55331b5e6f3045ce1ad diff --git a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c index 3559e08862..25baac170c 100755 --- a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c +++ b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.c @@ -1,14 +1,14 @@ /** @file * * Copyright (c) 2011, 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 -* 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. +* 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. * **/ @@ -63,7 +63,7 @@ BuildMemoryTypeInformationHob ( Info[7].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiLoaderCode); Info[8].Type = EfiLoaderData; Info[8].NumberOfPages = PcdGet32 (PcdMemoryTypeEfiLoaderData); - + // Terminator for the list Info[9].Type = EfiMaxMemoryType; Info[9].NumberOfPages = 0; @@ -75,13 +75,13 @@ BuildMemoryTypeInformationHob ( Routine Description: - + Arguments: FileHandle - Handle of the file being invoked. PeiServices - Describes the list of possible PEI Services. - + Returns: Status - EFI_SUCCESS if the boot mode could be set @@ -96,20 +96,12 @@ InitializeMemory ( { EFI_STATUS Status; UINTN SystemMemoryBase; - UINTN SystemMemoryTop; + UINT64 SystemMemoryTop; UINTN FdBase; UINTN FdTop; UINTN UefiMemoryBase; - DEBUG ((EFI_D_ERROR, "Memory Init PEIM Loaded\n")); - - // Ensure PcdSystemMemorySize has been set - ASSERT (FixedPcdGet32 (PcdSystemMemorySize) != 0); - - SystemMemoryBase = (UINTN)FixedPcdGet32 (PcdSystemMemoryBase); - SystemMemoryTop = SystemMemoryBase + (UINTN)FixedPcdGet32 (PcdSystemMemorySize); - FdBase = (UINTN)PcdGet32 (PcdNormalFdBaseAddress); - FdTop = FdBase + (UINTN)PcdGet32 (PcdNormalFdSize); + DEBUG ((EFI_D_LOAD | EFI_D_INFO, "Memory Init PEIM Loaded\n")); // // Initialize the System Memory (DRAM) @@ -119,6 +111,17 @@ InitializeMemory ( ArmPlatformInitializeSystemMemory (); } + // Ensure PcdSystemMemorySize has been set + ASSERT (PcdGet64 (PcdSystemMemorySize) != 0); + + SystemMemoryBase = (UINTN)PcdGet64 (PcdSystemMemoryBase); + SystemMemoryTop = SystemMemoryBase + PcdGet64 (PcdSystemMemorySize); + if (SystemMemoryTop - 1 > MAX_ADDRESS) { + SystemMemoryTop = (UINT64)MAX_ADDRESS + 1; + } + FdBase = (UINTN)PcdGet64 (PcdFdBaseAddress); + FdTop = FdBase + (UINTN)PcdGet32 (PcdFdSize); + // // Declare the UEFI memory to PEI //