From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.3530.1682500051870393406 for ; Wed, 26 Apr 2023 02:07:32 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=HaEQy94c; spf=pass (domain: intel.com, ip: 192.55.52.43, 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=1682500051; x=1714036051; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=p707lNbyqbZcstekPyz0hbjZzfnO3a3Msmuocce9/SE=; b=HaEQy94cuB/qWm6956Q7LrKDII3oskHMZ4s0hgJFbBx+KMFl/YfaZFJ4 hJv03m/v+hQhv2LmE4JhjnQdpflMFcVAjHMDXdnyvHTzWg0V4ZeKy8isy ce6DJyGrMuwY4icszlDukDnYL04Ge/UP6j2lue/PbXnNVP/GzzyAZIlXY x/NNZvYRWDGN/Fao9JCBxtUU7uCJhbq+JEXqF+s8BmRcfyTFZlikmfdvH Z8QI79T7JxdKaFCcLzRLtu22fta5zNu0W6mXIRwrY+8ozb7GEAVoH5YVO 0HhlWMEZNUbdkAfq5NhOfUcf5tc9ub2bbx0q8rb/Co8ZfJPMBD0oyPBNh Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10691"; a="433333140" X-IronPort-AV: E=Sophos;i="5.99,227,1677571200"; d="scan'208";a="433333140" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Apr 2023 02:07:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10691"; a="818039272" X-IronPort-AV: E=Sophos;i="5.99,227,1677571200"; d="scan'208";a="818039272" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga004.jf.intel.com with ESMTP; 26 Apr 2023 02:07:31 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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; Wed, 26 Apr 2023 02:07:30 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 26 Apr 2023 02:07:30 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) 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; Wed, 26 Apr 2023 02:07:30 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.177) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Wed, 26 Apr 2023 02:07:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ndHUCbEtWni/guc/Chwg9lYAlpfjej01UIi5ZfyO8S+Jxb0Lfv94TzmSVuxdDTpdnWcGM/2kCu9K/I1dK1DRmXm9Lf21csCzfZFmDXlQgEJjR+HhsIWiHLgqUS20sL6FUJxrYgq6/gEYM8rPFE0lh+rlg4YAkXeHx6IPuCStDAkJCwKxh6nhN8VHXoCf2aNEJ/RM78A6jGQTBbhw6ahywXDIfy/uJPCxL/RJ5Qyd4WXs6Rhoqjt91lCOViB3w8jHW8FdXIZSr6K1sB8lcy1kt2vmpuCBNhFGw6h9562eoGMGbQxsbdPqapT05/e2MUs+jIzP/tIV72E3sdn54q+5Zg== 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=WLQg8xWe8hA2+5Crba2NAMzRJnwZzQbD8AZuvnfjMA4=; b=FjTfxSDvogkywTaMXra/XmvIsWZC8tN0Ws4IR0PlRUFV5zTkvd7sAD/P1tCVLSPL7GuN0jpof8j+WzG1GWYCzTNqd4FugX9qu5xCnXYADcNOLj8LgsYkxzYC9xF/dDjPxMb9ZHHhzd1ZaiCTf/UWBunzt1KCs7X9Wcjq8+u6GtJ0Zv7t0oEfxCVW2cArjSr/HKqJg2Lfj+6SGfW9kDnMKqtZpqZ8cALjuyYP9Iuwe5/cMPfMyCUCbmnV6ADDGrRe+mtasCzotqV8bazaRcT76F0bsAE1rKyP1OFeufJ8yc5YjfBUoF9CrJHdtKsW6wFqU6UXIcBiOBhv7xviVdzhog== 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 SA2PR11MB4955.namprd11.prod.outlook.com (2603:10b6:806:fa::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.21; Wed, 26 Apr 2023 09:07:28 +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; Wed, 26 Apr 2023 09:07:28 +0000 From: "Ni, Ray" To: "Liu, Zhiguang" , "devel@edk2.groups.io" CC: "Dong, Eric" , "Kumar, Rahul R" , Gerd Hoffmann , "De, Debkumar" , "West, Catharine" Subject: Re: [PATCH v2 2/2] UefiCpuPkg: Support 5 level page table in ResetVector Thread-Topic: [PATCH v2 2/2] UefiCpuPkg: Support 5 level page table in ResetVector Thread-Index: AQHZeBcJ0jN05FJ4k0yyU30z1SwsV689SxRw Date: Wed, 26 Apr 2023 09:07:27 +0000 Message-ID: References: <20230426081327.1425-1-zhiguang.liu@intel.com> <20230426081327.1425-2-zhiguang.liu@intel.com> In-Reply-To: <20230426081327.1425-2-zhiguang.liu@intel.com> 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_|SA2PR11MB4955:EE_ x-ms-office365-filtering-correlation-id: b66bac1e-76c1-4726-93bc-08db4635a83e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ToGrsm3S3K5ar1jHsEUKXxa6jV8blul5c4ejgCEoepyVFQjf4y/2mwS8TtyTk+bHXBfm7iBK7ou2K4QzpHGFixUVwSlQve1cg+Fdnpj28kcaJJAv68wijjtO4HjuuH4ox8ftRN84SiCBSE9gsH46Hcko1jDXN5dlUw0pJsTdznQX4Dlmhr5y0LRFB9mo+FTXZuSn9UtCOn07EHEkH8Rtjp9REyh2dWL8cJ1+jZX4AA+xPWbHnygwKnMzzyl9u2yBUJoebbkHw9zw3QDYzsfKf0fidQiuey1gVJyysJM4XO22NO5HTnev7vh6QMCzUsHE6Vw/g4iu1uyHisGFAwAtuJ+yTN5baLXrbL1oZyNtWtB15caNYzW1dLUh8FVrsPGYn8Dcs32lebDKQxwT/fYNCX+carVz4PnXLiz9fxxOCHlZb2vJkV9hcZJYMhZPnnD0qHbggJGNnOzE5QFDqPoCJy+trLco0peUx4hycWDjlDcaNZNECtygsoeZNLLwntd+HZNxt7/l6sYzaddgAi1/Ms6kaGdapEJk0vxP93UOFqEiBAANd77NSd4bM+ZA1czf8plqp3zxiSb9W6uPKcSyRw5CjbVI3kiia7Xf6J2Kz/H+lWC6S6cpdiJ2vssfPuNE 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)(39860400002)(136003)(376002)(366004)(346002)(396003)(451199021)(33656002)(86362001)(55016003)(54906003)(478600001)(19627235002)(110136005)(7696005)(71200400001)(8936002)(38100700002)(122000001)(8676002)(41300700001)(66446008)(66476007)(64756008)(66556008)(66946007)(76116006)(82960400001)(316002)(4326008)(83380400001)(186003)(107886003)(53546011)(26005)(6506007)(9686003)(2906002)(38070700005)(52536014)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?AWnXLwtFA+gdJHt4FcL3XucgisMisQhafZLuwllFLeupvxQoNOPjybRV8xIp?= =?us-ascii?Q?FTswiwGEcH5maxmqV+6dOlnVz6zCbCMuCJ72WZKu1dUrCVOys2iMHqo8Jug4?= =?us-ascii?Q?O0sngqAkH/bsEbB0Y+9xEJY2oiGSTbxq7PChhgid9o4RoSoBpz63wSmuG9FL?= =?us-ascii?Q?kEtyjmbmKgiRV1A2kFFO+qn2lRUP9jFzxMHKM6bBE8Nz5bH2zsMLoz/iluKp?= =?us-ascii?Q?WC2M1xIxdLkDja1w+DzgcWv/ZuZJqpCApPIegBVlgr+L6+4VFHKos1qIQDS3?= =?us-ascii?Q?8renCHFcCAnxasdA1gnGUD2bONomw+bECqIKdCRiG2zsafcxppFnLJWC8u+q?= =?us-ascii?Q?Cq7oDccOGQeJNsromO9H+1XzCOULdimHn64K9fmAHmfzBuzyRWoU3z/NtsBy?= =?us-ascii?Q?kr1dAI0sYxbJ5TwzXkZ9ik53sAnbbbolIN2w4u7gswbMnXWy6XhdmQCT8F7A?= =?us-ascii?Q?3Rb8maZai2wSY3ahmpBVt/3WhXjSjVvtDSKaPGP0IR7cbeSVNX5NYWa4VLce?= =?us-ascii?Q?MXM51+/9Jwwhkb0jbn/nzVE4Rz7mlD3Sm9tREIyXXIqHxLzJsine8zV1Y+h7?= =?us-ascii?Q?vQ9+eaiCHMAZ9BQ9S02vphv4aSFqwu0xj9TO+bgyKI27oPg3oHuNJrsmyXKq?= =?us-ascii?Q?0v9QHEbL4r0ZwpTCNwaS2tvoYhccgEb+jiPTQo8n32N7dCxpX/efff2+QXIV?= =?us-ascii?Q?Fe4o4A0/KEMmrzkTIq4IvlJgjJ+1lY9zMILhsiabV2K8la7y/af6dTb2jTWN?= =?us-ascii?Q?/4PXs4Uy/4oT5t5gHxem/oUSef2sxRxn6YkxaanzAFR9vocOG1lpb5lZatjW?= =?us-ascii?Q?5rPVfoPkjAafVXkShIkAbgWcXVbw18PWG/1OplQEKv9/qOXaCI/MZdPt4PL8?= =?us-ascii?Q?IAXofyyHjAW4JWekoZHRaqFZ1mhMbhtKNpeBBMBBOn9JUXysGr0MvAhIyEg8?= =?us-ascii?Q?xRv2DAK7c8fiu231IfFmOiGW+7Y4uCLu7k5xHZEtJUiyKdYw9WQg4XABj51a?= =?us-ascii?Q?DcelN68/WlQNtb4/IpaOjq4HgAzzW2ufAPAP5tJtd7E/3Ofp1+07bI/HNaM0?= =?us-ascii?Q?T4JDyGUOVovMH7AUEXVuWF1vHWDqETIUYdrpBzImGYPcNGr0MSORFM/hcZ8I?= =?us-ascii?Q?ObdkVtgtMas1SDhh3Gn9UUea+5f3v5rPs4/LcDwB88B1m9bDu8vg29ybM8bE?= =?us-ascii?Q?AOUW24XihPXmZ/VnpcgRN9+QZWSeaxvje5euu16Cfjxnx72bOCORf4gSBYn6?= =?us-ascii?Q?70myUtGnWJIetUJggK2fiX7nr0Hpp1RwSew5pzxedyGQK9+c72/GGJD6pi3L?= =?us-ascii?Q?TkWmU0wfE4OK9YvrDxLEIIyaLwnAzTzzHadtMBfl+9BDu6FvL6IzeEmPrQyo?= =?us-ascii?Q?6wlbOghCyprTbe/iynatgxabRJunN76omKSUzDQHWCu9SCddsldBTQfDJLUl?= =?us-ascii?Q?QEAsQ7QUjGtgEmXGomlyjG7B39VcwgTm3H/P9MTmXgfRzfsDxgXOXr46KHqn?= =?us-ascii?Q?fxLCqN1NwVLqO2JwxBtZF3GKxONCfrHsdAatKA9ut173Zeke2RkOOYO6E4Pk?= =?us-ascii?Q?Kx/zh6AnptERY3YoT+M=3D?= 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: b66bac1e-76c1-4726-93bc-08db4635a83e X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2023 09:07:27.2325 (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: I/OezlIR06rezcxQEvWHKm6Osn3T5KpXH0TBv1J8Snui1Bbso3YgYTq51ovE1s561b/pJmhyAPUe3Ib65kBBGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB4955 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 > -----Original Message----- > From: Liu, Zhiguang > Sent: Wednesday, April 26, 2023 4:13 PM > To: devel@edk2.groups.io > Cc: Liu, Zhiguang ; Dong, Eric > ; Ni, Ray ; Kumar, Rahul R > ; Gerd Hoffmann ; De, > Debkumar ; West, Catharine > > Subject: [PATCH v2 2/2] UefiCpuPkg: Support 5 level page table in > ResetVector >=20 > Add a macro USE_5_LEVEL_PAGE_TABLE to determine whether to create > 5 level page table. > If macro USE_5_LEVEL_PAGE_TABLE is defined, PML5Table is created > at (4G-12K), while PML4Table is at (4G-16K). In runtime check, if > 5level paging is supported, use PML5Table, otherwise, use PML4Table. > If macro USE_5_LEVEL_PAGE_TABLE is not defined, to save space, 5level > paging is not created, and 4level paging is at (4G-12K) and be used. >=20 > Cc: Eric Dong > Cc: Ray Ni > Cc: Rahul Kumar > Cc: Gerd Hoffmann > Cc: Debkumar De > Cc: Catharine West > Signed-off-by: Zhiguang Liu > --- > .../ResetVector/Vtf0/Ia32/Flat32ToFlat64.asm | 24 ++++++++++++++++-- > .../ResetVector/Vtf0/Ia32/PageTables64.asm | 25 ------------------- > UefiCpuPkg/ResetVector/Vtf0/Vtf0.nasmb | 4 ++- > .../ResetVector/Vtf0/X64/PageTables5L.asm | 20 +++++++++++++++ > 4 files changed, 45 insertions(+), 28 deletions(-) > delete mode 100644 UefiCpuPkg/ResetVector/Vtf0/Ia32/PageTables64.asm > create mode 100644 UefiCpuPkg/ResetVector/Vtf0/X64/PageTables5L.asm >=20 > diff --git a/UefiCpuPkg/ResetVector/Vtf0/Ia32/Flat32ToFlat64.asm > b/UefiCpuPkg/ResetVector/Vtf0/Ia32/Flat32ToFlat64.asm > index 6891397c2a..0b4a21061b 100644 > --- a/UefiCpuPkg/ResetVector/Vtf0/Ia32/Flat32ToFlat64.asm > +++ b/UefiCpuPkg/ResetVector/Vtf0/Ia32/Flat32ToFlat64.asm > @@ -2,7 +2,7 @@ > ; @file > ; Transition from 32 bit flat protected mode into 64 bit flat protected = mode > ; > -; Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.
> +; Copyright (c) 2008 - 2023, Intel Corporation. All rights reserved.
> ; SPDX-License-Identifier: BSD-2-Clause-Patent > ; > ;-----------------------------------------------------------------------= ------- > @@ -13,8 +13,28 @@ BITS 32 > ; Modified: EAX > ; > Transition32FlatTo64Flat: > +%ifdef USE_5_LEVEL_PAGE_TABLE > + mov eax, 0 > + cpuid > + cmp eax, 07h ; check if basic CPUID leaf cont= ains leaf 07 > + jb NotSupport5LevelPaging ; 5level paging not support, dow= ngrade > to 4level paging > + mov eax, 07h ; check cpuid leaf 7, subleaf 0 > + mov ecx, 0 > + cpuid > + bt ecx, 16 ; [Bits 16] Supports 5-level pag= ing if 1. > + jnc NotSupport5LevelPaging ; 5level paging not support, dow= ngrade > to 4level paging > + mov eax, ADDR_OF(PML5Table) 1. Label can be "Pml5" > + mov cr3, eax > + mov eax, cr4 > + bts eax, 12 ; Set LA57=3D1. > + mov cr4, eax > + jmp CR3ProgramDone > +NotSupport5LevelPaging: > +%endif >=20 > - OneTimeCall SetCr3ForPageTables64 > + mov eax, ADDR_OF(PML4Table) > + mov cr3, eax > +CR3ProgramDone: 2. Label can be "SetCr3Done" > + > +PML5Table: 3. "Pml5:" > + ; > + ; PML5 table Pointers 4. "PML5" > + ; Assume page table is create from bottom to top, and only one PML4 > table there. 5. "Assume PML4 is in 4KB-lower address" > + ; > + DQ (ADDR_OF($) - 0x1000 + PAGE_PDP_ATTR) > + > + ; > + ; Only first PML5 entry(first 8 bytes) pointting to a PML4 table. Ot= hers are > zero > + ; > + TIMES (0x1000 - 0x8) DB 0 6. How about "TIMES 0x1000 - ($-Pml5) DB 0"? > -- > 2.31.1.windows.1