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...@intel.com> Cc: Hao Wu <hao.a...@intel.com> Cc: Andrew Fish <af...@apple.com> --- EmulatorPkg/AutoScanPei/AutoScanPei.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EmulatorPkg/AutoScanPei/AutoScanPei.c b/EmulatorPkg/AutoScanPei/AutoScanPei.c index 78a40db3a2..9316ea549b 100644 --- a/EmulatorPkg/AutoScanPei/AutoScanPei.c +++ b/EmulatorPkg/AutoScanPei/AutoScanPei.c @@ -1,6 +1,6 @@ /*++ @file -Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> +Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR> Portions copyright (c) 2011, Apple Inc. All rights reserved. This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -101,9 +101,9 @@ Returns: } while (!EFI_ERROR (Status)); // - // Build the CPU hob with 36-bit addressing and 16-bits of IO space. + // Build the CPU hob with 57-bit addressing and 16-bits of IO space. // - BuildCpuHob (36, 16); + BuildCpuHob (57, 16); return Status; } -- 2.16.1.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel