From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) by mx.groups.io with SMTP id smtpd.web10.10602.1677540635031591935 for ; Mon, 27 Feb 2023 15:30:35 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=cDGcmMZS; spf=pass (domain: gmail.com, ip: 209.85.208.177, mailfrom: mike.maslenkin@gmail.com) Received: by mail-lj1-f177.google.com with SMTP id by8so8277953ljb.7 for ; Mon, 27 Feb 2023 15:30:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UhRDyJSwzA1KlrJvc5mboBXiWK7lk37BXtaPXY8wz9c=; b=cDGcmMZSYspeEXS5qtyE9Tnk+tZ2jrkn6xjp5oukA79LKUgrX3QLVg/dll82BlYSdL BB+O8ydXyg5jdvoXvRuz4aDdot/FjRkE0vfi8cJlNJlZsgibWEg3ShAqgiPjmoXUwWAZ WlspEV8fjDMF4lpxxOyNffP17eL5wN2vSr48+m3DW8jpVI8IbvXuedO1BdED/MeseO1w ukkXvG0yuRbv7Gc961xzmtz5l1gT2lPAopWaGnP6qE6Za+0rBzSXSUrub0PRWXy1EBN6 wbYRtX3hIceUlb1ne5bwcNoIdNdJ6hNbXR8qSxvY3SZBDwM4K6WhWTcpVTblQC3aCa6E PL7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UhRDyJSwzA1KlrJvc5mboBXiWK7lk37BXtaPXY8wz9c=; b=nXKESOcj6PMx+kSq6oVIKOp2OnTH5/Br69AccGYT4d9ly+NL3hKa0imrDhu7HE3CqH aKjlgv0YMSBJMEPcwr3laSwc6L/6CG+ujlqGuiGNAmp44AX57L9V8j08tIafQHQdtspr OHGbCwmuIrdaymrrEuoQ1zuBKkByHUOJWCwQ48RR470XV7ISxyV02PhEOUZ24k5fji8+ 3DDPI+Xcddq131SZKOFthgWchcjdshh5+zl/JyejMULRxIpH/J/Yfz3a6nebI/UOIOcE fIT241eyirL8CVr61AkvYK6M7LLZsSMPdEY6UlTQME+Fn68PYuONBnHC0bmdjhpyvITB vo3A== X-Gm-Message-State: AO0yUKXkSbIhnClZCAuHKLO8z03jNvLyVDLIdRmZahiGekmsZnaiEwte yme3Bve9SXRezufMW5Bjz9lKFzNA1os+a8xnGrLh+A== X-Google-Smtp-Source: AK7set/B34Y3XHTPNO8CDIGEwR/FV+Z0I6DeCITMETWOdh0ECvTY+slsANBVbKV0J9u3qozck7gPqw== X-Received: by 2002:a2e:8687:0:b0:295:9f20:bcdf with SMTP id l7-20020a2e8687000000b002959f20bcdfmr203083lji.9.1677540633084; Mon, 27 Feb 2023 15:30:33 -0800 (PST) Return-Path: Received: from localhost.localdomain ([195.91.209.163]) by smtp.gmail.com with ESMTPSA id r8-20020a2eb608000000b002935006e487sm908453ljn.122.2023.02.27.15.30.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Feb 2023 15:30:32 -0800 (PST) From: "Mike Maslenkin" To: devel@edk2.groups.io Cc: Mike Maslenkin , Isaac Oram , Nate DeSimone , Liming Gao Subject: [PATCH edk2-platforms 1/3] IpmiFeaturePkg: fix IPMI GetSelfTest command response parsing Date: Tue, 28 Feb 2023 02:27:55 +0300 Message-Id: <20230227232757.9312-2-mike.maslenkin@gmail.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20230227232757.9312-1-mike.maslenkin@gmail.com> References: <20230227232757.9312-1-mike.maslenkin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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 --- .../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.=0D // Additional Cases are device specific test results.=0D //=0D - switch (IpmiInstance->TempData[0]) {=0D + switch (IpmiInstance->TempData[1]) {=0D case IPMI_APP_SELFTEST_NO_ERROR:=0D case IPMI_APP_SELFTEST_NOT_IMPLEMENTED:=0D IpmiInstance->BmcStatus =3D BMC_OK;=0D @@ -173,7 +173,7 @@ Returns: // BootBlock Firmware corruption, and Operational Firmware Corrupt= ion. All=0D // other errors are BMC soft failures.=0D //=0D - if ((IpmiInstance->TempData[1] & (IPMI_APP_SELFTEST_FRU_CORRUPT | = IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT | IPMI_APP_SELFTEST_FW_CORRUPT)) != =3D 0) {=0D + if ((IpmiInstance->TempData[2] & (IPMI_APP_SELFTEST_FRU_CORRUPT | = IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT | IPMI_APP_SELFTEST_FW_CORRUPT)) != =3D 0) {=0D IpmiInstance->BmcStatus =3D BMC_HARDFAIL;=0D } else {=0D IpmiInstance->BmcStatus =3D BMC_SOFTFAIL;=0D @@ -181,7 +181,7 @@ Returns: //=0D // Check if SDR repository is empty and report it if it is.=0D //=0D - if ((IpmiInstance->TempData[1] & IPMI_APP_SELFTEST_SDR_REPOSITORY_= EMPTY) !=3D 0) {=0D + if ((IpmiInstance->TempData[2] & IPMI_APP_SELFTEST_SDR_REPOSITORY_= EMPTY) !=3D 0) {=0D if (*ErrorCount < MAX_SOFT_COUNT) {=0D StatusCodeValue[*ErrorCount] =3D EFI_COMPUTING_UNIT_FIRMWARE_P= ROCESSOR | CU_FP_EC_SDR_EMPTY;=0D (*ErrorCount)++;=0D --=20 2.35.3