From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.79574.1682430700418822971 for ; Tue, 25 Apr 2023 06:51:40 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=HV0uIuI6; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1682430700; x=1713966700; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=W24alW3yKOOAI5Yhdmip85utD6g/43MCy7xcsz8PX9I=; b=HV0uIuI6Pv2gy6C1KpC2NEEvAk3GjKc8GbHP19HhDJyvwiG3yHuUtn1O ++DbZnp9Fj4qEyYUfRqP2vFI8pHX2NV7QtKBiGpjr0KA4ssgX1vO0qlhs efzV1r2GPvGIfFvRSnPCHjqW8cx/FJqD7vWd1fNcYJm16w0qP+AjBavsd T1Z+45fnJToFKg4yyTUQFNq6wXz1EoaUS8mxinaD+mT8VI4m3CIzfZ5ww 3oWCIPbuTr9rFazWu3UOhGvRZHBef8a+PjP8x+Hv7RFTCvctyDo7qixps PTBGUcqcmjKboMu2VmovNQRJ3Fzq9Litr4nGNeWgiWVID67cX8nkZOX+H g==; X-IronPort-AV: E=McAfee;i="6600,9927,10691"; a="409719080" X-IronPort-AV: E=Sophos;i="5.99,225,1677571200"; d="scan'208";a="409719080" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Apr 2023 06:51:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10691"; a="817695499" X-IronPort-AV: E=Sophos;i="5.99,225,1677571200"; d="scan'208";a="817695499" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga004.jf.intel.com with ESMTP; 25 Apr 2023 06:51:39 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 25 Apr 2023 06:51:39 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 25 Apr 2023 06:51:39 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.40) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Tue, 25 Apr 2023 06:51:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MGcb2HmoettBeWxHMccGYR+06+XF6G+MeCbBSPSDaM3mYXlSaBIkMTyOevQPse+RZ4iLnz2BFaYRjdOsxTYQ7cS15Jf5aMKFRNI3leKOZW9RjID1euz7rUqO5SUrqb9F3FidK+BhQNF3vxtLMdGOb+RA98STcasUlrV9aTfAmIUlS8dZ2rfwEvLXKTznygkPWj5G5E1XnHRK38pKbMSwl3TZB1ugXMreCDFbZpiLdLVeweTi1iEjHMoTcPN8Vx190nXXCOUmlKN/VVTy7k76xZIObozWXqVVOIR+9qkJGFkzQfMlX2lqzfez2XPVuor6pp3NyR/tOZXprAGWEKZmoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Q/AMkxTs7cCwHjfuiFNV19DZWhrmQiGrmXtExqB5RfM=; b=BUczC297jKJ6vxzeN5k8QQwCBxDBMIFVlFh8RIEsLBh1SjBnCwhAEug0qTGoA+W7FnsbVYMcbaOJmUz2PpOrsxzW2FDCLeuXxfx1QQNzZ8v2rr0YTMGKXpxfFUHmI3iBBECI4XeTYstoIqEXlsw2dLmErRAb89sf05T0Hisklt+3i7szWyJ0dJBqFhB8wetJOiyKRqpSer1vfmPf5GmzZybYpKdC4KBeC0XeLMnMmpuIEagyUjIrUJ32XRMCcI4uxcBhRSil+IA59uQRy5xYd+PKPvuhglhUfKCrlhwGiwfC4q1Ly+0jeW4Unncq0mf+KAYzymqcbT7Bcef2aK4pcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by DS0PR11MB6373.namprd11.prod.outlook.com (2603:10b6:8:cb::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Tue, 25 Apr 2023 13:51:32 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d%5]) with mapi id 15.20.6319.033; Tue, 25 Apr 2023 13:51:32 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "Ni, Ray" , "Liu, Zhiguang" CC: "Desimone, Nathaniel L" Subject: Re: [edk2-devel] [PATCH 1/5] SimicsOpenBoardPkg: Build gEfiSmmSmramMemoryGuid Hob in S3 path Thread-Topic: [edk2-devel] [PATCH 1/5] SimicsOpenBoardPkg: Build gEfiSmmSmramMemoryGuid Hob in S3 path Thread-Index: AQHZd0QRKVp6HlWFzUCtikd632EUC688ChkAgAABUKA= Date: Tue, 25 Apr 2023 13:51:32 +0000 Message-ID: References: <20230425070304.2120-1-zhiguang.liu@intel.com> <20230425070304.2120-2-zhiguang.liu@intel.com> <175931AA7778970F.7408@groups.io> In-Reply-To: <175931AA7778970F.7408@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|DS0PR11MB6373:EE_ x-ms-office365-filtering-correlation-id: 8f24e379-e361-4031-c5da-08db45942d6a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0oVXlpxCR+YJGqodX9DbCjXID0Cpuu4DxraxhDWoJoakejgRHdVsMZpGhzDbUa0FS/5GhtnEXxc5x11V6Z/IkhKQcajhikW4ngNOR/g6b0HDE99VL9K881cBDLLQ0QtRYP+l1rEXRp5wC2wFmBPitmDuqT2wQqRRm0xyovXBmUKmlOnQzDENC+lkYUMH5B7saXp/K88AcX84r04K3sAslhQ6U4An3uNro1A3wGeCTAvDd/WfilA+D9XZon5nw0fwjHgER+qn77ENuBcuJTFM0MpwHj+mkEC+K+8081aqRxgtT6EUj2oI6zITmKWOzE6Da9G/ga3avqjYrW05opcSPyd5eKVzWGTAEdaGJRDIfJr4P9gpmNRfk5Cqh0HeEY9YcSCLoKitsMIgodStGPwivvchfensw/tkeUJO6Xbrr3Eu+GFUQYniWvTvpxMltKaYmDzD6c9RfEWNHcpcwwSiolqipOSCUtYkz4Ki7QbAW0WcicvvmhLnlnwKoYG9TqCg0gdgzAuncC5emSxszc6mchT3t0YB3CSxmHdWZBjbBY5oO4iZQIeDAyw15huTmx2OxOPHDs11W1BvhviYW9kCiAzld7ngYzuTTjdqASmAiUhEnucTT2dgee4CL4k6SWd3MkviqZrhXvxRSzFQi6msrDCmg5Dsaiyi1wVP3kDpt6Bs7DyHp/aw3Ntj9UFfdm8x5yPTNun1i2wAzM7FC8MLhw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8244.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(376002)(39860400002)(346002)(366004)(396003)(451199021)(966005)(38100700002)(122000001)(82960400001)(6506007)(9686003)(53546011)(26005)(55016003)(186003)(83380400001)(8936002)(107886003)(33656002)(2906002)(8676002)(52536014)(5660300002)(478600001)(7696005)(38070700005)(110136005)(316002)(71200400001)(4326008)(6636002)(66556008)(76116006)(64756008)(41300700001)(66446008)(19627235002)(66946007)(86362001)(66476007)(66899021)(145543001)(213903007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?v/MgCVrTfAYXOsNo71N3YUrYNk6Bj+FXDIp70QC65vj1Ryoh1nyo74dSIoj9?= =?us-ascii?Q?vCsTyW5UDMufUzJDKmrEpmeSsGunIFG7ZgkPfP5OFF9PETfRKcCK3b6Hf+Q/?= =?us-ascii?Q?bbaFeN4BTNTGvBsARnC/HN7beLubnvEFTBD3B1CMiY5jUmZ5hvfS4VSKwVzg?= =?us-ascii?Q?bhQWuohAf8p7rqdSHke/pdSS55bWHbFKTXjXJxEF79d90iu1GMeQXwj/e/B2?= =?us-ascii?Q?1PWKGVAUxTGoXmySISMGlMcqqDlaP84s1W0TkF/CJ3kZdavewxaOczUgd1mE?= =?us-ascii?Q?X6e+Z0jAHCtMwiyn1xcJLESMuP68HWLj7etg/BoUTjs1M8+5Uf96N6Oui2At?= =?us-ascii?Q?vDxdnhrtRyHVKmq96dHEw3jWlsumnBVCDaZeEurc28oUeFGsuUzCKQ5c0D7y?= =?us-ascii?Q?UZKbgD5KBDdVYS3+gH4nkXeVqCP3mI+HW2o4GdegooEFosF5ykcRIzoDQUqw?= =?us-ascii?Q?hlH3k/bQsVS4nsWKLjLlwLp3Nb6BLqHsT53cPn7bid+PeEtxFgQe1zWD3aeB?= =?us-ascii?Q?5/6lfl4IzFtIc36I+PxkjWw7N38et1rGiKh2hEBj9+naoG3xXpx29Q3I2TzT?= =?us-ascii?Q?Qwc+sdIYkKTDRbWkECqgi4Kc79cao6+G7QZtWdRxkTjTIQtYXVw8f4NylXa9?= =?us-ascii?Q?Z4KZL80SQkKv7UBbeMyBL33h1umLBrhegGv/gvroBNZRcLc1MSlw+zaebZmj?= =?us-ascii?Q?kZMxRPNP5LL/Wnp+b3ntoH3d4c22ZfbwkNTPb3TPHc6+i4cPg2mGMRqmazR/?= =?us-ascii?Q?emn7QJnTOAEwmct+I4EKTHJVnso9NYWwWMvLYdOXHpI7C/6iuVChrnoF7YPO?= =?us-ascii?Q?LF3JKGshU2DvFgJMre+weSeaHsAJJWxmD2EmJCdNZFyGJhPoYYlC83959dgu?= =?us-ascii?Q?xGjZqWNVPDI3ELlg7bYD6/WZ3iWOyLmdWs5ruaLFQWSei9WLariVea1/trbu?= =?us-ascii?Q?FA1Ug/96cShpv0bfRXf19R4jISSWQiL5favxbyaLQkNdrj2E4d8m0thRRqYf?= =?us-ascii?Q?XpENTskdqCcmjcP41UdWSxWD35BfRCgnqkG3HdCevylRE8WptXRFDzc8zAHQ?= =?us-ascii?Q?10HTDeX6Mm2k7sSHmQO9wYS4ImVWA6cCrOp33gD6lG6ymdyMq0T3jrLThRof?= =?us-ascii?Q?cuTfQ3KhEg73phm/qmPjCUoiPbLY+voElJxyXIcjizpkKwC3bxuNt28C5Sdb?= =?us-ascii?Q?hUY5zGLbxKIvxsLf5x+03yy0H+V/zKny5Ci3AKmLsFrwSOnRSuYF5Vjc58kX?= =?us-ascii?Q?U/D6txPq2RunqiCwAUOOTRVqOMfOE9Y/sj2omMq23AFV2BMuOHVwngCGeBf0?= =?us-ascii?Q?WxIC4HiqMtteh3+iPr+FgZjsnQWF+tGAc4hQHo87x5XVlY2VvfyQytgdL4w4?= =?us-ascii?Q?KgZoWUnxTcoQz9M35pvgeuIJh+vtT8HV4Nmk4xtrZOOT33sJH3Z0wKGjts3g?= =?us-ascii?Q?O/9yWvLU5FLXpt2G6QS2HJ4xAryJZRZWow8ihmOU1EVUlBHCfPHQuqJpyKzN?= =?us-ascii?Q?E3t7PhZ7M4Wq7ugsu0KgRmwCQjN+fQy7T3W9DOe+zrQ63HMVnOrDmw2FplM8?= =?us-ascii?Q?QSas0jsJRSzkcX1fIruy5DkjVumplhmItEEl/EJ1?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f24e379-e361-4031-c5da-08db45942d6a X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Apr 2023 13:51:32.2281 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: gCSqfS5SFZXKuIyPnDMjFPrCaqfb6ANLkEeIaafwj5GxG4P6SBv76EezDMt+YUrKI0GY9mfOuFg9zzO7RFAtmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6373 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Please ignore my 2nd question. I saw " AddMemoryRangeHob (BASE_1MB, LowerMemorySize - TsegSize);" when PcdSmmSmramRequire is TRUE. > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Ni, Ray > Sent: Tuesday, April 25, 2023 9:49 PM > To: Liu, Zhiguang ; devel@edk2.groups.io > Cc: Desimone, Nathaniel L > Subject: Re: [edk2-devel] [PATCH 1/5] SimicsOpenBoardPkg: Build > gEfiSmmSmramMemoryGuid Hob in S3 path >=20 > Zhiguang, > Can you please keep the comments that explain why below 1MB memory > resource > should be added for QSP platform? >=20 > Another question not related to your changes: > why "AddMemoryRangeHob (BASE_1MB, LowerMemorySize);" is only > called when > PcdSmmSmramRequire is FALSE? >=20 > Thanks, > Ray >=20 > > -----Original Message----- > > From: Liu, Zhiguang > > Sent: Tuesday, April 25, 2023 3:03 PM > > To: devel@edk2.groups.io > > Cc: Liu, Zhiguang ; Desimone, Nathaniel L > > ; Ni, Ray > > Subject: [PATCH 1/5] SimicsOpenBoardPkg: Build > > gEfiSmmSmramMemoryGuid Hob in S3 path > > > > gEfiSmmSmramMemoryGuid Hob is needed for SmmRelocation feature > > even for S3 path. So in MemDetect.c, remove specical code path > > for S3 about creating gEfiSmmSmramMemoryGuid Hob and adding some > > memory descriptor, which does no harm in S3 path. > > > > Cc: Nate DeSimone > > Cc: Ray Ni > > Signed-off-by: Zhiguang Liu > > --- > > .../SimicsOpenBoardPkg/SimicsPei/MemDetect.c | 107 +++++++----------- > > 1 file changed, 42 insertions(+), 65 deletions(-) > > > > diff --git a/Platform/Intel/SimicsOpenBoardPkg/SimicsPei/MemDetect.c > > b/Platform/Intel/SimicsOpenBoardPkg/SimicsPei/MemDetect.c > > index 127afffc00..d80ac1d213 100644 > > --- a/Platform/Intel/SimicsOpenBoardPkg/SimicsPei/MemDetect.c > > +++ b/Platform/Intel/SimicsOpenBoardPkg/SimicsPei/MemDetect.c > > @@ -405,79 +405,56 @@ QemuInitializeRam ( > > LowerMemorySize =3D GetSystemMemorySizeBelow4gb (); > > UpperMemorySize =3D GetSystemMemorySizeAbove4gb (); > > > > - if (mBootMode =3D=3D BOOT_ON_S3_RESUME) { > > - // > > - // Create the following memory HOB as an exception on the S3 boot > path. > > - // > > - // Normally we'd create memory HOBs only on the normal boot path. > > However, > > - // CpuMpPei specifically needs such a low-memory HOB on the S3 pat= h > as > > - // well, for "borrowing" a subset of it temporarily, for the AP st= artup > > - // vector. > > - // > > - // CpuMpPei saves the original contents of the borrowed area in > > permanent > > - // PEI RAM, in a backup buffer allocated with the normal PEI servi= ces. > > - // CpuMpPei restores the original contents ("returns" the borrowed > area) > > at > > - // End-of-PEI. End-of-PEI in turn is emitted by S3Resume2Pei befor= e > > - // transferring control to the OS's wakeup vector in the FACS. > > - // > > - // We expect any other PEIMs that "borrow" memory similarly to > > CpuMpPei to > > - // restore the original contents. Furthermore, we expect all such = PEIMs > > - // (CpuMpPei included) to claim the borrowed areas by producing > > memory > > - // allocation HOBs, and to honor preexistent memory allocation HOB= s > > when > > - // looking for an area to borrow. > > - // > > - AddMemoryRangeHob (0, BASE_512KB + BASE_128KB); > > - } else { > > - // > > - // Create memory HOBs > > - // > > - AddMemoryRangeHob (0, BASE_512KB + BASE_128KB); > > + // > > + // Create memory HOBs > > + // > > + AddMemoryRangeHob (0, BASE_512KB + BASE_128KB); > > > > - if (FeaturePcdGet (PcdSmmSmramRequire)) { > > - UINT32 TsegSize; > > + if (FeaturePcdGet (PcdSmmSmramRequire)) { > > + UINT32 TsegSize; > > > > - TsegSize =3D mX58TsegMbytes * SIZE_1MB; > > - AddMemoryRangeHob (BASE_1MB, LowerMemorySize - TsegSize); > > - AddReservedMemoryBaseSizeHob (LowerMemorySize - TsegSize, > > TsegSize, > > - TRUE); > > + TsegSize =3D mX58TsegMbytes * SIZE_1MB; > > + AddMemoryRangeHob (BASE_1MB, LowerMemorySize - TsegSize); > > + AddReservedMemoryBaseSizeHob (LowerMemorySize - TsegSize, > > TsegSize, > > + TRUE); > > > > - BufferSize =3D sizeof(EFI_SMRAM_HOB_DESCRIPTOR_BLOCK); > > - SmramRanges =3D 1; > > + BufferSize =3D sizeof(EFI_SMRAM_HOB_DESCRIPTOR_BLOCK); > > + SmramRanges =3D 1; > > > > - Hob.Raw =3D BuildGuidHob( > > - &gEfiSmmSmramMemoryGuid, > > - BufferSize > > - ); > > - ASSERT(Hob.Raw); > > - > > - SmramHobDescriptorBlock =3D (EFI_SMRAM_HOB_DESCRIPTOR_BLOCK > > *)(Hob.Raw); > > - SmramHobDescriptorBlock->NumberOfSmmReservedRegions =3D > > SmramRanges; > > - > > - SmramIndex =3D 0; > > - for (Index =3D 0; Index < SmramRanges; Index++) { > > - // > > - // This is an SMRAM range, create an SMRAM descriptor > > - // > > - SmramHobDescriptorBlock->Descriptor[SmramIndex].PhysicalStart = =3D > > LowerMemorySize - TsegSize; > > - SmramHobDescriptorBlock->Descriptor[SmramIndex].CpuStart =3D > > LowerMemorySize - TsegSize; > > - SmramHobDescriptorBlock->Descriptor[SmramIndex].PhysicalSize = =3D > > TsegSize; > > - SmramHobDescriptorBlock->Descriptor[SmramIndex].RegionState = =3D > > EFI_SMRAM_CLOSED | EFI_CACHEABLE; > > - SmramIndex++; > > - } > > + Hob.Raw =3D BuildGuidHob( > > + &gEfiSmmSmramMemoryGuid, > > + BufferSize > > + ); > > + ASSERT(Hob.Raw); > > > > - } else { > > - AddMemoryRangeHob (BASE_1MB, LowerMemorySize); > > - } > > + SmramHobDescriptorBlock =3D (EFI_SMRAM_HOB_DESCRIPTOR_BLOCK > > *)(Hob.Raw); > > + SmramHobDescriptorBlock->NumberOfSmmReservedRegions =3D > > SmramRanges; > > > > - // > > - // If QEMU presents an E820 map, then create memory HOBs for > > the >=3D4GB RAM > > - // entries. Otherwise, create a single memory HOB with the flat >= =3D4GB > > - // memory size read from the CMOS. > > - // > > - if (UpperMemorySize !=3D 0) { > > - AddMemoryBaseSizeHob (BASE_4GB, UpperMemorySize); > > + SmramIndex =3D 0; > > + for (Index =3D 0; Index < SmramRanges; Index++) { > > + // > > + // This is an SMRAM range, create an SMRAM descriptor > > + // > > + SmramHobDescriptorBlock->Descriptor[SmramIndex].PhysicalStart = =3D > > LowerMemorySize - TsegSize; > > + SmramHobDescriptorBlock->Descriptor[SmramIndex].CpuStart =3D > > LowerMemorySize - TsegSize; > > + SmramHobDescriptorBlock->Descriptor[SmramIndex].PhysicalSize =3D > > TsegSize; > > + SmramHobDescriptorBlock->Descriptor[SmramIndex].RegionState =3D > > EFI_SMRAM_CLOSED | EFI_CACHEABLE; > > + SmramIndex++; > > } > > + > > + } else { > > + AddMemoryRangeHob (BASE_1MB, LowerMemorySize); > > } > > + > > + // > > + // If QEMU presents an E820 map, then create memory HOBs for > > the >=3D4GB RAM > > + // entries. Otherwise, create a single memory HOB with the flat >=3D= 4GB > > + // memory size read from the CMOS. > > + // > > + if (UpperMemorySize !=3D 0) { > > + AddMemoryBaseSizeHob (BASE_4GB, UpperMemorySize); > > + } > > + > > } > > > > /** > > -- > > 2.31.1.windows.1 >=20 >=20 >=20 >=20 >=20