From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web11.18302.1680154247214352912 for ; Wed, 29 Mar 2023 22:30:47 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=L2Gw6QZN; spf=pass (domain: intel.com, ip: 192.55.52.93, 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=1680154247; x=1711690247; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=qV8XAQeVg+nAQj0LXHyBoG57ctxBV+0yQ0HcqnKCSKM=; b=L2Gw6QZNdShVkNkQLIrIvP3oWwiaGGs/899nF938JJ4lkXzIANu0WA6k zp1Ci5yf2NZ430eSxr9RJoKEW3sahfOqQ9BtdaNLbFgdyA/WMAggtFpNm mzOX4D5Bi9+ZXyPuVF+zUz0jUZVVlWf5XD/pV0HZ0389WzmyEG0PH3NNX YUiVlr4SZVH1dGtZHrkePzc0wC/zHMDRjCpsMwjwzNbSNud4HjigLK2iT j3MqlAvZ7udTVxRl5QLzRHNESvZks8lhrAopaWy/VRfr86D/DvDZ6QdTU jtyZnaOMYE4gGRnc+ek4tzY4U25CIbYjeziwVg0kJf7o41yFuoUtqaEF5 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10664"; a="338571239" X-IronPort-AV: E=Sophos;i="5.98,303,1673942400"; d="scan'208";a="338571239" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2023 22:30:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10664"; a="749043193" X-IronPort-AV: E=Sophos;i="5.98,303,1673942400"; d="scan'208";a="749043193" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga008.fm.intel.com with ESMTP; 29 Mar 2023 22:30:46 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 29 Mar 2023 22:30:46 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Wed, 29 Mar 2023 22:30:46 -0700 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.42) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Wed, 29 Mar 2023 22:30:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lf2Kxb++jDlm7EuHAo1swjIOmaQa3F3nTCwAtLjYGcNcXiVjE1mvEkQrnZoTPYwQlmgO+103trp8GVJAhvrzUWrCZ8Ri6XzGuM+KGr4vR60/r6qTxJTN4pB3MlfQb56H3BzaF+wReEozKjyMJ2Wj4l1isHqtNKVF8IQQRAcDn8KM8guUyXPZV+/uoe/odlp+F/1Q5Q//HVROuz5DMBxxfwSHtupFA1mJf0IYiylddpqbwmCI7rq9HB/7eRxtfci0qrOdPSIZF4HxirWRKNYFEDl/F7HBRqM2MmWBlUqo8ovPeqPLZI2RZjJx1m9Tcj6p1Mq8lxZelVofidldGK56Uw== 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=AFi3etkVBXk2dwgLr/GNwz5tyopUda9D8Xq1OXdI61o=; b=drbxgL+UhQ8xvyNxxmlwE+hbPDjDZkPp0sIPqshxauR7gJUx9g+z99NYhOO5MqYCSYcIpAu6jhfuokMsQ7zxV2Pc+0c6VMIMZra9uJaRf6qyqPFjbuqfM+C7FJljruYDfyRUUiBA9fHAp1PXHZ3SsswBlNtA7+ENc65ukpzKYRA6bbGG0wo5DERqTsAV9Vsh4sOclrm1fpvjd2dma1u+QBCCrNh5UvfzxiUguYIyEX1XreX7Yvb5xs2keAmzp5ifwekxveXC93G+7HFTr0ZiQB4n/Q6SNx28ExFrctZGVUakxmHiArKWYXxPTeJx5XI7DFPFsRlzsJ0njLIqPX0wBA== 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 SJ0PR11MB5816.namprd11.prod.outlook.com (2603:10b6:a03:427::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.32; Thu, 30 Mar 2023 05:30:39 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::ae07:e96a:4a24:8a69]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::ae07:e96a:4a24:8a69%8]) with mapi id 15.20.6222.035; Thu, 30 Mar 2023 05:30:39 +0000 From: "Ni, Ray" To: "Chiu, Chasel" , "devel@edk2.groups.io" CC: "Desimone, Nathaniel L" , "Zeng, Star" Subject: Re: [PATCH v2] IntelFsp2Pkg: LoadMicrocodeDefault() causing unnecessary delay. Thread-Topic: [PATCH v2] IntelFsp2Pkg: LoadMicrocodeDefault() causing unnecessary delay. Thread-Index: AQHZYlVRyd+2h1hlQ0SsTGK04S9gJK8Sywyg Date: Thu, 30 Mar 2023 05:30:38 +0000 Message-ID: References: <20230329154352.1092-1-chasel.chiu@intel.com> In-Reply-To: <20230329154352.1092-1-chasel.chiu@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_|SJ0PR11MB5816:EE_ x-ms-office365-filtering-correlation-id: 69280983-5f94-4624-4537-08db30dfe56b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MBwCzgJ/EO0rILvAwsSDPCfFxO/N0XyBMKsas+bpJAwCHrbdymuEfYS/DPREpZaCHVn+Rj1QTbDnIIhjb6BjaPkUkKTMjxJrXVSb5cqTcr0ZZzVl9AylGiZl//OS+xyQ3rx2UKithLh8w/8kOo/kkISqxidtTccsa7/W2dME1vfqoS88MuFLTmubkzxJU9WkIMks7LcJqsuM3hRQW7OC0QbpaBGz8MyTzmo8IpZgPdZ9/xsdZ4n+Fg4z7UpeUP0/PNBswW7I//wKUehebZMXoW/CzDjq4lI8Lmrk3q3b5JTxkGiieSgI4T4Omo2VT1tR77SCTxcyInIiMEKXJKk1WXbF8eYJ2Bsrsa5xUZehHreEDoFb/Q7vlelLrKPKqJeJ8bqmsoDxMX+1iyzDzas3soMan7WI8rYpxaj5JN7gRqutfawBBFZdSbo5JRRBS5WM2Nm5p8VSqw8QndgGFAv0jUoS5Kq/wJAv0voKvFbhoLwfeTA9iKaIxWBRC+ddU3f6TMpcpiO6cm+yTbr9RHmUKLBA2K02+DqQATnscnzXtZ88OiSAw1agjgNWHi3h7COcrm2UTSqCD9sldOQCY8hNq2R89J2LjFZs1ZT1+8xERcUjEFkVyqSED/aeuVqqUmah 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)(366004)(39860400002)(376002)(136003)(346002)(396003)(451199021)(4326008)(54906003)(8676002)(66476007)(6506007)(66556008)(66446008)(316002)(66946007)(122000001)(478600001)(76116006)(8936002)(41300700001)(5660300002)(26005)(186003)(52536014)(82960400001)(107886003)(110136005)(83380400001)(64756008)(7696005)(71200400001)(38100700002)(9686003)(55016003)(38070700005)(2906002)(33656002)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?rVLtuPTds42kbNg9eSPVIf3pho2+fOckKYGCPZFXHFBsMspGs1eI9bPyo4bp?= =?us-ascii?Q?lgTiLWtAyNlT9FQi6EIlJLI6eS0ovkYclhJnmnFwiu7jfjp25XH7AT4j9iMh?= =?us-ascii?Q?gyskFqHswTvm6LbPHOYgqIiwluAIZWus8auuGyqMNHSSdkJ1kRvCsmUtdTFt?= =?us-ascii?Q?U3oTkoXMuHR/Uxskudnj6VSCJIwlDJWoaT6oB3eVGYB64ox0KYXxbkdzD71h?= =?us-ascii?Q?RT1raQtTDfcwlXtRbu56JeJI4IaMMvgNS5yUj485IMuPljte2xJk8OC7fCVa?= =?us-ascii?Q?SJOOUhrr9qJM9hwTcheyL0nrKrpUgHXsREkZ2/2m+R20RoMZU00SQHvpgyfh?= =?us-ascii?Q?VDYwE9MVZkXepO5S1I3ApGSEpT9U0bg6sIp8R/NrFGDFn+NcpYoMxY24s2BO?= =?us-ascii?Q?NUpPR7B7SlTJO8ka1oJNiZA3UxabWsEw8I9OoONdtJwDlEkFoGxsG2FLYHR1?= =?us-ascii?Q?HJ5caYcwwZpEt3AtNZNzkRJS8y6VULGFE1hFfYOSb7aRzJhuMNOUBtfdBnoc?= =?us-ascii?Q?ljowPxh9eWCyKoi/NMKj4hvG6/yLk/DBIMnh6uEsPv+UPsrChCwdIZiNUNYz?= =?us-ascii?Q?8pANqELEzwOkE4TMIubpgSSpNvbPzFtxQMAfYY0LJ+bLOfuWB6i57hxfrE7P?= =?us-ascii?Q?hzGXN+z1hU0A0g2Thw6+GsTBC/cU56XFtaNQNeFKlDbzQWg5pCD3a8F+23Ac?= =?us-ascii?Q?PkcTKwAPe62Li1Y5XBVBO3YIJlaU3COLQ1ykAddy33iN68/eAxhsrk79bY+n?= =?us-ascii?Q?CL5Ziu18+M4rzCaDcyVay9vh2DYo0ZDcy9BpTgP9OMeoDQ83saSE2FNm/xkI?= =?us-ascii?Q?bvLfP+z7b4WHbhQsW4L2fALPJ/bFEpqnpFrcZLylfxk04+RBT3rMOPCFeasz?= =?us-ascii?Q?ZPEyv1agXL5nfiTP/32Ex2QzfikPLmdm41c8yDNtcNJKv2AKKZriMwbC+5gN?= =?us-ascii?Q?pEpp4H4NqZKM+hU3ZZr85RTbIOGbPMRZ5p9T/0EJLjLN9TFShxu83TBrpV3/?= =?us-ascii?Q?jol7cAjUx6KQjUqPD+A+OXbjh5pT6ofl1zA7egk6fzyGR69+etCAssOAELJM?= =?us-ascii?Q?3Xx+MK0lfY+zBbxPgsV7xw/jTO15I3iwBRxwTU5mvGZoA7KLWHGwkod9s09F?= =?us-ascii?Q?Etaq1bALcMo223l4UuM7rMmjwuJpND3936FsxprIiarhqwGe35fW6uNdY0Qz?= =?us-ascii?Q?VqKq0cyQ9+kMqsbXJ61Tl20d7LgAPpT9crt2Jl3Sdpi06fodGnI5mSIo1mpe?= =?us-ascii?Q?MYx4w+ukvoAkbhKJ3HFC74lBQh5rlR14xs1k6f0SSHNkLmqp4Tjo3/IUslmH?= =?us-ascii?Q?bo56F26ubZ5GGbANHp5YMWGLqD7AvjzFxjgUBptR5+7NLpMw7qsH4hY9pjCa?= =?us-ascii?Q?VuVVKZuyFzZW2yxb9RXJmsIYXOhY+QyRb3u0yzaZfhjBDyDVmFTleuhitcsb?= =?us-ascii?Q?osBNUcjll+Ey9yOD1q8SovJDctFZEjof8EMMvycJRPXvN0cHSSKn2LplMPTA?= =?us-ascii?Q?YJEne9D9XskZvhwp8pedD2P2toIzPTiHbg9jzbil1SMbU9vuuVvQg4UMxcAe?= =?us-ascii?Q?gGPOBdDEGodt1WlbABo=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: 69280983-5f94-4624-4537-08db30dfe56b X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2023 05:30:38.7740 (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: YCLsi3J2ACVIo31TZyJdE0phLGsV5JnU1jH6NhmcRrlCR7zR+KATnFi3VWlsr+4GoVtHW3PrOATi8UamSExrOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5816 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 >=20 > + mov eax, 1 >=20 > + cpuid >=20 > + mov ecx, MSR_IA32_BIOS_SIGN_ID >=20 > + rdmsr ; Get current microcode signature >=20 > + xor eax, eax >=20 > + test edx, edx >=20 > + jnz Exit2 >=20 1. SDM uses following assembly to read current microcode signature. Example 10-9. Assembly Code to Retrieve the Update Revision MOV ECX, 08BH ;IA32_BIOS_SIGN_ID XOR EAX, EAX ;clear EAX XOR EDX, EDX ;clear EDX WRMSR ;Load 0 to MSR at 8BH MOV EAX, 1 Cupid MOV ECX, 08BH ;IA32_BIOS_SIGN_ID rdmsr ;Read Model Specific Register Comparing against yours, I think there are two diffs: 1). you missed the write-zero to msr 8b 2). you cleared RAX (I don't know why) And the existing code "LoadCheck:" actually contains exactly the SDM recommended logic to get current microcode revision. Why not use that directly? > - je Continue >=20 > + je Done ; if already one version microcode loaded, go to done 2. You changed another behavior: from load all microcodes to load one only. Can you separate it in a standalone patch and explain in commit? I guess since the 1st check you added will skip loading when cpu microcode = revision is not 0, so the change here is to align with that behavior.