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.web10.8596.1678229247811305408 for ; Tue, 07 Mar 2023 14:47:28 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=k1xXFsW/; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: isaac.w.oram@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678229247; x=1709765247; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=qeMvuqlFaoPPcbnxAA+y2h+hb4mk6yoT6/s0+gkwUmc=; b=k1xXFsW/kKzlvkx3Bcc5ZWwKO1dlQ3e5uT9OXOB7QkMcw/q8+6FQSW04 WIObyE2JeSRd0y0QfmmjipiFd7CNswu+VVJYYv0YWMGSAK4Z3laVsf2nI PwbHJsOCbxdKYphpObpepNAOztHdk75RMXALL7J8dp4EvUe46z2rm/hl7 GIV0hiBOEPX4dYSR1PN7Skq7SvrCYNEuQvVwG/7YKOgaTidUWzh5C4O5M cErByFHbudkK6F2kYq9vsIH0Qze28POefto2f81CESmzr7PcKvj9hwHOg +1O373x7I04tirvjlZwRpVDercXBEIxSHwddtewjapICBW7nyX+BaWi48 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10642"; a="333467011" X-IronPort-AV: E=Sophos;i="5.98,242,1673942400"; d="scan'208";a="333467011" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Mar 2023 14:47:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10642"; a="819953848" X-IronPort-AV: E=Sophos;i="5.98,242,1673942400"; d="scan'208";a="819953848" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga001.fm.intel.com with ESMTP; 07 Mar 2023 14:47:27 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 7 Mar 2023 14:47:26 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 7 Mar 2023 14:46:12 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Tue, 7 Mar 2023 14:46:12 -0800 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (104.47.56.40) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Tue, 7 Mar 2023 14:46:00 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BLZ8xtJWByAdgzLmC1hTfV2fROA8RvgLN39O7ko3yw5DWIsqcs7Ico2boAEi52rHZ6Y3ZTTCnNT8+0+Io4wM1cQ2mcGifE9ekH0q2zcUkN1ODt1AGcJWqVylqxOBLeeOmyeR0ZsfCJWJPmVV28WiReRCfiqiTQ4tQDp+F4smvDfe+ub/X4um3WcaFdMPRL76sUYdAQyURwNcgxU6H/L1iqzkXcLE5yQL1lhukOtNjMaiE5DZ8q1lqc1MPH6lrntH6YhWOgySv9ndiiBM/GZx+Sp1Wb7WbqLLzoLn/5xJNb215W++fZcfR7cq6oJgpMpZWgL1XBhIFHtHBw8rJe7hSA== 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=Sw9mpVS9u7+mpKoXNlMEpph1+qiJA05GtREDmg90mgk=; b=XJbrV4j1DX8PmoiJ5Xau/ZH3dV+G+GvMY6UTgf1uHEm6Ob6N3jGxic4IU9QK9jyBR5Y7WXr3JmjcCB83ASXS9C16lP5kJkbuF/DywOBcMEprBu9sCFz8nIPRcL9MN/beAYqdi9nEH8hqZCTcb00NrbqmbWrZNg0UkrWknudSJIsHYxlamMaOh8NolUUnIsfoamu5a3gzYvEWUoFKAzfwnpLuf2jnNoK1J+YJLm1Y4KuT7fSYmMNi9LKkg65yhTNx/vQwESsrDXSmZK8UrlxvF6wn2LqwLws8rqJ8xVc+uWdbGPe2h6h3+l0mqDTwjQIgldoudU9NaUpRjZXGL+Tzpw== 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 SA1PR11MB5801.namprd11.prod.outlook.com (2603:10b6:806:23d::13) by SJ2PR11MB7547.namprd11.prod.outlook.com (2603:10b6:a03:4cd::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.29; Tue, 7 Mar 2023 22:45:46 +0000 Received: from SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::2319:e5ae:6470:462e]) by SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::2319:e5ae:6470:462e%3]) with mapi id 15.20.6156.028; Tue, 7 Mar 2023 22:45:46 +0000 From: "Isaac Oram" To: Mike Maslenkin , "devel@edk2.groups.io" CC: "Desimone, Nathaniel L" , "Gao, Liming" Subject: Re: [PATCH edk2-platforms 2/3] IpmiFeaturePkg: remove buffer temporary buffer from BMC instance structure Thread-Topic: [PATCH edk2-platforms 2/3] IpmiFeaturePkg: remove buffer temporary buffer from BMC instance structure Thread-Index: AQHZSwOIDxexPYsa/0W/pbrBGPoOLq7v9BnA Date: Tue, 7 Mar 2023 22:45:46 +0000 Message-ID: References: <20230227232757.9312-1-mike.maslenkin@gmail.com> <20230227232757.9312-3-mike.maslenkin@gmail.com> In-Reply-To: <20230227232757.9312-3-mike.maslenkin@gmail.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: SA1PR11MB5801:EE_|SJ2PR11MB7547:EE_ x-ms-office365-filtering-correlation-id: 9db2b948-6966-425e-9fae-08db1f5db0d7 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RX6EGlSCA8xGQFxHjJJvXcAcO9diqGxrvCCXCS9PYMgyGPnZqEiMYGejSYum10EIeErv1We2Uah4DQgk6zfsQU08A3SJm1CLbZnaXLWNuxbomEDOBs5f95wLGTJq4Yb0ipGdzt/7d8jwUhu0ebATDbTPDkz4K/QRgjtNyRh7wT1qs0Tk+Y2PZv1jXDRdV1QMhzNJw0Nf5qXlVCozJ4/pCntz1YzzguHTlcaLYEcFx+odgedGOU3mP+U83N8eLvnMgDAdLIRLA9PvpNhI6v7d9MK0iysmpuaEyunT4BN8IOT9ZSAhcnrd15kL7H28Uw+n28GqE0FZsPiOFCudooAHhdIkz3C5uLZcMk4zex+KV5rrpKkMdoSq45GIr4TFup62piuuGedjWPqtCLNEY9EXzSZGc5+DbUf9WCRyTVodT9ZCMELEvnE+gsCmgc04p6uPiXPdfmo8qh1pYeESXoigJdJ0PVfqTAQU6hMbxsDdza9Tgc1pr8pA/jplwqyaAah57anJ0WM+zaC8QnJMXiz/vIyoTnnxBofrYP1oof8oDW1HP0+jp8wc+WeMgU9+gCDFguBg2S8o/piAgvLOoM8BpekOD+dO1PQz/9ovdrU4mwTzCJjjOKPgc+KrTWceOkPTNsaaUa9MrOKxeczv6UQTa5oXFEUhVqYChDXTGSSdfdeF9+OinA+1U6GYf0pMmrgeSK7kHe/5Wp9qOXPl5L1UEg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB5801.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(346002)(366004)(136003)(39860400002)(396003)(376002)(451199018)(66476007)(64756008)(30864003)(26005)(186003)(9686003)(5660300002)(4326008)(66446008)(66946007)(8676002)(71200400001)(76116006)(66556008)(7696005)(33656002)(86362001)(110136005)(316002)(38070700005)(54906003)(55016003)(6506007)(8936002)(41300700001)(122000001)(53546011)(38100700002)(52536014)(478600001)(82960400001)(83380400001)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?NTcvjzhQRVLb6mhpG3vr00k1Gs3X8OtCka+oQ7lwENoTL5DtdoMU5/+72gal?= =?us-ascii?Q?7T8fCkrX6r6cB2yUwD9D88TRvslOgyEBuSQQEpnxO0XIcrPu4It8y3ApHvc3?= =?us-ascii?Q?loYWXDGiUoKQma9f4Bo1Zjb3fLDX81z9lg9IIsKn4paZH1XtYcFymri3NJAJ?= =?us-ascii?Q?ER7ngtg6arVCSZLlPA3Xn+gPNlRp/cTFwtgXbrcWwNlWSjX2dUkjUMWJ044k?= =?us-ascii?Q?GwJYA0R6QBAsEqHRzr4M5uFQMaqXD5i2lAij+U79GI12rkeU36WY0r4GBbKD?= =?us-ascii?Q?pFlHvJ4AiomvnyrkERAB12w+MIANcS5H/apJka1rUf7715TMEX2aJOOb2YUf?= =?us-ascii?Q?euyHCxj2WpBdl7OwIkhjNbzEYj4HhZUnnjwAWAXiMpTtSs81Jj5cCedOmQdr?= =?us-ascii?Q?Xl6YVURthWWSNhGzChKL3h4XkeafPJH2a++3EERvoS/k55nbmvU+4SEC6lIq?= =?us-ascii?Q?dAmLGP0tuVikBF0lRWgLoX+1Yvrje4IPNSYg1WBkgHO1Y4IQv2AkwmsSwIG9?= =?us-ascii?Q?Avt5MaeKbNRXyp5cIyVFncZWDeGdA38yLfOH3KyCgcTpDx3WLK7TNypS0+wD?= =?us-ascii?Q?Yy8hhuwmiihVQSv83l+OSd3dur4kCr7E6URZtNt+yCwsyhX2iJVETkMfaAQo?= =?us-ascii?Q?pv0el1SF+wvqWwlIF599p83f7h8rBiNQ2WrbKJUd6vwBKBbDaUzyLqEEdDNr?= =?us-ascii?Q?SSPpLaPYjUMse8ssJOUXIhyAJqrCRwI73GcED2q5nWFpiJjRD/ygZ3h6ogdr?= =?us-ascii?Q?nzfuDXB9LSmlP3P7o7svZ/hYWvMXLLvrQVLN3AmnYkCxoix/droK6F01L5Bj?= =?us-ascii?Q?g/7Pm89+kN6wvy5BaJKASU+kh9+glvOZHA+VT0MiD0UJf2rcAFhLxGKCcWlR?= =?us-ascii?Q?8ws5VrjQdqiTwLwx0/+CyyWiCA6uuugobyorXbw+nWEEtVIfYo1/9G7FzCaF?= =?us-ascii?Q?KXIO07wSOL7EiTqjAVS0qdm/orMlNFh7BB+T9Eok47niCouPkaXuiybVVDwU?= =?us-ascii?Q?VyxJ9VorTZk/aK4mgSdA/x4BotpWkYiikTaFoqhxk6+RSghR4o5p4X9RHUPg?= =?us-ascii?Q?4QmcCPemauDY3DVusKygMNe6hnchStbAp44uaxwfkrFRsSKpmlGa+gXX1vWr?= =?us-ascii?Q?l7xYqHki/Q7HXUdE+dJH0E8Ld1Cz9WPwiOnSSGUhoU5S5deZDUTcLkJyo7IW?= =?us-ascii?Q?y2dBAt4Ad2UdKzyBUTm7xHcmvRmmGVguBvdM0pXcCb93Geinl7TtA5h+hIoI?= =?us-ascii?Q?Yq25eq2IyqyPnL2RQsgonwxTgSK2lRy/3YIGDUA4E2aqbwin5Uy1Zy90LTtA?= =?us-ascii?Q?DEbYHfqVK0M/Gz0Z27ynOLpO6hlMyPJy24XtnYASVFywX3JRS75hHaYQvO6N?= =?us-ascii?Q?2QkM9JjPdRk3UfTbc9+jPOcrfLuSiaoEZJOnUVai8kJMvY8ORSGyRvd418ss?= =?us-ascii?Q?t8SEnXdZ2Cnklwiz1JkqnA+DkAhz/snzpW+MEO/Tbp26sGHjCVIH/LdqsP6S?= =?us-ascii?Q?Go+RTBOLWRhSVs2fFIkPzzw+BjxM697fWaYji1Y3Uy3qyvlQOdLtaVt1ZlSr?= =?us-ascii?Q?H4xefMoSkEjwvvxi4SvjE39CCMgKXjLRHkF/46M/?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB5801.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9db2b948-6966-425e-9fae-08db1f5db0d7 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Mar 2023 22:45:46.2241 (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: GSQvPuJCXWim4yhpVRfvgUpQTYcznd0/jErO5K34yNYPZLNcDi/Raiq5Drvyd0Uvs8uB+yQ9ueBDM8kDWzUjvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB7547 Return-Path: isaac.w.oram@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Mike, Thanks for the fixes. There is one more instance using TempData in SmmGene= ricIpmi.c. Could you please fix that as well? I noted that it isn't curre= ntly built/included by the IpmiFeaturePkg.dsc. I will fix that. Also, please add maintainers and reviewers for the package to commit messag= es, e.g.: Cc: Isaac Oram Cc: Nate DeSimone Cc: Liming Gao Regards, Isaac -----Original Message----- From: Mike Maslenkin =20 Sent: Monday, February 27, 2023 3:28 PM To: devel@edk2.groups.io Cc: Mike Maslenkin ; Oram, Isaac W ; Desimone, Nathaniel L ; Gao, Li= ming Subject: [PATCH edk2-platforms 2/3] IpmiFeaturePkg: remove buffer temporary= buffer from BMC instance structure There is no point to have temporary buffer in BMC instance data used only f= or synchronous IPMI command as a transfer buffer. Using local variables make things much simpler. Signed-off-by: Mike Maslenkin --- .../GenericIpmi/Common/IpmiBmc.c | 5 ++- .../GenericIpmi/Common/IpmiBmcCommon.h | 1 - .../IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c | 39 ++++++++++--------- .../GenericIpmi/Pei/PeiGenericIpmi.c | 11 +++--- .../GenericIpmi/Pei/PeiIpmiBmc.c | 5 ++- .../GenericIpmi/Pei/PeiIpmiBmcDef.h | 1 - 6 files changed, 33 insertions(+), 29 deletions(-) diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/= Common/IpmiBmc.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/Generi= cIpmi/Common/IpmiBmc.c index 03b8174e3786..a6be2f46e84e 100644 --- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Common/= IpmiBmc.c +++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Comm +++ on/IpmiBmc.c @@ -101,6 +101,7 @@ Returns: IPMI_RESPONSE *IpmiResponse; UINT8 RetryCn= t =3D IPMI_SEND_COMMAND_MAX_RETRY; UINT8 Index;+ UINT8= TempData[MAX_TEMP_DATA]; IpmiInstance =3D INSTANCE_FR= OM_SM_IPMI_BMC_THIS (This); @@ -110,8 +111,8 @@ Returns: // response data. Since the command format is different from the resp= onse // format, the buffer is cast to both structure definitions. /= /- IpmiCommand =3D (IPMI_COMMAND*) IpmiInstance->TempData;- IpmiRes= ponse =3D (IPMI_RESPONSE*) IpmiInstance->TempData;+ IpmiCommand =3D (IP= MI_COMMAND*) TempData;+ IpmiResponse =3D (IPMI_RESPONSE*) TempData; = // // Send IPMI command to BMCdiff --git a/Features/Intel/OutOfBandMa= nagement/IpmiFeaturePkg/GenericIpmi/Common/IpmiBmcCommon.h b/Features/Intel= /OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Common/IpmiBmcCommon.h index 1e5dfd81f1fb..06eab62aaec9 100644 --- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Common/= IpmiBmcCommon.h +++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Comm +++ on/IpmiBmcCommon.h @@ -50,7 +50,6 @@ typedef struct { UINTN Signature; UINT64 KcsTimeoutPeriod; = UINT8 SlaveAddress;- UINT8 TempData[MAX_TEMP_= DATA]; BMC_STATUS BmcStatus; UINT64 ErrorStatus; = UINT8 SoftErrorCount;diff --git a/Features/Intel/OutOfBandM= anagement/IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c b/Features/Intel/OutOfB= andManagement/IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c index aeaefaad642e..8a0c596a6434 100644 --- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/Ipm= iInit.c +++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/ +++ IpmiInit.c @@ -84,6 +84,7 @@ Returns: UINT8 *TempPtr; UINT32 Retries; BOOLEAN bResultFlag = =3D FALSE;+ UINT8 TempData[MAX_TEMP_DATA]; // // Get the SELF T= EST Results.@@ -97,9 +98,9 @@ Returns: Retries =3D PcdGet8 (PcdIpmiBmcReadyDelayTimer); } - DataSize =3D s= izeof (IpmiInstance->TempData);+ DataSize =3D sizeof (TempData); - IpmiIn= stance->TempData[1] =3D 0;+ TempData[1] =3D 0; do { Status =3D Ipmi= SendCommand (@@ -109,11 +110,11 @@ Returns: IPMI_APP_GET_SELFTEST_RESULTS, NULL, = 0,- IpmiInstance->TempData,+ TempData, = &DataSize ); if (Status =3D=3D EFI_SUCCES= S) {- switch (IpmiInstance->TempData[1]) {+ switch (TempData[1]) = { case IPMI_APP_SELFTEST_NO_ERROR: case IPMI_APP_SELFTEST_N= OT_IMPLEMENTED: case IPMI_APP_SELFTEST_ERROR:@@ -146,7 +147,7 @@ Re= turns: IpmiInstance->BmcStatus =3D BMC_HARDFAIL; return Status; } else = {- DEBUG ((EFI_D_INFO, "[IPMI] BMC self-test result: %02X-%02X\n", IpmiI= nstance->TempData[1], IpmiInstance->TempData[2]));+ DEBUG ((DEBUG_INFO, = "[IPMI] BMC self-test result: %02X-%02X\n", TempData[1], TempData[2])); = // // Copy the Self test results to Error Status. Data will be copied= as long as it // does not exceed the size of the ErrorStatus variable.= @@ -155,13 +156,13 @@ Returns: (Index < DataSize) && (Index < sizeof (IpmiInstance->ErrorStatus)= ); Index++, TempPtr++ ) {- *TempPtr =3D IpmiInstance= ->TempData[Index];+ *TempPtr =3D TempData[Index]; } // // = Check the IPMI defined self test results. // Additional Cases are devic= e specific test results. //- switch (IpmiInstance->TempData[1]) {+ = switch (TempData[1]) { case IPMI_APP_SELFTEST_NO_ERROR: case = IPMI_APP_SELFTEST_NOT_IMPLEMENTED: IpmiInstance->BmcStatus =3D BMC_= OK;@@ -173,7 +174,7 @@ Returns: // BootBlock Firmware corruption, and Operational Firmware Corrupt= ion. All // other errors are BMC soft failures. //- = if ((IpmiInstance->TempData[2] & (IPMI_APP_SELFTEST_FRU_CORRUPT | IPMI_APP= _SELFTEST_FW_BOOTBLOCK_CORRUPT | IPMI_APP_SELFTEST_FW_CORRUPT)) !=3D 0) {+ = if ((TempData[2] & (IPMI_APP_SELFTEST_FRU_CORRUPT | IPMI_APP_SELFTES= T_FW_BOOTBLOCK_CORRUPT | IPMI_APP_SELFTEST_FW_CORRUPT)) !=3D 0) { = IpmiInstance->BmcStatus =3D BMC_HARDFAIL; } else { IpmiI= nstance->BmcStatus =3D BMC_SOFTFAIL;@@ -181,7 +182,7 @@ Returns: // // Check if SDR repository is empty and report it if it= is. //- if ((IpmiInstance->TempData[2] & IPMI_APP_SELFTEST_= SDR_REPOSITORY_EMPTY) !=3D 0) {+ if ((TempData[2] & IPMI_APP_SELFTES= T_SDR_REPOSITORY_EMPTY) !=3D 0) { if (*ErrorCount < MAX_SOFT_COUN= T) { StatusCodeValue[*ErrorCount] =3D EFI_COMPUTING_UNIT_FIRMWA= RE_PROCESSOR | CU_FP_EC_SDR_EMPTY; (*ErrorCount)++;@@ -244,6 +2= 45,8 @@ Returns: SM_CTRL_INFO *pBmcInfo; IPMI_MSG_GET_BMC_EXEC_RSP = *pBmcExecContext; UINT32 Retries;+ UINT8 = TempData[MAX_TEMP_DATA];+ #ifdef FAST_VIDEO_SUPPOR= T EFI_VIDEOPRINT_PROTOCOL *VideoPrintProtocol; EFI_STATUS = VideoPrintStatus;@@ -266,16 +269,16 @@ Returns: // // Get the device ID information for the BMC. //- DataSize =3D s= izeof (IpmiInstance->TempData);+ DataSize =3D sizeof (TempData); while (= EFI_ERROR (Status =3D IpmiSendCommand ( &Ipm= iInstance->IpmiTransport, IPMI_NETFN_APP, 0,= IPMI_APP_GET_DEVICE_ID, = NULL, 0,- IpmiInstance->TempData,= &DataSize))+ TempData, &DataSize)) = ) { DEBUG ((DEBUG_ERROR, "[IPMI] BMC does not respond by Get BMC DID (s= tatus: %r), %d retries left, ResponseData: 0x%lx\n",- Status, Re= tries, IpmiInstance->TempData));+ Status, Retries, TempData)); = if (Retries-- =3D=3D 0) { IpmiInstance->BmcStatus =3D BMC_HARDFAI= L;@@ -287,7 +290,7 @@ Returns: MicroSecondDelay (1*1000*1000); } - pBmcInfo =3D (SM_CTRL_INFO*)&Ip= miInstance->TempData[0];+ pBmcInfo =3D (SM_CTRL_INFO*)&TempData[0]; DEBU= G ((EFI_D_ERROR, "[IPMI] BMC Device ID: 0x%02X, firmware version: %d.%02X U= pdateMode:%x\n", pBmcInfo->DeviceId, pBmcInfo->MajorFirmwareRev, pBmcInfo->= MinorFirmwareRev,pBmcInfo->UpdateMode)); // // In OpenBMC, UpdateMode: = the bit 7 of byte 4 in get device id command is used for the BMC status:@@ = -303,10 +306,10 @@ Returns: IPMI_NETFN_FIRMWARE, 0, IPMI_GET_BMC_EXECUTI= ON_CONTEXT, NULL, 0,- IpmiInstance->TempData, = &DataSize+ TempData, &DataSize ); - pBmcExe= cContext =3D (IPMI_MSG_GET_BMC_EXEC_RSP*)&IpmiInstance->TempData[0];+ pB= mcExecContext =3D (IPMI_MSG_GET_BMC_EXEC_RSP*)&TempData[0]; DEBUG ((DEB= UG_INFO, "[IPMI] Operational status of BMC: 0x%x\n", pBmcExecContext->Curre= ntExecutionContext)); if ((pBmcExecContext->CurrentExecutionContext =3D= =3D IPMI_BMC_IN_FORCED_UPDATE_MODE) && !EFI_ERROR (Status)) {@@ -32= 4,12 +327,12 @@ Returns: IPMI_NETFN_APP, 0, IPMI_APP_GET_DEVI= CE_ID, NULL, 0,- IpmiInstance->TempDat= a, &DataSize+ TempData, &DataSize ); = if (!EFI_ERROR (Status)) {- pBmcInfo =3D (SM_CTRL_INFO*)&I= pmiInstance->TempData[0];- DEBUG ((EFI_D_ERROR, "[IPMI] UpdateMode= Retries: %d pBmcInfo->UpdateMode:%x, Status: %r, Response Data: 0x%lx\n"= ,Retries, pBmcInfo->UpdateMode, Status, IpmiInstance->TempData));+ = pBmcInfo =3D (SM_CTRL_INFO*)&TempData[0];+ DEBUG ((DEBUG_ERROR, "= [IPMI] UpdateMode Retries: %d pBmcInfo->UpdateMode:%x, Status: %r, Respon= se Data: 0x%lx\n",Retries, pBmcInfo->UpdateMode, Status, TempData)); = if (pBmcInfo->UpdateMode =3D=3D BMC_READY) { mIpmiInstance-= >BmcStatus =3D BMC_OK; return EFI_SUCCESS;diff --git a/Features= /Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/PeiGenericIpmi.c = b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/PeiGene= ricIpmi.c index 3efb772b684f..e8b99b6900c5 100644 --- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/Pei= GenericIpmi.c +++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/ +++ PeiGenericIpmi.c @@ -288,6 +288,7 @@ Returns: UINT32 DataSize; SM_CTRL_INFO *pBmcInfo; UINTN = Retries;+ UINT8 TempData[MAX_TEMP_DATA]; // = // Set up a loop to retry for up to PcdIpmiBmcReadyDelayTimer seconds. Ca= lculate retries not timeout@@ -298,7 +299,7 @@ Returns: // // Get the device ID information for the BMC. //- DataSize =3D s= izeof (mIpmiInstance->TempData);+ DataSize =3D sizeof (TempData); while = (EFI_ERROR (Status =3D PeiIpmiSendCommand ( = &mIpmiInstance->IpmiTransportPpi, IPMI_NETFN= _APP,@@ -306,7 +307,7 @@ Returns: IPMI_APP_GET_DEVICE_ID, = NULL, 0,- = mIpmiInstance->TempData,+ TempData, = &DataSize ))) = { DEBUG ((EFI_D_ERROR, "[IPMI] BMC does not respond (status: %r), %d re= tries left\n",@@ -322,7 +323,7 @@ Returns: // MicroSecondDelay (1*1000*1000); }- pBmcInfo =3D (SM_CTRL_INF= O*) &mIpmiInstance->TempData[0];+ pBmcInfo =3D (SM_CTRL_INFO*) &TempData[0= ]; DEBUG ((DEBUG_INFO, "[IPMI PEI] BMC Device ID: 0x%02X, firmware versio= n: %d.%02X UpdateMode:%x\n", pBmcInfo->DeviceId, pBmcInfo->MajorF= irmwareRev, pBmcInfo->MinorFirmwareRev, pBmcInfo->UpdateMode)); //@@ -347= ,11 +348,11 @@ Returns: IPMI_APP_GET_DEVICE_ID, NULL, = 0,- mIpmiInstance->TempData,+ TempDa= ta, &DataSize ); if (!EFI_ERROR (St= atus)) {- pBmcInfo =3D (SM_CTRL_INFO*) &mIpmiInstance->TempData[0];+= pBmcInfo =3D (SM_CTRL_INFO*) &TempData[0]; DEBUG ((DEBUG_IN= FO, "[IPMI PEI] UpdateMode Retries:%x pBmcInfo->UpdateMode:%x\n", Retries= , pBmcInfo->UpdateMode)); if (pBmcInfo->UpdateMode =3D=3D BMC_READY= ) { mIpmiInstance->BmcStatus =3D BMC_OK;diff --git a/Features/Int= el/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/PeiIpmiBmc.c b/Featur= es/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/PeiIpmiBmc.c index 32665b3e2244..dbe25421ae49 100644 --- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/Pei= IpmiBmc.c +++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/ +++ PeiIpmiBmc.c @@ -99,6 +99,7 @@ Returns: IPMI_COMMAND *IpmiCommand; IPMI_RESPONSE = *IpmiResponse; UINT8 Index;+ UINT8 = TempData[MAX_TEMP_DATA]; IpmiInstance =3D INSTANCE_FROM_PEI_SM_IP= MI_BMC_THIS (This); @@ -107,8 +108,8 @@ Returns: // response data. Since the command format is different from the respon= se // format, the buffer is cast to both structure definitions. //- Ip= miCommand =3D (IPMI_COMMAND*) IpmiInstance->TempData;- IpmiResponse = =3D (IPMI_RESPONSE*) IpmiInstance->TempData;+ IpmiCommand =3D (IPMI_COMM= AND*) TempData;+ IpmiResponse =3D (IPMI_RESPONSE*) TempData; // // = Send IPMI command to BMCdiff --git a/Features/Intel/OutOfBandManagement/Ipm= iFeaturePkg/GenericIpmi/Pei/PeiIpmiBmcDef.h b/Features/Intel/OutOfBandManag= ement/IpmiFeaturePkg/GenericIpmi/Pei/PeiIpmiBmcDef.h index 3fbe70ce629d..fc9fbacf1a2b 100644 --- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/Pei= IpmiBmcDef.h +++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Pei/ +++ PeiIpmiBmcDef.h @@ -49,7 +49,6 @@ typedef struct { UINTN Signature; UINT64 KcsTimeoutPer= iod; UINT8 SlaveAddress;- UINT8 TempDa= ta[MAX_TEMP_DATA]; BMC_STATUS BmcStatus; UINT64 = ErrorStatus; UINT8 SoftErrorCount;--=20 2.35.3