From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web10.28482.1680190219563630926 for ; Thu, 30 Mar 2023 08:30:20 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=CzD1+eqs; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: chasel.chiu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680190219; x=1711726219; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=sI5edlNXwJDgo7+sHwdWfx0Ye75jhAr2FrFomWzM6kY=; b=CzD1+eqshh1AmBXp0HoT/zL7HZV3NkHtbzFCB0RYJwmNmztHcDoGjviC AwGNmNpyiqQ969AKNMwM+E7e2fiAkpOxheP8faG6MbrsUoH3ZY3vb7/Ce U2o7Vl7ntMZBUf6dAakA8DsaeMeIQAI1LYK+TqzIL9E7jS88dscdoGosK I+XypOsq/XBOxXeu2ouRc7faMQXXfK/GIDnzWQB7kwTxGr40egSbbKanl v7EHFPERVWFTbKFtJ4G7PhNA6IBtyfewc5uVMgjXcmVWpf/KtJRsz2PWg JXcHAofBtw9E3GWBDyvDfGDXn4Ky1KQuuedaTUm2jwgmlBjHUD08Zb5gX A==; X-IronPort-AV: E=McAfee;i="6600,9927,10665"; a="403879774" X-IronPort-AV: E=Sophos;i="5.98,305,1673942400"; d="scan'208";a="403879774" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Mar 2023 08:30:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10665"; a="634957496" X-IronPort-AV: E=Sophos;i="5.98,303,1673942400"; d="scan'208";a="634957496" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP; 30 Mar 2023 08:30:01 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 30 Mar 2023 08:30:00 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 30 Mar 2023 08:30:00 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Thu, 30 Mar 2023 08:30:00 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.100) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Thu, 30 Mar 2023 08:30:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n82nbK25TAqy57tJMJHEogYJbE7u+y04iL8b7atGus+QUWx4YW47kDidHB9bSuuHscGIrZBf3LanQtonpPmxTGLHtg+89WE0ktsNEbgr5/6w8VxK3fB/m6EdKXS05AlpBs6qiGe/OX08cuoC8uMjwn1XQ6baQFXUo8CAvK3cdK1Bu0wN9MGIpOWEWp+ReNgWRjcU8iZWjJ32D8HgHTczsCgvK9vWyDLcFZi47KXxPgTVXC8Gs9taFmaXDfVkGOax+FGNTGfcPNzdJB2f4XBcXEQY2Atrb234hhtDsc9Md/BL71+O1DnJ48ic9IjFRjTjVNfthYpuyAGUXxLhHpBCTw== 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=3jEZPJzc9U7/UmND+mtrEb7bifd/v7cokTHACv/qjjM=; b=R40mcJCe5NFSRMoU4/FQcJUvh0gdCcicfsFSqSea4u+P5yy4okKimZmvdkcV5NJsQprF1wXLR82sRdIeZYsqEeu7rJwfVvnHf94RVRdC3AUpA1ErQ059hI6uOVyuutkTpqB714B3G3QAD18eAfZybywxr9WGbnxmGK7XLSH4NJxYpHlgzI43Wn8VMMsfMnj6biumwxbTDDzDZmMdVkFtyZnfZ5nVzPO2mxN5jsBe067VY203ioIkZC0Mob2f/iGteuSKl8SLfWv65a4eGeAG5tR1rouOgBy70aANNgAOmrVzuM+PNmo3aM5iJVPQLdOJwtcvIYfR0XR8vqYFNBv7aw== 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 BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by SA1PR11MB7064.namprd11.prod.outlook.com (2603:10b6:806:2b7::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.41; Thu, 30 Mar 2023 15:29:58 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::2ac6:e032:8994:2e12]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::2ac6:e032:8994:2e12%4]) with mapi id 15.20.6254.022; Thu, 30 Mar 2023 15:29:58 +0000 From: "Chiu, Chasel" To: "Ni, Ray" , "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: AQHZYlVRQYnMYJE2tUqHz9aSJ9hfJq8SzNoAgACiY4A= Date: Thu, 30 Mar 2023 15:29:58 +0000 Message-ID: References: <20230329154352.1092-1-chasel.chiu@intel.com> In-Reply-To: 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: BN9PR11MB5483:EE_|SA1PR11MB7064:EE_ x-ms-office365-filtering-correlation-id: 5da23298-fca0-42fe-7524-08db31339ef9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GPMDxVSwwXqJtBujm/SQ/mYE6EtpONs6gOPGYH5NpBkjoJt/7meTZiU+KUw3+YrTBtK6NOpCPaER3XGZDBaI1JVOF4G5j1Xq9WZ2UdSBeFZHTKEJL3H0Nkp9/43bUHe2m9SlDSK8OTuXLpQYGam6clbdMJjUFTfxQcseKp92pAJ7bHOygHmNXLzQ1LnibOA7aKklQJ0L3jWdv6gX1KqgCFZ+6Is8Ske4bCRBgFcOsIBbSny5/43wNl9KgtVVZq6Jgzrr/o9IkLmBJ7C+sT/yZyEBP/FzepiLmgeQn/sNpBhCWBkLiVsR6hrqL/vkkYMaOV+bcSVvTFSUd69whw7Q3XBBwYuGnTSKdICJU5floxzFRJw4LbSwaaZi+CE+Pvf9wGq7yCrd+YE704rw+jF53s4FzYQbHQ7cNX3S6xQdWl8J3XTlpmRGk92R8LEgg1/p3PDWSHX9h24s4/YFHox0DMhNmeKqD56N/ztbzDdlhnlomL0P1mjyDMQrIVOVkBgrajAoxvq4WfECfTDcOiUVt+2Tp1p/5I1BA6PZbYkeEylsqonOQNfFgihM95hXQzSN9vdRwPLQcbaZlD6L4nH5Mg5OnswsL5S6GxZc7AmGEdFb21ZnutRC1E0tOKiJq6yl x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(396003)(39860400002)(346002)(376002)(136003)(451199021)(41300700001)(76116006)(66476007)(66946007)(66556008)(4326008)(66446008)(2906002)(83380400001)(38100700002)(38070700005)(5660300002)(86362001)(186003)(82960400001)(122000001)(55016003)(64756008)(8676002)(8936002)(33656002)(54906003)(478600001)(71200400001)(107886003)(7696005)(110136005)(52536014)(9686003)(53546011)(6506007)(316002)(26005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?zo1fkgC/wVhN6gJAK8szbemGQyTmjwQH9Rd1+A2MJpnyLv09KaqxwFQZpNNe?= =?us-ascii?Q?W/lWknihEHmsvBV5vO2mINUVks2hVxjkh6VqzqzzptAxnmKNpBoa38e6Y2dW?= =?us-ascii?Q?ghC/2PzjCjU2yjtYPk4VaHV9lrTAYITb8M4hGG56coofWRhzbhiICp5epnqq?= =?us-ascii?Q?3wLXqghHAkFvcxAk+0Im1Qi4rhGkQc355aAfZIyeI6ITuCT83LRj9RQZ4aYG?= =?us-ascii?Q?R+vdZ9SdMQOru+OGgHXrNIL0voqeKcADSROHEOXYspKfvdjrr+GB6/6CXFcB?= =?us-ascii?Q?CD8EpKgxChjgzl+IF1u9diFS4gbFLmv9nPW3I3mXXkNXqcMESBP17C3RYDxF?= =?us-ascii?Q?Wbcmld0o1pptPltySg2q//3RZdt3W/GghZSwRwShJuQQ7WpAoRfmKVFiCq4Q?= =?us-ascii?Q?aZaF0iQ8ae9nTDhUBNlLPjCZtZ13HAXrmihCeq2BozDJ3KY/+Rf66kxQBnxw?= =?us-ascii?Q?yhY7WHOHJf3Yo0xly1G71c5/OifbK+Ic2GxqzNqi1cWBnMa7yDyNztvZCYXl?= =?us-ascii?Q?T+mV/bI3CCGCjStdMWVkdD7rLr9ZdGWGEwkScVqcAE4J0XXCvYsQEJar/OyH?= =?us-ascii?Q?2+Uf7857/hBp5gmA0NftFCI/0s1zGnK5vQsIeBLomNa8P1HNfqOXZrA+vc+Q?= =?us-ascii?Q?FR9Intgk5c+Z7tq/wE7pdVRNjEj0uPazL8skrnwkZEMf4PL2jooFIkszQDCs?= =?us-ascii?Q?t2ymmR+RFD8AYV8vpS2OYhMYQQgmEZ6AkeQwXFRg4nq+AyNteaCtWZT3Tkes?= =?us-ascii?Q?wLu8qrPP5yvMsvjG6t5kWfeVP96EQlgsBcIj0GqZo6b8wCCNcPJjsiBm7Scz?= =?us-ascii?Q?TOCx9yPrWMRLSAiLdrWysNL3QQq93uCuJxjDTBhXX9r9Eqap7nG5dVNJo7qP?= =?us-ascii?Q?6WmESMhsPuywrPjl3hjb9cRAxGJgpUq6ZisTTIjAmEfI6Ltn65JtgndhVk+z?= =?us-ascii?Q?y+8eW20lHEi/BKjxbdR7BQRIs+iVgyKAKRLb0H2wuMAY2tqxtqu03PbxeNN2?= =?us-ascii?Q?VYrdOOBCp3Nyucsq5Ig5iboZOLOQPsm0x9dJOAvFnQUtaeF6eL6ElpwP81dU?= =?us-ascii?Q?emrZE+g1JUOoq6smYXMNqe1WB9E0y3S9sBWAqwjZeyBcX36XPakMOno8y32/?= =?us-ascii?Q?0mRdXUBrD2+9BqQO3jOcFYkF5PtBeCzZBXJens+I6vJEwrpnM3TLqtpF8u2v?= =?us-ascii?Q?GJQR6fyjpJLls3LTiLDmOw0/fx/qDNkHxNFc9g6vCYBZ0j7xwfSnHUnKlQrY?= =?us-ascii?Q?112L6ieewDovDUhfZNGxalZWd9vDcwBKs1dlBTR4Jw46xgpEqpXhlqAfl0UM?= =?us-ascii?Q?IFDFvimO2cwRYewUVDjg5oudefmI8l5mTpszhQZ0eapiuRFlUK7EkF8ESI1Y?= =?us-ascii?Q?+Qh9VjG7rvAuKtFePuAUrL0yLV0dj95Byusli4suhTZx9LzsP6QM4L8pfGyi?= =?us-ascii?Q?yE09MasMa822LrxQ8VSGPapDgG5RZjl1Vqovd8rC4jQ9bP3xrvafHmOD57dv?= =?us-ascii?Q?mNoKMgIoSqGf7q3uOeZiFpopEQ2290lVT5CDl52DxQAW+5SOGnrZ0JNLfUtf?= =?us-ascii?Q?G5cCie/I5zTERT8tMWAu3FjZ1EfPz2Ou0VIQ9DvB?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5da23298-fca0-42fe-7524-08db31339ef9 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2023 15:29:58.3155 (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: ZSddIY821XnZ4d6dywEo6eihAzAy+4XqODQKWPz+DjbzcTceQ6ktV6fIH8fbxOG86IbRHQT7yZ1eAQpENEEfig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB7064 Return-Path: chasel.chiu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks for reviewing Ray! Please see my reply below inline. > -----Original Message----- > From: Ni, Ray > Sent: Wednesday, March 29, 2023 10:31 PM > To: Chiu, Chasel ; devel@edk2.groups.io > Cc: Desimone, Nathaniel L ; Zeng, Star > > Subject: RE: [PATCH v2] IntelFsp2Pkg: LoadMicrocodeDefault() causing > unnecessary delay. >=20 > > > > + mov eax, 1 > > > > + cpuid > > > > + mov ecx, MSR_IA32_BIOS_SIGN_ID > > > > + rdmsr ; Get current microcode signature > > > > + xor eax, eax > > > > + test edx, edx > > > > + jnz Exit2 > > > 1. SDM uses following assembly to read current microcode signature. >=20 > 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 >=20 >=20 > Comparing against yours, I think there are two diffs: > 1). you missed the write-zero to msr 8b I will add this back. > 2). you cleared RAX (I don't know why) This is for returning 0 (EFI_SUCCESS) to caller when microcode already load= ed. >=20 > And the existing code "LoadCheck:" actually contains exactly the SDM > recommended logic to get current microcode revision. > Why not use that directly? >=20 > > - je Continue > > > > + je Done ; if already one version microcode loaded, go to done >=20 > 2. You changed another behavior: from load all microcodes to load one onl= y. > 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 microcod= e > revision is not 0, so the change here is to align with that behavior. This is another optimization for reducing unnecessary delay and I explained= this in commit message (second line). Because that we usually only put one version microcode for one CPU in FV, i= f LoadMicrocodeDefault() already found one matching microcode and attempted= to load it, then it should return with either SUCCESS or ERROR and no need= to parse rest of the microcode files in FV.=20 Commit message: FSP should support the scenario that CPU microcode already loaded before ca= lling LoadMicrocodeDefault(), in this case it should return directly withou= t spending more time. Also the LoadMicrocodeDefault() should only attempt to load one version of = the microcode for current CPU and return.