From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.84]) by mx.groups.io with SMTP id smtpd.web10.13619.1679035946268162655 for ; Thu, 16 Mar 2023 23:52:26 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=x/Gndr4j; 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.93.84, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B3FKirlztfa97NbgGrQujANUBAwSMdSVNAISF/R0z08GyrNhLgh4mEsk9j8dj/sLBKdNB2RoW+UbOrYMea7JL7CIWFXUaHtX56UFRmBIdotLg71Qgbaxx11ouacE2PaslbIpOEF1KQViiwXfDTafYmoReo4UQO9HEopIYoCzxZxWarNgiymz5awr4t0rxgwx3YVZ+LyhESRfLc33p/5gCYdQuXwcrhFfa3ylJS4NX2ayr2Kdvz16r9Vm6LwKKnNDCFpWHbc9KNZ05RTBYb5f1mcZAeo083CgILCKnkYxzbrvlqZ9Sk4nkP8IFpCXQO3x/DtvxYW9KMjZ+HU1fj4cFg== 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=eQ2G0EfhKsCX9xacekyM/Es7uZfSUZq3oLcn50aqgNI=; b=XkvYThJir6o4ulGxjETDG0a0wFZ9tfQWFReDnNVkzWlYsdyx0CxnpF6VpERJf0cX7L3USMNgQJmwRtg0r4+B4YPFKOXl8bF/vr+ebOWGRTdzEe0NgLPyADIE3mvUTpWO+jSFKlejoAaBCa1UB9QRl+5W847ma3r8ZIEH5nbGCAa8+3eZArzmbZI6w55215yoDecgG2Gv/vr8COKh8x+B7utBY6B5ZcFs1+cKWWnrFSnoKkcu7dZQZPlAw7hJul4pCba/rbw8L79ErhdMI5/F4j+/cJq+eNsrDPgFugcS3Lvm+e2USK+ZI2TJSf/GaCmno9QWQXTyj4a0omOzQ3ANRA== 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=eQ2G0EfhKsCX9xacekyM/Es7uZfSUZq3oLcn50aqgNI=; b=x/Gndr4j3SK64l/y/prceLkWAzU/Gbo7AJJw2mc9TOv544xJhKayOnfsImNOaF6JG0bkFg5T3gBlW+SXHmwdEP+7IuriEjr++eQwHUipZWlbbawXhSWIiEgwZDYaNlA+Eh3Cl8Gd17PdbTjiOAF4i2Lqo6mIo1waRSJ5YMqm5kc= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by PH7PR12MB5757.namprd12.prod.outlook.com (2603:10b6:510:1d0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.31; Fri, 17 Mar 2023 06:52:23 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::8136:1f56:53e5:6fe]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::8136:1f56:53e5:6fe%3]) with mapi id 15.20.6178.024; Fri, 17 Mar 2023 06:52:23 +0000 From: "Chang, Abner" To: "Attar, AbdulLateef (Abdul Lateef)" , "devel@edk2.groups.io" CC: "Attar, AbdulLateef (Abdul Lateef)" , Ard Biesheuvel , Leif Lindholm , 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: AQHZWJzB24glqsjJ4EC30d5NaJrEJK7+iMxQ Date: Fri, 17 Mar 2023 06:52:23 +0000 Message-ID: References: <60ddb8be3b32bc6ff9745a51eef1f857c428a0f4.1679035605.git.abdattar@amd.com> In-Reply-To: <60ddb8be3b32bc6ff9745a51eef1f857c428a0f4.1679035605.git.abdattar@amd.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-03-17T06:52:21Z; 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_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=b22e49ec-1820-4941-89eb-0f4d3fc73611; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 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: MN2PR12MB3966:EE_|PH7PR12MB5757:EE_ x-ms-office365-filtering-correlation-id: bcf08fc0-d000-4f2f-3947-08db26b42981 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CFyO3L60lgrfq4XjFpMolhuHO75fppt5sXEN8uS2he7OdeAYYGaXpubtEVOfrVObPZy8NUzO6hIUg/xzkT1SkmgES7VQWZ0qKO8aIlUmhOsKrmw4AQ2K2V715CrwHvL6f7md74OFE2/xQjWzRktXk1JbhsTVsuShk03dAkb2V+sosaCx8juL3hurer5TMDdcbe0e5INk8x2IWkOmPp8hTtvcOwMUkU3kyPCxiOK31KdBI97cy52wp4kBipsUcQQUECOzvqdkrAjlrECHFEbX01a/cyBY5tC2/5j9cLcpZvz+wm2vOTbh+pUYonxjC9/Xa7JRO216EPTIVzaQtpgfpzro1PzyBnrtnQoVN7/3hIrpx5tCP8tgntPEl/dldFXEnXOIWLqKGdZzn4fEtgC8PnaRhR0k0usBnIMIxt1RfHAPmm4hr4AJ1/GRj+n35BWrX6AgxCavdjNbAgmWOcqGtCUWRhsOCqYYDZjdcoPfnzmaklfZLEOwuhqxCbLkdRJifDJwNz1YA0Jd7Us16ZHmukb5WP8JTWF/vjsyshxUxb+xdhkYUloSRBZMoDeB662qaMn+voQQgXPCA1Z3QoiLnbNveFESysE6YfLP42qNcaQ4EFNx7n5JsvzAeqOhvkM0B0V8YgIKA18dC5YamIU53mhnrWj5o9msT2Fgn1QExMheNgiaaQvcz4y6o6bYejazsunqIoDttWHJP1xHcPHD0A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(366004)(39860400002)(376002)(136003)(396003)(346002)(451199018)(38100700002)(38070700005)(86362001)(33656002)(122000001)(5660300002)(2906002)(52536014)(41300700001)(8936002)(71200400001)(55016003)(83380400001)(66946007)(4326008)(6506007)(26005)(186003)(9686003)(53546011)(54906003)(110136005)(316002)(66446008)(7696005)(76116006)(66556008)(478600001)(66476007)(64756008)(8676002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?i12iB6NAk5z2uPCDYBjJm9OLPYhm7jznjyty3eRigR3grkA7mHxcNc4+Z+D4?= =?us-ascii?Q?EzHBKVQ0ACd61HOKccQJxMYc9xgXsPe+i9mGJ3vqe6VS+Tb2tPfYcYkX5jLV?= =?us-ascii?Q?QGGOrRqY+7dPjS4wpo4RoULbwOUyBmJsHrRstTwFok5fFO42swd5hEsP8HPN?= =?us-ascii?Q?nCqkGyjefZ5qDhWN8inZgowZRGJxZtyI7zTquUvvJqUgBbxnV8oY1TJd70cD?= =?us-ascii?Q?Jp4/QxXrzq2u5cN9v+l2p5j0LuUgFIFYrhfyvj/X7zryU4lr2xeLh55VY36O?= =?us-ascii?Q?jsHtbRijzESrFZF2UYMATu8lU2pbdtt0ZGEEsYlACTMs10EzgJcA0o4rsms+?= =?us-ascii?Q?d5lq8EJrDiDAfF+aYVxWmw3BytAasnmRlaT7/fbUeWIPtmilrGDuWeKAG8/P?= =?us-ascii?Q?rcXnLLQyF8oqhlyxHEK5mxzg6fT2AaRkXcnHt5/UYaAZT8iYDGRLtpREO/0R?= =?us-ascii?Q?17YNsZ3iSfJe0OwLJ5b7mLPJHuxHHKxmT89ZrAcds9tWfDJkrKEP+DfbnEl5?= =?us-ascii?Q?QpIEX16TEhV0G9RuCrdIzjXf7ry9VbSBfiRn25xoNSlkO/bgS+pVr2Ksao17?= =?us-ascii?Q?mHC2o5aHCpDYB2tjo7sutMnURHdsHra+HombYCYoqwpLkRJXZqtnrKSBBvgQ?= =?us-ascii?Q?meXE6doKCzfdub86Y+RcXs/vcKY/EdTakrkpfJH+Iq0ZR+TJo2aYpWoUBmO5?= =?us-ascii?Q?vAa7nKT2CbTJSvM0/lP66oVQefGiJs9wESBQGiNBgsmIIi9jikYzcCRiEWla?= =?us-ascii?Q?BSp/CNKHqLyVhF5MfzYQwGZ1MjhdqAMvJE9OuXToYJrJ1xgbh0TPOSAPmbfM?= =?us-ascii?Q?NOsPiwVbxnVec8XbAjAZIrBcC77z53BmPnzktlgeCpljZgs1r7oz0+wluXEq?= =?us-ascii?Q?7Ysl51EZOXPNWzzhpFDuUHzn/kSN3Y9qRJVPV0+/aMTEluJCXYpRKYDrdbVZ?= =?us-ascii?Q?kZAsA0QOsV5GKIXPrfeBlSidEkpvW1ktTWeN6+xduivXps9O59V4YnHkgWTU?= =?us-ascii?Q?9EB3EWy/7Qbm+ucQiatq0LSKGMaT38l8G2DmN4JkphGgHmWxEPifL6OMqvqm?= =?us-ascii?Q?v4hhnhYYk4rVvdDY3ajuygSDSMWoRWjevsATuDmC+RjHcQ21KyKMhIg5qW2k?= =?us-ascii?Q?nvGLOLBmgzH4sfbKNgEJ4hBXWN+L/deHDS+lKsRbU7CafXJnFUT8djTDy5XF?= =?us-ascii?Q?ur8XzE5aH6uaLRbJOW73s9FkzVDQ4nQASMqmWOiovq/1ybEFG3C1e8rUvWIO?= =?us-ascii?Q?84tpbWsQsTec7/WRQOWws9OEG9dVqWCXMqKwMlG1bgT5pt2l7Q0ZWn0MlOMB?= =?us-ascii?Q?frEBwyT0nKzcxo50iEGbva6iwprH694p6wmFDSVEiduxiUg3AmRGGvXIgOzK?= =?us-ascii?Q?KIKbLZQz+CiYRUbBSnNe29YRNrsP0RT5rcoYVTdCBqp7HP/H5ePyysDGzXTo?= =?us-ascii?Q?wS/PGqAVDh9u3/3Ahwc+OX0RSyzRo4MywtMxLDvfy1Q/9h5+iIvkThDkUt3V?= =?us-ascii?Q?JLuzwgAvgoPYljM9m8FIahUblIW/TAxx3lOo4HbJ7VBIUgPX5zbPVSUQsBdX?= =?us-ascii?Q?LNy7HIGa4GfBkeA7WQs4RfQELw9Ditk81OpTR+pW?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bcf08fc0-d000-4f2f-3947-08db26b42981 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Mar 2023 06:52:23.5204 (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: SsJKSgcI4Qanweo+K/53bEIQ7kFFzteA4nj0pc04Os+SN978IVoVmfk0NwJIwAb7bE87Pzi2cIPjNwQniyWwvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5757 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Reviewed-by: Abner Chang > -----Original Message----- > From: Abdul Lateef Attar > Sent: Friday, March 17, 2023 2:50 PM > To: devel@edk2.groups.io > Cc: Attar, AbdulLateef (Abdul Lateef) ; Ard > Biesheuvel ; Leif Lindholm > ; Chang, Abner ; > Michael D Kinney > Subject: [PATCH v2 RESEND 3/4] Platform/AMD/BoarkPkg: Adds > SetCacheMtrrLib library >=20 > Adds SetCacheMtrrLib library for AMD processor based boards. > This library sets MTRR value or various memory ranges. >=20 > 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 >=20 > 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] >=20 > [Packages] > BoardPkg/BoardPkg.dec > + MinPlatformPkg/MinPlatformPkg.dec > + MdePkg/MdePkg.dec > + UefiCpuPkg/UefiCpuPkg.dec > + > +[LibraryClasses.common.PEIM] > + SetCacheMtrrLib|BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.inf > + > +[Components.IA32] > + BoardPkg/Library/SetCacheMtrrLib/SetCacheMtrrLib.inf > + > 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.inf > @@ -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 > + UefiCpuPkg/UefiCpuPkg.dec > + > +[Sources] > + SetCacheMtrrLib.c > + > +[Guids] > + > +[Pcd] > + gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaBaseAddress > + gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize > + > 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