> On Sep 9, 2015, at 7:03 AM, Ard Biesheuvel <[email protected]> wrote: > > On 9 September 2015 at 15:59, Laszlo Ersek <[email protected] > <mailto:[email protected]>> wrote: >> On 09/08/15 19:35, Ard Biesheuvel wrote: >>> When executing on a LPAE capable 32-bit ARM platform, we support >>> up to 40 bits of physical address space so set PcdPrePiCpuMemorySize >>> accordingly. >>> >>> Contributed-under: TianoCore Contribution Agreement 1.0 >>> Signed-off-by: Ard Biesheuvel <[email protected]> >>> --- >>> ArmVirtPkg/ArmVirt.dsc.inc | 3 +++ >>> 1 file changed, 3 insertions(+) >>> >>> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc >>> index b49c1bfb8b04..c1b78be84e74 100644 >>> --- a/ArmVirtPkg/ArmVirt.dsc.inc >>> +++ b/ArmVirtPkg/ArmVirt.dsc.inc >>> @@ -371,6 +371,9 @@ [PcdsFixedAtBuild.common] >>> gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, >>> 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94} >>> !endif >>> >>> +[PcdsFixedAtBuild.ARM] >>> + gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|40 >>> + >>> [Components.common] >>> # >>> # Networking stack >>> >> >> Right, the "ArmPkg/Drivers/CpuPei/CpuPei.inf" builds the CPU HOB based >> on this, and then the DXE core determines the size of the GCD Memory >> Space Map's first (= "all is nonexistent") entry from that. >> > > Indeed. Otherwise, memory above 4 GB just gets ignored, which means > its existence does not get advertised to the OS either. >
It should get advertised to the OS, that is why the memory map is EFI_PHYSICAL_ADDRESS. 32-bit x86 platforms can have a larger physical address space, than virtual. This was how it was done in the past. >> Plus, you probably don't have to care about any size increase in page >> tables that are allocated from the permanent PEI RAM (cf. SVN rev 17719). >> > > The 1:1 mapping only goes to 4 GB, so anything beyond that is never > mapped anyway. > This is the state when you hand off to the OS, but it is possible as part of the boot process to have a driver do some alternate mapping. This was done on x86 servers for a software based memory test for example. Thanks, Andrew Fish >> Reviewed-by: Laszlo Ersek <[email protected] <mailto:[email protected]>> > > Thanks! > _______________________________________________ > edk2-devel mailing list > [email protected] <mailto:[email protected]> > https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.01.org_mailman_listinfo_edk2-2Ddevel&d=BQICAg&c=eEvniauFctOgLOKGJOplqw&r=1HnUuXD1wDvw67rut5_idw&m=bZyniQzwDVeZalKtzEQNfdCbPhn2RxGN1gPehkd9sTQ&s=2zr4tWKFbwYwQ1hY3KEClZ7yNqRyGeTvpTEpBwFFryQ&e= > > <https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.01.org_mailman_listinfo_edk2-2Ddevel&d=BQICAg&c=eEvniauFctOgLOKGJOplqw&r=1HnUuXD1wDvw67rut5_idw&m=bZyniQzwDVeZalKtzEQNfdCbPhn2RxGN1gPehkd9sTQ&s=2zr4tWKFbwYwQ1hY3KEClZ7yNqRyGeTvpTEpBwFFryQ&e=> _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

