From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web10.8766.1615903377900199772 for ; Tue, 16 Mar 2021 07:02:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=tkkkqXfW; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: eric.dong@intel.com) IronPort-SDR: QA9fiD4UnwaapcmFB5AOZGpZLsQuXxl8TfnejTa75gMCCl0MDgfITsY0l1w5+eo4QRXZ9QFNbh 7xr09Z4c/nnA== X-IronPort-AV: E=McAfee;i="6000,8403,9924"; a="209197181" X-IronPort-AV: E=Sophos;i="5.81,251,1610438400"; d="scan'208";a="209197181" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Mar 2021 07:02:54 -0700 IronPort-SDR: GL/+GVk+FRgGd7Ty+NDThUMRPLxqWnvxAKl716hJviPSPsrrwcuFeoBjpOXHag32tmbVPPU2Oi 0T628zCl3Usw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,251,1610438400"; d="scan'208";a="373796936" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga006.jf.intel.com with ESMTP; 16 Mar 2021 07:02:53 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 16 Mar 2021 07:02:53 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Tue, 16 Mar 2021 07:02:53 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Tue, 16 Mar 2021 07:02:53 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.41) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Tue, 16 Mar 2021 07:01:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SrnAFpiu4iZ6iqMNeogvyRITUx+3yegXznl9Zw3wGfp8gtkAPDE0HjIDNTlTxLPa2LJKtGAqCCpNrp+FyrqYW/8muC54JB1o7MzIZCuAAc99U5l9E+lnkt2UL24DRCMD9PiyFSBIi3nAF6krYsZjJfdsgP8OFBDN+9MIakBttYLs97k9a12jLfGFPAG/SKlSRqSktTRyRVDv1ya0DO89BgfPNLt3YtwaDuVHmD6RZKei0tJ8GyCNXUsKNkfSqkmSEdRwljT2qHnefbi7Wg5pkiYT+8qsXZTKjHshvdXzxv0yOwv1A3Fl4gr3Nwm92MPnUk2IfZDRqnsL+p6rIuxnjA== 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-SenderADCheck; bh=Ld7cEkN1jIdo4zLtSetz/F/oU0iszi+KSZykwNSTneA=; b=D0JuiSMwbwH63lbCbQmFcoWjiC2z6KyP0FHES4vhCxiH3efdAoCtxpg54sf3KOKIX3bcewur6TRRntjzdatGtGJnzBnQxtPOB+0LdzDseeBoqoYaUb0C6r4rh1xIL0zA8+LsX9YpMTdLVE6cxQ9XlJnPw9gfPsT6QniKeDtcOaxAJwSUb+26ma2RKtCh/WgoqxRD6R++15sZE2pFFzEIzuldvbKLM562n/xu8euK4gdZ01vviUkGK8UVlmdbK86pZK/wionyIFpIShVf6/X5eHoVGyAzef9rXa11ACvjHaszYCrYq9ZILzEUT1k8Sr2RL7uvI5bvQg3aeb7gxRdBNw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ld7cEkN1jIdo4zLtSetz/F/oU0iszi+KSZykwNSTneA=; b=tkkkqXfWQKTyBqWPkldKZhlsE5XxeDKNVvJbuZNFO/bsv4kwzHhVMbPLuX5b8ZB8y5LGpm53lMojUAyT5AQ1S3Z95jNE6eOsqmtbeH/8TD8djVXBkTrZ11XPc1rKksdkwjNN3WlEnoaL7FE3DPPsFkPrmIPI9vzFPRDLayGLT8o= Received: from CY4PR11MB1272.namprd11.prod.outlook.com (2603:10b6:903:29::9) by CY4PR11MB1270.namprd11.prod.outlook.com (2603:10b6:903:2c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Tue, 16 Mar 2021 14:01:15 +0000 Received: from CY4PR11MB1272.namprd11.prod.outlook.com ([fe80::918c:7df3:f688:d5e9]) by CY4PR11MB1272.namprd11.prod.outlook.com ([fe80::918c:7df3:f688:d5e9%5]) with mapi id 15.20.3933.032; Tue, 16 Mar 2021 14:01:15 +0000 From: "Dong, Eric" To: "Lou, Yun" , "devel@edk2.groups.io" CC: "Ni, Ray" , Laszlo Ersek , "Kumar, Rahul1" Subject: Re: [PATCH v2 1/1] UefiCpuPkg/CpuCacheInfoLib: Collect cache associative type Thread-Topic: [PATCH v2 1/1] UefiCpuPkg/CpuCacheInfoLib: Collect cache associative type Thread-Index: AQHXGaH5OGxyM117dEGhtmqmny1NyqqGph8Q Date: Tue, 16 Mar 2021 14:01:15 +0000 Message-ID: References: <20210315134854.6363-1-yun.lou@intel.com> In-Reply-To: <20210315134854.6363-1-yun.lou@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [61.155.142.121] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1e59eb5b-7d95-46a3-a9cf-08d8e883f71c x-ms-traffictypediagnostic: CY4PR11MB1270: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: a7BKI6GAWhQkNrbqwqenoaa9xZplOouQ4I8j//THp+dcol7GT60joBrc8Z02Yp2I2LR88p9wuZ82IxnmtjafhWOesD4ZvuB7tjh/akiE8JzOSug7/01HyXV7lGpwVOZSvDBNrubSxCQZUKwurmd4TpFM0yMU498/1V75ifWYvyl9OcGqjrY1DY5Q2klr/OkLferAkvrnqJr4+9Ti8WJKy9g4ISqCuzl3Asy7sC1Pqk8Hd3zJaHV3+RCIrzha5L7z919duKEXXpnrDIogkweNP7h9wiHz6YAU0ngoYOqs1T/SBupsEFkGHf7kjtg76pWd2i9FlWAKmm8luEkvwyBFz3KTV6Dv7ytW5OVtE+X3UKt1u50RvukVX+qFuuyS/EGR7Ezefum4zarA2I9UmsVRpeFoan4cK06+9G4gIOq4Gq3SirBAdd54Hj1WCcdaPJ7RFpIFHNMNnpG6bBOVoH+pnV7LHQupZQRYlNUATfWOQ6MuO8ZLbz9T6alf8xTQv75ta4xcNalG4/IsT9k90v54WyCAiielld4l42taeBKV0T1qPcX5nWAgsb5F1gF+sGm0Kj59oLIGuWNg0Q5aUdAySIscVQan3nwDqLkiBSB0dGbbWmw0B0/v5mq5zCN44wrVLkZOgpF8XksXefqhtF52yg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR11MB1272.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(366004)(136003)(39860400002)(396003)(376002)(4326008)(66446008)(966005)(186003)(9686003)(52536014)(6506007)(26005)(53546011)(8936002)(33656002)(478600001)(64756008)(66556008)(8676002)(76116006)(55016002)(86362001)(66476007)(110136005)(66946007)(316002)(54906003)(5660300002)(2906002)(7696005)(83380400001)(107886003)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?SKToMb6/sXl60fpwx+JUaVJyz1+DF/kO1tEuCcojKI9X2SkZIt6XP3I/lhKJ?= =?us-ascii?Q?xad/x6xz3cHBWoGYS8yjb2AIelXmq05+J6Z+Cc11fj0hH3IcpRqCPaBcfiMq?= =?us-ascii?Q?rYfZTMQ/eOLUNLdsiSk89YeqcB3k6AAvStvSyPVVOscRvTAUv4rNjiHx+AV4?= =?us-ascii?Q?L1LDeGnuYGxPCDv3DbvfEf0yyE/KmY2VFXQF/0ycVY176fxMFI5AzHRr/Cch?= =?us-ascii?Q?FrPkoageqho4Y8XHO99eOnwnuGp3RcHX3VFN+0eDlg/iL2s7OISaRQSp1bSJ?= =?us-ascii?Q?fQINsxOmVTIAa9lenQ/9k75SwFHgVy/sh8c/uqiKQGcugc/+lfx2X0OihkXr?= =?us-ascii?Q?b09osx7M4pAWFRjNy+h52RXjXQ5IKFbVmS9vD9XmIdPsi4+UDdGlPb5EJmXJ?= =?us-ascii?Q?uLtrd+mqF2atwKvJ22FxTAXRg7zWnO0/7A5gY+CY+ZgNktT54cjdCoOyvDdA?= =?us-ascii?Q?jRvBjyEiojcjAm9fHrlhDbZAQXs/8umWhBc0W0p0ztB4yVXTdhgebUmlF9Uq?= =?us-ascii?Q?8SKzDncHnRuxLn8xyR8zOQDrwYAI/Pb+juUdK+/ttOrRxs9zIyDDVcUCjdKF?= =?us-ascii?Q?JCtyUMj1ybR2WNSgVXYDwFdeY2Aq9ZuFrDnOlPa6uVhxPEjiX4k3Rd4HiBFD?= =?us-ascii?Q?Df7BN56JH2yLFHo5WgqgQFs7ivg1LDK3O6/okEFL14KIG5xyoko/HNIeft4w?= =?us-ascii?Q?rSP0opXM5ZwCZV/D6if1lDsYdTUOGmzVVA/9FiHJQPxB9ctQ7CMdpuXRBFYf?= =?us-ascii?Q?7r+9MMONPNBKmZTeQWunMZtjX1HGe72hfaWPW2p/3LMgFfAiph52XYWzRrFH?= =?us-ascii?Q?xuV7vDIgbDIye5pyXTEzTCHPyacyMTWlTyJyq5y3nCXfd/0TO6XCPvnN5Nnj?= =?us-ascii?Q?7MGRkBpb9OEoysiqk92jk9CBLGB/hBMehDYvushVLHhbQCnOc+SGIpoWUcG4?= =?us-ascii?Q?+yJ1FB8CC9HztZGL7xrUiLTSoEp16RfwVbPvUdq3wR2X3Njt+rcvYAHp3RrM?= =?us-ascii?Q?vux/7XwrhseknYhNmQvaenAjWDyfm5hXzHyqxEvVRPOxZs4LPbVYg1/JkGCH?= =?us-ascii?Q?c8+iGMFDpQXO0igPHRFE0U9s/ll1xKOCb2qS60qqE+AfWRuW6Vf1Ubn6bRsN?= =?us-ascii?Q?NVhwF5OoGsTPGtBemxaI/ZIfcAlAdev3WfWSgf/a26bkLeKtYhU9zRuX5gJM?= =?us-ascii?Q?QEZLFQknRXiGGq/W44R5VN7balMWXMz+KSSh6k3Z1qpJNBgCHNQAnMguHpbk?= =?us-ascii?Q?dkuSNfIWU08Ee+Hte5zZF19w+x2Zydp0rkqVY5FAKLyUWPCtUEcEdb2CrXN7?= =?us-ascii?Q?F24/38bLtxFQEWtrrJP74qha?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR11MB1272.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e59eb5b-7d95-46a3-a9cf-08d8e883f71c X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2021 14:01:15.6026 (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: tMBaelg8R9RY0C4aohM1VQNn9ew3mnMgw3qY37Je2bd/CmlXbfFQmj5kQpJ2t3Zc1dj4+LC1tcFu4CjoO8uE5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR11MB1270 Return-Path: eric.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Eric Dong -----Original Message----- From: Lou, Yun =20 Sent: Monday, March 15, 2021 9:49 PM To: devel@edk2.groups.io Cc: Lou, Yun ; Ni, Ray ; Dong, Eric ; Laszlo Ersek ; Kumar, Rahul1 Subject: [PATCH v2 1/1] UefiCpuPkg/CpuCacheInfoLib: Collect cache associati= ve type REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3265 Support collecting cache associative type in CpuCacheInfoLib. This prevents the user from using additional code to obtain the same information. Signed-off-by: Jason Lou Cc: Ray Ni Cc: Eric Dong Cc: Laszlo Ersek Cc: Rahul Kumar --- UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c | 49 ++++++++= +++--------- UefiCpuPkg/Include/Library/CpuCacheInfoLib.h | 15 +++++- UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h | 15 +++++- 3 files changed, 53 insertions(+), 26 deletions(-) diff --git a/UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c b/UefiCpu= Pkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c index d46fb0425851..126ee0da86fc 100644 --- a/UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c +++ b/UefiCpuPkg/Library/CpuCacheInfoLib/CpuCacheInfoLib.c @@ -1,7 +1,7 @@ /** @file Provides cache info for each package, core type, cache level and cache t= ype. =20 - Copyright (c) 2020 Intel Corporation. All rights reserved.
+ Copyright (c) 2020 - 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -23,18 +23,18 @@ CpuCacheInfoPrintCpuCacheInfoTable ( { UINTN Index; =20 - DEBUG ((DEBUG_INFO, "+-------+------------------------------------------= -------------------------------------+\n")); - DEBUG ((DEBUG_INFO, "| Index | Packge CoreType CacheLevel CacheType = CacheWays CacheSizeinKB CacheCount |\n")); - DEBUG ((DEBUG_INFO, "+-------+------------------------------------------= -------------------------------------+\n")); + DEBUG ((DEBUG_INFO, "+-------+------------------------------------------= --------------------------------------------+\n")); + DEBUG ((DEBUG_INFO, "| Index | Packge CoreType CacheLevel CacheType = CacheWays (FA|DM) CacheSizeinKB CacheCount |\n")); + DEBUG ((DEBUG_INFO, "+-------+------------------------------------------= --------------------------------------------+\n")); =20 for (Index =3D 0; Index < CpuCacheInfoCount; Index++) { - DEBUG ((DEBUG_INFO, "| %4x | %4x %2x %2x %2x = %4x %8x %4x |\n", Index, - CpuCacheInfo[Index].Package, CpuCacheInfo[Index].CoreType, CpuCach= eInfo[Index].CacheLevel, - CpuCacheInfo[Index].CacheType, CpuCacheInfo[Index].CacheWays, CpuC= acheInfo[Index].CacheSizeinKB, - CpuCacheInfo[Index].CacheCount)); + DEBUG ((DEBUG_INFO, "| %4x | %4x %2x %2x %2x = %4x ( %x| %x) %8x %4x |\n", + Index, CpuCacheInfo[Index].Package, CpuCacheInfo[Index].CoreType, = CpuCacheInfo[Index].CacheLevel, + CpuCacheInfo[Index].CacheType, CpuCacheInfo[Index].CacheWays, CpuC= acheInfo[Index].FullyAssociativeCache, + CpuCacheInfo[Index].DirectMappedCache, CpuCacheInfo[Index].CacheSi= zeinKB, CpuCacheInfo[Index].CacheCount)); } =20 - DEBUG ((DEBUG_INFO, "+-------+------------------------------------------= -------------------------------------+\n")); + DEBUG ((DEBUG_INFO, "+-------+------------------------------------------= --------------------------------------------+\n")); } =20 /** @@ -160,6 +160,7 @@ CpuCacheInfoCollectCoreAndCacheData ( CPUID_CACHE_PARAMS_EAX CacheParamEax; CPUID_CACHE_PARAMS_EBX CacheParamEbx; UINT32 CacheParamEcx; + CPUID_CACHE_PARAMS_EDX CacheParamEdx; CPUID_NATIVE_MODEL_ID_AND_CORE_TYPE_EAX NativeModelIdAndCoreTypeEax; COLLECT_CPUID_CACHE_DATA_CONTEXT *Context; CPUID_CACHE_DATA *CacheData; @@ -185,17 +186,19 @@ CpuCacheInfoCollectCoreAndCacheData ( CacheParamLeafIndex =3D 0; =20 while (CacheParamLeafIndex < MAX_NUM_OF_CACHE_PARAMS_LEAF) { - AsmCpuidEx (CPUID_CACHE_PARAMS, CacheParamLeafIndex, &CacheParamEax.Ui= nt32, &CacheParamEbx.Uint32, &CacheParamEcx, NULL); + AsmCpuidEx (CPUID_CACHE_PARAMS, CacheParamLeafIndex, &CacheParamEax.Ui= nt32, &CacheParamEbx.Uint32, &CacheParamEcx, &CacheParamEdx.Uint32); =20 if (CacheParamEax.Bits.CacheType =3D=3D 0) { break; } =20 - CacheData[CacheParamLeafIndex].CacheLevel =3D (UINT8)CacheParamEax= .Bits.CacheLevel; - CacheData[CacheParamLeafIndex].CacheType =3D (UINT8)CacheParamEax= .Bits.CacheType; - CacheData[CacheParamLeafIndex].CacheWays =3D (UINT16)CacheParamEb= x.Bits.Ways; - CacheData[CacheParamLeafIndex].CacheShareBits =3D (UINT16)CacheParamEa= x.Bits.MaximumAddressableIdsForLogicalProcessors; - CacheData[CacheParamLeafIndex].CacheSizeinKB =3D (CacheParamEbx.Bits.= Ways + 1) * + CacheData[CacheParamLeafIndex].CacheLevel =3D (UINT8)CacheP= aramEax.Bits.CacheLevel; + CacheData[CacheParamLeafIndex].CacheType =3D (UINT8)CacheP= aramEax.Bits.CacheType; + CacheData[CacheParamLeafIndex].CacheWays =3D (UINT16)Cache= ParamEbx.Bits.Ways; + CacheData[CacheParamLeafIndex].FullyAssociativeCache =3D (UINT8)CacheP= aramEax.Bits.FullyAssociativeCache; + CacheData[CacheParamLeafIndex].DirectMappedCache =3D (UINT8)CacheP= aramEdx.Bits.ComplexCacheIndexing; + CacheData[CacheParamLeafIndex].CacheShareBits =3D (UINT16)Cache= ParamEax.Bits.MaximumAddressableIdsForLogicalProcessors; + CacheData[CacheParamLeafIndex].CacheSizeinKB =3D (CacheParamEb= x.Bits.Ways + 1) * (CacheParamEbx.Bits.LinePartitions + 1) * (CacheParamEbx.Bits.Line= Size + 1) * (CacheParamEcx + 1) / SIZE_1KB; =20 CacheParamLeafIndex++; @@ -305,13 +308,15 @@ CpuCacheInfoCollectCpuCacheInfoData ( if (CacheInfoIndex =3D=3D LocalCacheInfoCount) { ASSERT (LocalCacheInfoCount < MaxCacheInfoCount); =20 - LocalCacheInfo[LocalCacheInfoCount].Package =3D ProcessorInfo[= Index / MAX_NUM_OF_CACHE_PARAMS_LEAF].Package; - LocalCacheInfo[LocalCacheInfoCount].CoreType =3D ProcessorInfo[= Index / MAX_NUM_OF_CACHE_PARAMS_LEAF].CoreType; - LocalCacheInfo[LocalCacheInfoCount].CacheLevel =3D CacheData[Inde= x].CacheLevel; - LocalCacheInfo[LocalCacheInfoCount].CacheType =3D CacheData[Inde= x].CacheType; - LocalCacheInfo[LocalCacheInfoCount].CacheWays =3D CacheData[Inde= x].CacheWays; - LocalCacheInfo[LocalCacheInfoCount].CacheSizeinKB =3D CacheData[Inde= x].CacheSizeinKB; - LocalCacheInfo[LocalCacheInfoCount].CacheCount =3D 1; + LocalCacheInfo[LocalCacheInfoCount].Package =3D Proces= sorInfo[Index / MAX_NUM_OF_CACHE_PARAMS_LEAF].Package; + LocalCacheInfo[LocalCacheInfoCount].CoreType =3D Proces= sorInfo[Index / MAX_NUM_OF_CACHE_PARAMS_LEAF].CoreType; + LocalCacheInfo[LocalCacheInfoCount].CacheLevel =3D CacheD= ata[Index].CacheLevel; + LocalCacheInfo[LocalCacheInfoCount].CacheType =3D CacheD= ata[Index].CacheType; + LocalCacheInfo[LocalCacheInfoCount].CacheWays =3D CacheD= ata[Index].CacheWays; + LocalCacheInfo[LocalCacheInfoCount].FullyAssociativeCache =3D CacheD= ata[Index].FullyAssociativeCache; + LocalCacheInfo[LocalCacheInfoCount].DirectMappedCache =3D CacheD= ata[Index].DirectMappedCache; + LocalCacheInfo[LocalCacheInfoCount].CacheSizeinKB =3D CacheD= ata[Index].CacheSizeinKB; + LocalCacheInfo[LocalCacheInfoCount].CacheCount =3D 1; =20 LocalCacheInfoCount++; } diff --git a/UefiCpuPkg/Include/Library/CpuCacheInfoLib.h b/UefiCpuPkg/Incl= ude/Library/CpuCacheInfoLib.h index a7f29b188775..a66152bce009 100644 --- a/UefiCpuPkg/Include/Library/CpuCacheInfoLib.h +++ b/UefiCpuPkg/Include/Library/CpuCacheInfoLib.h @@ -1,7 +1,7 @@ /** @file Header file for CPU Cache info Library. =20 - Copyright (c) 2020, Intel Corporation. All rights reserved.
+ Copyright (c) 2020 - 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -33,7 +33,18 @@ typedef struct { // Ways of associativity. // Value =3D CPUID.04h:EBX[31:22] // - UINT16 CacheWays; + UINT16 CacheWays : 10; + // + // Fully associative cache. + // Value =3D CPUID.04h:EAX[09] + // + UINT16 FullyAssociativeCache : 1; + // + // Direct mapped cache. + // Value =3D CPUID.04h:EDX[02] + // + UINT16 DirectMappedCache : 1; + UINT16 Reserved : 4; // // Size of single cache that this package's this type of logical process= or corresponds to. // Value =3D (CPUID.04h:EBX[31:22] + 1) * (CPUID.04h:EBX[21:12] + 1) * diff --git a/UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h b= /UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h index de56db9c0cbe..b6e6ae5bc50a 100644 --- a/UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h +++ b/UefiCpuPkg/Library/CpuCacheInfoLib/InternalCpuCacheInfoLib.h @@ -1,7 +1,7 @@ /** @file Internal header file for CPU Cache info Library. =20 - Copyright (c) 2020, Intel Corporation. All rights reserved.
+ Copyright (c) 2020 - 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -52,7 +52,18 @@ typedef struct { // Ways of associativity. // Value =3D CPUID.04h:EBX[31:22] // - UINT16 CacheWays; + UINT16 CacheWays : 10; + // + // Fully associative cache. + // Value =3D CPUID.04h:EAX[09] + // + UINT16 FullyAssociativeCache : 1; + // + // Direct mapped cache. + // Value =3D CPUID.04h:EDX[02] + // + UINT16 DirectMappedCache : 1; + UINT16 Reserved : 4; // // Cache share bits. // Value =3D CPUID.04h:EAX[25:14] --=20 2.28.0.windows.1