From nobody Thu Mar 13 16:59:34 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+100882+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+100882+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1678317537; cv=none; d=zohomail.com; s=zohoarc; b=j9GbqOuoKkA7BUOBb6UgjLx/miJj+Pqy4k4zEgxSU08BmrI+iDPTcvVYHk5bmgf1zioeS6WnxzCVsUEhF7Tx5REyUDw3ZX/rhAp9z8czkIOlyAA8hPdlYhXdIahHMX8sBU3YrBLtqbcfLId8yZycVDl1IbMAMuFvdGQs0BZN/o0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1678317537; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject; bh=cxnD8lhiqERupWLyMszaEf0msQIIpVGqDqlJPX4KQgc=; b=Nbr+7/IEATWe97lCb5Wy9Kq4lTs7Zldz+NoCjr9l9xj3tZRJIY94rqDyq9R1aNExnoEebXTkjagG4j+ur4IftxyXsgPDVmEBU8JNr4OQrOoA0ibZxRP5ZD7VXz2wZFa9orbOvmzN8yOahrXgT3PFXueoDKkvpZbUGkA/pNUSKmQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+100882+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1678317537751133.16203345165798; Wed, 8 Mar 2023 15:18:57 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id VetFYY1788612xMtbHpfRBIc; Wed, 08 Mar 2023 15:18:57 -0800 X-Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by mx.groups.io with SMTP id smtpd.web11.188.1678317536431357158 for ; Wed, 08 Mar 2023 15:18:56 -0800 X-Received: by mail-lj1-f176.google.com with SMTP id h3so15862lja.12 for ; Wed, 08 Mar 2023 15:18:56 -0800 (PST) X-Gm-Message-State: tLdN7ltg98GCZ9sgX8umd5IYx1787277AA= X-Google-Smtp-Source: AK7set+IoC7i3L0yzljS/1hvs9qnMXFkhWFflJ3sMrHH6WJzCdl9atCDuzsWjDvtM2xvbhiPjKkWFA== X-Received: by 2002:a2e:b006:0:b0:295:b0cd:519 with SMTP id y6-20020a2eb006000000b00295b0cd0519mr6547893ljk.3.1678317534578; Wed, 08 Mar 2023 15:18:54 -0800 (PST) X-Received: from localhost.localdomain ([79.164.221.98]) by smtp.gmail.com with ESMTPSA id w11-20020a05651c102b00b00293526a0c87sm2726630ljm.41.2023.03.08.15.18.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Mar 2023 15:18:54 -0800 (PST) From: "Mike Maslenkin" To: Cc: devel@edk2.groups.io, Mike Maslenkin , Isaac Oram , Nate DeSimone , Liming Gao Subject: [edk2-devel] [PATCH edk2-platforms v2 1/3] IpmiFeaturePkg: fix IPMI GetSelfTest command response parsing Date: Thu, 9 Mar 2023 02:18:43 +0300 Message-Id: <20230308231845.10895-2-mike.maslenkin@gmail.com> In-Reply-To: <20230308231845.10895-1-mike.maslenkin@gmail.com> References: <20230308231845.10895-1-mike.maslenkin@gmail.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mike.maslenkin@gmail.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1678317537; bh=MdH7BzVrsW1+ug+tExiqpK924mxcV3+/4zT5kIt9t1s=; h=Cc:Date:From:Reply-To:Subject:To; b=fAUY8VLwkDqo6I3pJH+908nHvi2dKrrzXywx4LcpQKumt8sgWbI4x3kSvm/IHUm5jc0 XWkvnXMiNaz8rnIkz/kX6qzXWG2Nt7WJYrm1y01lGM8iBANy6D6ZS7UGj4IYRot3JEaBi UzbB7PxWEZLiK2jxnkX5ag076FJsn+ns+VA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1678317538410100003 Content-Type: text/plain; charset="utf-8" Byte 0 of a response contains completion code for the command. So, the examined data starts from byte 1. It's easy to make a mistake here since specification counts response data from 1. For the "Get Self Test Results" command Intelligent Platform Management Interface Specification v2.0 rev 1.1 paragraph 20.4 defines response as: +-----+---------------------------------------------------------------+ |byte | data field | +-----+---------------------------------------------------------------+ | 1 | Completion Code | | | | | 2 | 55h =3D No error. All Self Tests Passed. | | | 56h =3D Self Test function not implemented in this controller. | | | 57h =3D Corrupted or inaccessible data or devices | | | 58h =3D Fatal hardware error | | | | | 3 | For byte 2 =3D 55h, 56h, FFh: 00h | | | For byte 2 =3D 58h, all other: Device-specific | | | For byte 2 =3D 57h: self-test error bitfield. | +-----+---------------------------------------------------------------+ Signed-off-by: Mike Maslenkin Reviewed-by: Isaac Oram Cc: Nate DeSimone Cc: Liming Gao --- .../IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/= Dxe/IpmiInit.c b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericI= pmi/Dxe/IpmiInit.c index d788b4886723..aeaefaad642e 100644 --- a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/Ipm= iInit.c +++ b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/Ipm= iInit.c @@ -161,7 +161,7 @@ Returns: // Check the IPMI defined self test results. // Additional Cases are device specific test results. // - switch (IpmiInstance->TempData[0]) { + switch (IpmiInstance->TempData[1]) { case IPMI_APP_SELFTEST_NO_ERROR: case IPMI_APP_SELFTEST_NOT_IMPLEMENTED: IpmiInstance->BmcStatus =3D BMC_OK; @@ -173,7 +173,7 @@ Returns: // BootBlock Firmware corruption, and Operational Firmware Corrupt= ion. All // other errors are BMC soft failures. // - if ((IpmiInstance->TempData[1] & (IPMI_APP_SELFTEST_FRU_CORRUPT | = IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT | IPMI_APP_SELFTEST_FW_CORRUPT)) != =3D 0) { + if ((IpmiInstance->TempData[2] & (IPMI_APP_SELFTEST_FRU_CORRUPT | = IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT | IPMI_APP_SELFTEST_FW_CORRUPT)) != =3D 0) { IpmiInstance->BmcStatus =3D BMC_HARDFAIL; } else { IpmiInstance->BmcStatus =3D BMC_SOFTFAIL; @@ -181,7 +181,7 @@ Returns: // // Check if SDR repository is empty and report it if it is. // - if ((IpmiInstance->TempData[1] & IPMI_APP_SELFTEST_SDR_REPOSITORY_= EMPTY) !=3D 0) { + if ((IpmiInstance->TempData[2] & IPMI_APP_SELFTEST_SDR_REPOSITORY_= EMPTY) !=3D 0) { if (*ErrorCount < MAX_SOFT_COUNT) { StatusCodeValue[*ErrorCount] =3D EFI_COMPUTING_UNIT_FIRMWARE_P= ROCESSOR | CU_FP_EC_SDR_EMPTY; (*ErrorCount)++; --=20 2.35.3 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#100882): https://edk2.groups.io/g/devel/message/100882 Mute This Topic: https://groups.io/mt/97485241/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-