REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1119 Today's implementation reports CPU address size as 36 through CPU HOB. But when WinHost is running at 64bit, the system memory might be allocated above 2^36. It causes system asserts when DxeCore code tries to find the corresponding GCD entry for a given valid address. The patch uses 57 as the CPU address size which is maximum linear address size when 5-level paging is enabled in host OS. Using 64 seems more proper and a one-time change even 6-level paging might be invented. But it causes CoreInitializeGcdServices() assertion on following code: Entry->EndAddress = LShiftU64 (1, SizeOfMemorySpace) - 1; Because LShiftU64 expects SizeOfMemorySpace < 64. So to be practical, I didn't report 64 and change CoreInitializeGcdServices(). Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Hao Wu <hao.a.wu@intel.com> Cc: Andrew Fish <afish@apple.com>
=== EmulatorPkg Overview === EmulatorPkg provides an environment where a UEFI environment can be emulated under an environment where a full UEFI compatible environment is not possible. (For example, running under an OS where an OS process hosts the UEFI emulation environment.) https://github.com/tianocore/tianocore.github.io/wiki/EmulatorPkg === Status === * Builds and runs under a posix-like environment with X windows - Linux - OS X === Future Plans === * Win32 and Win64 support === Build Scripts === On systems with the bash shell you can use EmulatorPkg/build.sh to simplify building and running EmulatorPkg. For example, to build + run: $ EmulatorPkg/build.sh $ EmulatorPkg/build.sh run The build architecture will match your host machine's architecture. On X64 host machines, you can build + run IA32 mode as well: $ EmulatorPkg/build.sh -a IA32 $ EmulatorPkg/build.sh -a IA32 run