From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.58]) by mx.groups.io with SMTP id smtpd.web10.10112.1679306547911024129 for ; Mon, 20 Mar 2023 03:02:28 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=eKcWrs7j; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.220.58, mailfrom: abdullateef.attar@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jnqxse9KMOcZnPw9VZDEBv1C2Tx31uPeHlA3xgRnuJ6g/WJqti5P3MDkTy82c+Ikq9PfXFetYRi1g/5G80r3nOrShEciXp2Gh/CdaX0hhCUDP4ggfLwbNfX84PerZXakz7I88tRIYPgV/Ed7hIiPXIiQNQXxJDevjhkqWjG8wYE8lyu3wJALs1WlE0/Cc86kwWC/rX+308Av52kk4qEe0IuREheq8DaujIBo9hgExOufesE799fHlArVysU2DpY7RhqP8nnFV54NbOai8i88Ma8AnVTtLamzyDFHM+a941oa5K/GNLPOj2/kwWaRynZpa3fmSO0oLhbDIWf5kHowdg== 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=NSqu86zOuc3PCtjQk8Pz9e2x2IaxZZufoAj/fM6E5UI=; b=HMLHRO6OnMJ2SUyVNkcJLdaTDMWJv/MtGmMu46lPAT1fWeUQ9wjjWvKcM420AxE3tqfU0ZnQ5Bw7euLuUTsbxLybA4LUufmgNO7eroTCqfsNubZ0MhVP9v7/u/GeYqsJbvFsDS/K0kiue6iRP3ZRJfN0+HEif11/s3yNWXS3m9YHBAOR81nvYCo4vOPdFdMszKApYetA1buqT021rnjUWgf2xrrZlUbh3ICpHFyu+R9pkc4OviRRBgXPV1QVm/0FN47tgvkodMFP6Cim0ulcR2oMkT9Sax+R0npkFUMlvpAbzMbhbEJ5HRti8S78vgRMGBL9KXM6N5H1vDejoYyDZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NSqu86zOuc3PCtjQk8Pz9e2x2IaxZZufoAj/fM6E5UI=; b=eKcWrs7jgoWonQJElQGo4xRhyXllY/KgI/nP4EIDs5AmYXMyomREouqlE2uc/0or3rGpaQLaLdlVDoJfgzNBRFTQD6zc3TXkiNk3q1RevuQl5QJmWWsbyqPrD5OTfUaFHIUMDSmgPd8vSnmJan1H7ySIHjQ8bV9gnk+FA42kkeg= Received: from PH7PR12MB6466.namprd12.prod.outlook.com (2603:10b6:510:1f6::22) by CY8PR12MB7707.namprd12.prod.outlook.com (2603:10b6:930:86::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Mon, 20 Mar 2023 10:02:22 +0000 Received: from PH7PR12MB6466.namprd12.prod.outlook.com ([fe80::127d:946f:b238:1151]) by PH7PR12MB6466.namprd12.prod.outlook.com ([fe80::127d:946f:b238:1151%2]) with mapi id 15.20.6156.027; Mon, 20 Mar 2023 10:02:22 +0000 From: "Attar, AbdulLateef (Abdul Lateef)" To: Leif Lindholm CC: "devel@edk2.groups.io" , Ard Biesheuvel , "Chang, Abner" , Michael D Kinney Subject: Re: [PATCH v2 RESEND 3/4] Platform/AMD/BoarkPkg: Adds SetCacheMtrrLib library Thread-Topic: [PATCH v2 RESEND 3/4] Platform/AMD/BoarkPkg: Adds SetCacheMtrrLib library Thread-Index: AQHZWJzBgaCKamVZY02oKhl9phUiHa7/IcCAgARTDrA= Date: Mon, 20 Mar 2023 10:02:22 +0000 Message-ID: References: <60ddb8be3b32bc6ff9745a51eef1f857c428a0f4.1679035605.git.abdattar@amd.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=4e04ef9f-68d5-4eb4-92fb-5bb7689e79d4;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-03-20T10:02:01Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR12MB6466:EE_|CY8PR12MB7707:EE_ x-ms-office365-filtering-correlation-id: b27743e5-9460-4837-7093-08db292a332c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YNg4Yha8F9QEwSz91mJUJsGzeXw6/TMCHp8yxDhfH695nY5DVTwR4LDdZdBS7GWB65brDSJquHVWEi9TRrfCPzhETBJSzSqhG/b6JDwHYP1rwhHaanUrg/FE251vKRxQKFjpty1C6zqnktnIbKfGXLtn/aO1HYvMmLyLFKP/TN4WhZu6lO+dP/TN+vmKSwiksc9dT0FEhny8fSwdcXtmKM2c81OPaRLAF6+5uir+bixUivyqsYAnF70SrUVt56GllsjZ5D31RgoHW13CnjqpRm6Iu4MCKlRM53k3ttiuAQFIp+znH4oAcGuZeb7GUlATv4xXOK6TwOp2wRErnFBbS0wE8QgcFY3bW/5hCiQq7D3yeQxdpbeM6K8/k29MawE11PdOzkEg0Ot/NwI12PzEGmvkmxbyAgFs9PnQy+XI+ydY9t+F297LhA2m/o/HNedgJ7YDtD5XPIpItTfl3HTyYwhm5wWR37TwwVxEanW1pqm4oDMFydv3LWQaLj3pl3HJ7iGUV4ZdtdlO5Cb04sHqykS9B7uQi7uPMBsYBf45tNXNJX+6ozmoSWdHW6ZSMVWF/dCqh8P2t0lpF1aCIt6ZYr7Dhu0hbovwiAbZLNTqZNxWfhA6MDpHOg/FocZkuOYHuM7gP24qw0tQx6PozcAWgyM/EucpSDMytOqdA2ImXE9/RuvUTaHFoVtYRV/PBKgEf5am2K5ThP80E7ey9AEAZA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB6466.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(346002)(136003)(396003)(39860400002)(366004)(376002)(451199018)(122000001)(86362001)(55016003)(33656002)(38100700002)(38070700005)(8936002)(5660300002)(2906002)(71200400001)(7696005)(4326008)(64756008)(8676002)(6916009)(66446008)(76116006)(66946007)(66556008)(66476007)(478600001)(52536014)(316002)(41300700001)(54906003)(83380400001)(6506007)(53546011)(9686003)(26005)(186003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?HwJ4/Um0+2ig8IgIxLVwEqqU2RP7Cf6hVt9a9j44LHVr2BLGeGcrvhTI1bbX?= =?us-ascii?Q?nwQvQydFvlg/EFOpJ0EfB5oDsnP4YtSm5doCXHhEkgw+OmOYHimxlSeZIxmc?= =?us-ascii?Q?A+6P5zAz2tPG2o+tQQZ86inMWi+lougEZHHXeMy5DFChgRjqr13lvL2gISav?= =?us-ascii?Q?7GTGdUTN9upvjqp/DHaZ5FJqvWYpdenCnQNSoNx0y25X9pJmYyxX1VVKd0mY?= =?us-ascii?Q?ws+N3glNao4Gf7/LFKTAIW0cykW5ERQ8vwMtJjHJzNvDbSh0Bi8yG4s08iqA?= =?us-ascii?Q?W+3p8ezTLPzpJj3ChUxZwxRP6UIis31bonKHkJssiW8+ehPE6C68f6Oze9Aj?= =?us-ascii?Q?EqOQjWrbyK+VVQ3aTE9pOqmQ8IV1M8DAogeyM8GWT///wONbfA+8bMFenrHO?= =?us-ascii?Q?biFfti+QUc7eRAvDFMuHW5vF8/95vyWPNzShYZ8FIs6K318BvrQFC1uFAwu/?= =?us-ascii?Q?IEJ2FlQ3rBcEDKY/IJLCLSl8/7YSbLBxLRmAiW4Mvk+jXgkbDcnMDYy18ULC?= =?us-ascii?Q?oj8e0dLBPHPLc6c/qtCp9tmmZewXe/iypKlYJ0aGLQKzqjVyw4XfBFCSAfvQ?= =?us-ascii?Q?g/HesxXFzNecwN7OXm0ZsadWjzex/wdQJvf372hCO9qTiABmjyMRZjspliFm?= =?us-ascii?Q?ZkaZQo5F4QEuQdOc7oyfVfu1US0Z4kUQj7S1E0dPsPp0MaUN1MQRx6BZAVCQ?= =?us-ascii?Q?RNkXmTUAA9/NEwnrBMu7idnyueH/0NRaI6hMenHvlEb9Ir6hrMVb5HzOT0uY?= =?us-ascii?Q?RR/bB7pqJOKvuc+3gmWKAAiisMVeYnjCIiT/kn0p2ppssoa56i0FpCXApyKU?= =?us-ascii?Q?s7AWh5QS4vxtc4D2cfAtPFXN3cyQDJz7M/U4lM8XJGlGH2yTHDN78jsRFv0p?= =?us-ascii?Q?i7KZV79398lCUEeoeyCcF6Vw8+fLpc2G1g4hM7Ci+GqEs95tbUz2Rm+jaWu/?= =?us-ascii?Q?F/BNLTxCfguUZzbx8qqQmTGjmDN+bqvpEPid2Umwp1N/u4YWuKzmSCMfnrld?= =?us-ascii?Q?dGpOA+ImlnAJ5iKrtH8doUETGilrUR4Vi7uWAnqlrCX5IU+F2vr3HntdqhFa?= =?us-ascii?Q?OEOy36GLpx4tydjQAczqOCw8gImwMgtn52tFRQeMyyUg4axkKEtKIg5rDKGj?= =?us-ascii?Q?l0DrPO7v+FphTYl7r8L2ZGbhHkOm3Kview288X9LMzFMQhb507uQ3eb2FX3Y?= =?us-ascii?Q?QkOLcIAsvPaZe9mATuXNDY5m+L2WH0eadZGIF+/RRftsDjbx2nLm8xS9MTCC?= =?us-ascii?Q?kzvYznE1jjM6TkyGQqSMFpBy47CqL1pw0XeI4kmUksre/lh4B+uqMkV0Crtr?= =?us-ascii?Q?cfZJq1ZkA2YTWSkb7vkvLpLwtm0qSLt18rZufVLOssxK/Mi1e3NhJ/rd+Fr0?= =?us-ascii?Q?3IWrThBzq6Os+jKYEGCUCQgiOC8uelaVm2eAOdfehOONnf84NOQFvuP7ZU23?= =?us-ascii?Q?0eHznIHlpbm4d8Y9/guR3kynwJtnF0MDYMgG1P54zRdgsGs78XCW1VwBlbih?= =?us-ascii?Q?7Hkq9jM9AvK2YVaFZXVIh3lzx2adXXxoZ9j4kgMc/j28w9/V7J2AL7ujg75v?= =?us-ascii?Q?HHZNx+nm33R4n5xl56cYc8c+2u+R1fNFZKj5OuAG?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB6466.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b27743e5-9460-4837-7093-08db292a332c X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Mar 2023 10:02:22.6660 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5yCAfY4pyZVMan9lzr95yBAd9G+ZChAhhlk2c4emq8ZFnTNc4ecfZupWzjMyDQ+x4nXEwoYLsm6ue2f5Ugsq2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7707 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Thanks for reviewing, will submit V3 patch. -----Original Message----- From: Leif Lindholm Sent: 17 March 2023 21:30 To: Attar, AbdulLateef (Abdul Lateef) Cc: devel@edk2.groups.io; Ard Biesheuvel ; Chang= , Abner ; Michael D Kinney Subject: Re: [PATCH v2 RESEND 3/4] Platform/AMD/BoarkPkg: Adds SetCacheMtrr= Lib library Caution: This message originated from an External Source. Use proper cautio= n when opening attachments, clicking links, or responding. Typo in subject: BoarkPkg On Fri, Mar 17, 2023 at 12:20:06 +0530, Abdul Lateef Attar wrote: > Adds SetCacheMtrrLib library for AMD processor based boards. > This library sets MTRR value or various memory ranges. > > Signed-off-by: Abdul Lateef Attar > Cc: Ard Biesheuvel > Cc: Leif Lindholm > Cc: Abner Chang > Cc: Michael D Kinney > --- > Platform/AMD/BoardPkg/BoardPkg.dsc | 10 ++ > .../SetCacheMtrrLib/SetCacheMtrrLib.inf | 37 +++++ > .../Library/SetCacheMtrrLib/SetCacheMtrrLib.c | 132 > ++++++++++++++++++ > 3 files changed, 179 insertions(+) > create mode 100644 > Platform/AMD/BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.inf > create mode 100644 > Platform/AMD/BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.c > > diff --git a/Platform/AMD/BoardPkg/BoardPkg.dsc > b/Platform/AMD/BoardPkg/BoardPkg.dsc > index cb4065b86c60..aa0ee8287cd8 100644 > --- a/Platform/AMD/BoardPkg/BoardPkg.dsc > +++ b/Platform/AMD/BoardPkg/BoardPkg.dsc > @@ -18,3 +18,13 @@ [Defines] > > [Packages] > BoardPkg/BoardPkg.dec > + MinPlatformPkg/MinPlatformPkg.dec > + MdePkg/MdePkg.dec Sort? > + UefiCpuPkg/UefiCpuPkg.dec > + > +[LibraryClasses.common.PEIM] > + > +SetCacheMtrrLib|BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.inf > + > +[Components.IA32] > + BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.inf > + Please drop blank line at end of file. > diff --git > a/Platform/AMD/BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.inf > b/Platform/AMD/BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.inf > new file mode 100644 > index 000000000000..c66661d3f8dc > --- /dev/null > +++ b/Platform/AMD/BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.in > +++ f > @@ -0,0 +1,37 @@ > +## @file > +# Component information file for Platform SetCacheMtrr Library. > +# This library implementation is for AMD processor based platforms. > +# > +# Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > +reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # ## > + > +[Defines] > + INF_VERSION =3D 1.29 > + BASE_NAME =3D PeiSetCacheMtrrLib > + FILE_GUID =3D 1E8468E0-5EB4-4088-9B52-BFDC6E4DAE8= 7 > + MODULE_TYPE =3D PEIM > + VERSION_STRING =3D 1.0 > + LIBRARY_CLASS =3D SetCacheMtrrLib > + > +[LibraryClasses] > + BaseLib > + DebugLib > + MtrrLib > + > +[Packages] > + MinPlatformPkg/MinPlatformPkg.dec > + MdePkg/MdePkg.dec Sort? > + UefiCpuPkg/UefiCpuPkg.dec > + > +[Sources] > + SetCacheMtrrLib.c > + > +[Guids] > + > +[Pcd] > + gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaBaseAddress > + gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize > + Please drop blank line at end of file. / Leif > diff --git > a/Platform/AMD/BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.c > b/Platform/AMD/BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.c > new file mode 100644 > index 000000000000..18404405d9fa > --- /dev/null > +++ b/Platform/AMD/BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.c > @@ -0,0 +1,132 @@ > +/** @file > + > +SetCacheMtrr library functions. > +This library implementation is for AMD processor based platforms. > + > +Copyright (C) 2023 Advanced Micro Devices, Inc. All rights > +reserved.
> + > +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include > +#include > +#include > +#include > + > +/** > + This function sets the cache MTRR values for PEI phase. > +**/ > +VOID > +EFIAPI > +SetCacheMtrr ( > + VOID > + ) > +{ > + EFI_STATUS Status; > + > + Status =3D MtrrSetMemoryAttribute ( > + 0, > + 0xA0000, > + CacheWriteBack > + ); > + if (EFI_ERROR (Status)) { > + DEBUG (( > + DEBUG_ERROR, > + "Error(%r) in setting CacheWriteBack for 0-0x9FFFF\n", > + Status > + )); > + } > + > + Status =3D MtrrSetMemoryAttribute ( > + 0xA0000, > + 0x20000, > + CacheUncacheable > + ); > + if (EFI_ERROR (Status)) { > + DEBUG (( > + DEBUG_ERROR, > + "Error(%r) in setting CacheUncacheable for 0xA0000-0xBFFFF\n", > + Status > + )); > + } > + > + Status =3D MtrrSetMemoryAttribute ( > + 0xC0000, > + 0x40000, > + CacheWriteProtected > + ); > + if (EFI_ERROR (Status)) { > + DEBUG (( > + DEBUG_ERROR, > + "Error(%r) in setting CacheWriteProtected for 0xC0000-0xFFFFF\n", > + Status > + )); > + } > + > + Status =3D MtrrSetMemoryAttribute ( > + 0x100000, > + 0xAFF00000, > + CacheWriteBack > + ); > + if (EFI_ERROR (Status)) { > + DEBUG (( > + DEBUG_ERROR, > + "Error(%r) in setting CacheWriteBack for 0x100000-0xAFFFFFFF\n", > + Status > + )); > + } > + > + Status =3D MtrrSetMemoryAttribute ( > + PcdGet32 (PcdFlashAreaBaseAddress), > + PcdGet32 (PcdFlashAreaSize), > + CacheWriteProtected > + ); > + if (EFI_ERROR (Status)) { > + DEBUG (( > + DEBUG_ERROR, > + "Error(%r) in setting CacheWriteProtected for 0x%X-0x%X\n", > + Status, > + PcdGet32 (PcdFlashAreaBaseAddress), > + PcdGet32 (PcdFlashAreaBaseAddress) + PcdGet32 (PcdFlashAreaSize) > + )); > + } > + > + MtrrDebugPrintAllMtrrs (); > + return; > +} > + > +/** > + Update MTRR setting in EndOfPei phase. > + This function will set the MTRR value as CacheUncacheable > + for Flash address. > + > + @retval EFI_SUCCESS The function completes successfully. > + @retval Others Some error occurs. > +**/ > +EFI_STATUS > +EFIAPI > +SetCacheMtrrAfterEndOfPei ( > + VOID > + ) > +{ > + EFI_STATUS Status; > + > + Status =3D MtrrSetMemoryAttribute ( > + PcdGet32 (PcdFlashAreaBaseAddress), > + PcdGet32 (PcdFlashAreaSize), > + CacheUncacheable > + ); > + if (EFI_ERROR (Status)) { > + DEBUG (( > + DEBUG_ERROR, > + "Error(%r) in setting CacheUncacheable for 0x%X-0x%X\n", > + Status, > + PcdGet32 (PcdFlashAreaBaseAddress), > + PcdGet32 (PcdFlashAreaBaseAddress) + PcdGet32 (PcdFlashAreaSize) > + )); > + } > + > + MtrrDebugPrintAllMtrrs (); > + return EFI_SUCCESS; > +} > -- > 2.25.1 >