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.64]) by mx.groups.io with SMTP id smtpd.web11.15667.1582988757692448815 for ; Sat, 29 Feb 2020 07:05:57 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=4izK+g5b; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.93.64, mailfrom: leo.duran@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PWTU7zuN3WlsBAYiY6MuoI2EGwIyI9uicIPNBNtP8lLEGipioIh1x0AxmEcEjVG3ttP8m1Kd1gH1L99r0wbrSkiY+mqiz9cDPWPws1nVezUcU5YNE+23aeqp/XzA1MR+TJ3a5lF/FUSPJK/5km+O8BTbNYcBgw1rAZXK/XunOfSz1iM0JKyMTBu5p1zWgBZ6Ep3uR/dbVr/YKKZUGYBE4ObQbjTmZlmAAyXxsmsPJ+rTIhip0fUxEErzz76699ViThKtRI8iPeVbtkOwUz53ZhRkgsqh2RbPL3K1I2fpf0tJWL4J3B8EEFj7k1ZEGSvKTpFH6c6J26YEvrPwToFa3w== 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=Yib0az/87jcjHL6G1452+q2JfUBOVttl7S3Vk5wYAig=; b=O1kvXoUvJiG6sNk1m0g72vEPxPmrveEu9LqVxK2jyfCldKEAAUU30xydrQeMEru+2xIzrSJyri+kPBtjRQk8y2x2dUsYe20gA2eRBsVt1l1X4HthNlYL65QiXCv7eSRSwYkbWFm14RYXJBhfHo9mC3W+NUKFW9NymUpCrCH5V3lU+v93vIo2VDqJx6RfOjbGTkO7Gsotce5TLerfdId6JWR7AVLOBauePPxkK6C1/he/MuVZZBGJ18TqTNOH0PHgQu6lU0zcB0tQQrMuKKdkSmbG4BxZrsPM/a70GZXiDhlXeJ0PwsGnrIeBxESP9tQjhWR7YrFmSOz3XblcxsGXmw== 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=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Yib0az/87jcjHL6G1452+q2JfUBOVttl7S3Vk5wYAig=; b=4izK+g5bAxwI470k3QWqfQ7tEOoAxCBW3vM6AWAqItXMtbr/zVuCR+9Xfdbm3e/TKXkPQp9LhCcp7s6YHsIk+IoOlBQ9hH000vPOHOYFVVrvbp4CzSpjzyx8wJxyVowYNVUfntOzonLJkWLkFBgn1z7GQqvVjseUXnNe2WLiKHo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; Received: from BN6PR12MB1922.namprd12.prod.outlook.com (2603:10b6:404:106::14) by BN6PR12MB1411.namprd12.prod.outlook.com (2603:10b6:404:1f::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.14; Sat, 29 Feb 2020 15:05:56 +0000 Received: from BN6PR12MB1922.namprd12.prod.outlook.com ([fe80::d931:1942:a6b5:d74c]) by BN6PR12MB1922.namprd12.prod.outlook.com ([fe80::d931:1942:a6b5:d74c%7]) with mapi id 15.20.2772.018; Sat, 29 Feb 2020 15:05:56 +0000 From: Leo Duran To: devel@edk2.groups.io Cc: Leo Duran , Eric Dong , Ray Ni , Laszlo Ersek Subject: [PATCH] UefiCpuPkg/MpInitLib: Skip reading PlatformId on AMD processors. Date: Sat, 29 Feb 2020 09:05:45 -0600 Message-Id: <1582988745-1189-2-git-send-email-leo.duran@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1582988745-1189-1-git-send-email-leo.duran@amd.com> References: <1582988745-1189-1-git-send-email-leo.duran@amd.com> X-ClientProxiedBy: DM5PR10CA0023.namprd10.prod.outlook.com (2603:10b6:4:2::33) To BN6PR12MB1922.namprd12.prod.outlook.com (2603:10b6:404:106::14) Return-Path: leo.duran@amd.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from leduran-Precision-WorkStation-T5400.amd.com (165.204.78.2) by DM5PR10CA0023.namprd10.prod.outlook.com (2603:10b6:4:2::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.2772.16 via Frontend Transport; Sat, 29 Feb 2020 15:05:55 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [165.204.78.2] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 44ecdfc5-20b3-4c96-f48c-08d7bd28e0a6 X-MS-TrafficTypeDiagnostic: BN6PR12MB1411:|BN6PR12MB1411: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-Forefront-PRVS: 03283976A6 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6029001)(4636009)(376002)(39860400002)(136003)(396003)(366004)(346002)(199004)(189003)(16526019)(186003)(26005)(2906002)(19627235002)(316002)(52116002)(7696005)(6666004)(44832011)(54906003)(2616005)(66556008)(66476007)(5660300002)(956004)(86362001)(966005)(66946007)(81166006)(81156014)(6486002)(8676002)(4326008)(6916009)(8936002)(36756003)(478600001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1411;H:BN6PR12MB1922.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zxYuJVMrukOrAUwg6Fftu3agN1HBTakE9heNJ6XPX6vTy7X9vZVA5Nhjq7orwdK1QrdisMoDCKJunPOxhVlue9VhedliWiSgxI5bADjkOhl9dXT4Vs13mRkbKu4QK35saZ5GBAGDjzD6cpY4FBG848ndRG6G35y4HNWTKnaZ6cBIxXkJWaRG4dk8BoCWSDnh4qZgEcGb1gel/oesO7qIH4x3g/6fl6cbYZbzY587Ao1V/te0nJkNzUT2U8Zbx+VI2tZ1YVd5k2JGipaUNerw3fvg+spen6yovKv/ubIm9Z64xrHiH4jeVLmVYejkaGshPvnZPfhpjQpOHSC8RbXZoxJYnJd92L4w0bkNpYjOH9ruWTTwqy8EKPqoHCUI7ToFdrpo9b1GrIQqttpy8WzkwOhLMt4BDjAHWA7/CInsy3qu+czv/ypvs6EhUXwRr+un4xAW1hpmdCym8MQPehQO3Nbt0Je1j9BHbxjelcZM7n/BG7E0kG8/D9+V42BpOVGPxGwb6p8kpfP4krIIJF00eA== X-MS-Exchange-AntiSpam-MessageData: acnKfY+pzIhlRPxSrj6FwP++UY00GkvsgJJgXYuXGLeUC0UGshv94xx2GZ4yA0pXveqQ13IDJIB+z4jWVrR3V11h0vJB5nUhdDPaVIuN3gVlVj10FY5DFqTKMgXVs64Z60knwSorCSMF+3KQSwEvAw== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 44ecdfc5-20b3-4c96-f48c-08d7bd28e0a6 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Feb 2020 15:05:56.3063 (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: FMYYQr0+EkeyRut21jD3AUHvuPIf25hC52DuIHQtgGt/z4q7VQ3hiPOin6H129LS X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1411 Content-Type: text/plain REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2556 This patch uses CPUID signature check to skip reading the PlatformId MSR, which is not implemented on AMD processors. The PlatformId is used for loading microcode patches, which is also not supported and AMD-based platforms. To mitigate the PlatformId dependency, PcdCpuMicrocodePatchAddress and PcdCpuMicrodePatchRegionSize must be set to 0 (default value), in order to bypass microcode loading code paths. Cc: Eric Dong Cc: Ray Ni Cc: Laszlo Ersek Signed-off-by: Leo Duran --- UefiCpuPkg/Library/MpInitLib/MpLib.c | 34 ++++++++++++++++++++++++++++++++-- UefiCpuPkg/Library/MpInitLib/MpLib.h | 3 +++ 2 files changed, 35 insertions(+), 2 deletions(-) mode change 100644 => 100755 UefiCpuPkg/Library/MpInitLib/MpLib.h diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c index d0fbc17..d2200c3 100644 --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c @@ -2,6 +2,8 @@ CPU MP Initialize Library common functions. Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved.
+ Copyright (c) 2020, AMD Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -10,6 +12,29 @@ EFI_GUID mCpuInitMpLibHobGuid = CPU_INIT_MP_LIB_HOB_GUID; + +/** + Determine if the standard CPU signature is "AuthenticAMD". + + @retval TRUE The CPU signature matches. + @retval FALSE The CPU signature does not match. + +**/ +BOOLEAN +StandardSignatureIsAuthenticAMD ( + VOID + ) +{ + UINT32 RegEbx; + UINT32 RegEcx; + UINT32 RegEdx; + + AsmCpuid (CPUID_SIGNATURE, NULL, &RegEbx, &RegEcx, &RegEdx); + return (RegEbx == CPUID_SIGNATURE_AUTHENTIC_AMD_EBX && + RegEcx == CPUID_SIGNATURE_AUTHENTIC_AMD_ECX && + RegEdx == CPUID_SIGNATURE_AUTHENTIC_AMD_EDX); +} + /** The function will check if BSP Execute Disable is enabled. @@ -564,8 +589,13 @@ InitializeApData ( CpuMpData->CpuData[ProcessorNumber].Waiting = FALSE; CpuMpData->CpuData[ProcessorNumber].CpuHealthy = (BistData == 0) ? TRUE : FALSE; - PlatformIdMsr.Uint64 = AsmReadMsr64 (MSR_IA32_PLATFORM_ID); - CpuMpData->CpuData[ProcessorNumber].PlatformId = (UINT8) PlatformIdMsr.Bits.PlatformId; + // + // NOTE: PlatformId is not relevant on AMD platforms. + // + if (!StandardSignatureIsAuthenticAMD ()) { + PlatformIdMsr.Uint64 = AsmReadMsr64 (MSR_IA32_PLATFORM_ID); + CpuMpData->CpuData[ProcessorNumber].PlatformId = (UINT8)PlatformIdMsr.Bits.PlatformId; + } AsmCpuid ( CPUID_VERSION_INFO, diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.h b/UefiCpuPkg/Library/MpInitLib/MpLib.h old mode 100644 new mode 100755 index 455cb3f..0c89f8a --- a/UefiCpuPkg/Library/MpInitLib/MpLib.h +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.h @@ -2,6 +2,8 @@ Common header file for MP Initialize Library. Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved.
+ Copyright (c) 2020, AMD Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -12,6 +14,7 @@ #include #include +#include #include #include #include -- 2.7.4