From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.107.236.41]) by mx.groups.io with SMTP id smtpd.web11.80176.1684120206182704360 for ; Sun, 14 May 2023 20:10:06 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=uZcOeAo3; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.236.41, mailfrom: abdullateef.attar@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LIvBgLeYPogroDvMoWtrkb5+IpvorePEC//Jxet0tkf9B05ERwK+TLzJ3zKBAmVOylCvROiw0670/rclgCqK5Cv/Ohf112Bd4NuHQpM2rT3DQtiTr9sgQ+kUQXumqFFSvCf1QNA6U7evWU/62jZT6U/K6GrDMANLPTyhk2qTCObOq+fBjD25CWsQ+vlU0oNU8Wj2/YvAfTeGVP8NDrQSbeCLg2ViG4OqUp3H9fK93ZThS3QaM63D/1RPvyqxzxze9kYOgabJseEZXGYcVcCKfLKtE5loLlUnhImBQWHIrn9md42CC0hoOuvZXS0mTDWwEZfcDOkEx3CcxX8CnsQcIw== 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=NNTcQnYv6YCkK5HrPnXMbAzwxiRILCyltv5xccr+pVQ=; b=lcmsyArdx3yuZwQV/pNQY9fdYZZhj+Jj85Qzfvnr2qSY2FDfreLpN/LN028HN3yAupEG9GgCbIkhiXnPd6TlPp2lLw8UryZHKnUOtQT3Qjw5Y2R3sFoZbf2J/igGzcpVaHhbI1qK8kU3YSo7+aKPnBWOsGIQlWPkPRue2QKn+ss4DVj/XqsIhcA2PkTGqJQZXIDU+6zZqhybe1Ky20g/BL3NIY6jyoMB9kKx1P3YFPLM9IAHQOCu/EqulCQPtvjCPboTUau5ZSgFyYaWr/TCMk7gUaHIE6yEbEkY+FXX7c6/9mhoelIeNQMSm44VwEcirFaovjqHKNfvbsNNBKoLAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NNTcQnYv6YCkK5HrPnXMbAzwxiRILCyltv5xccr+pVQ=; b=uZcOeAo3Og66DD1cBuQr4f2idvk9uVVCwCEic6ycpRQbs9QSvgFoWpuVAGsBCi7rvVuil2WW1WakGRShrZDllmml13YeywXYMIhuPa2ScARG7rmnmYvEBaSCl8dA+pn06N/ajirdzycSSVaf0Whp3PIJjnG+0MW69h3jLSQ10Ik= Received: from PH7PR12MB6466.namprd12.prod.outlook.com (2603:10b6:510:1f6::22) by SJ0PR12MB6709.namprd12.prod.outlook.com (2603:10b6:a03:44a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.21; Mon, 15 May 2023 03:10:03 +0000 Received: from PH7PR12MB6466.namprd12.prod.outlook.com ([fe80::9837:e9ae:f203:bb7f]) by PH7PR12MB6466.namprd12.prod.outlook.com ([fe80::9837:e9ae:f203:bb7f%6]) with mapi id 15.20.6387.020; Mon, 15 May 2023 03:10:03 +0000 From: "Attar, AbdulLateef (Abdul Lateef)" To: "Chang, Abner" , "devel@edk2.groups.io" CC: Isaac Oram , Nickle Wang , Tinh Nguyen Subject: Re: [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiBmcElog: IPMI BMC Elog Driver Thread-Topic: [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiBmcElog: IPMI BMC Elog Driver Thread-Index: AQHZhLhQCvEf937XTEO3r+Cn1233ua9aq/JA Date: Mon, 15 May 2023 03:10:02 +0000 Message-ID: References: <20230512095819.1898-1-abner.chang@amd.com> In-Reply-To: <20230512095819.1898-1-abner.chang@amd.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=ae16f3ba-b148-41a8-909d-faf27d29e2e1;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2023-05-15T03:09:42Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR12MB6466:EE_|SJ0PR12MB6709:EE_ x-ms-office365-filtering-correlation-id: 819309ef-4a55-4d49-9dbd-08db54f1e052 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: t5vbWDR0DDjpppNzxnCqmvZF0VdJXht6LGNFLBemXmVGzVExOztdXeSCGzwYpgK71mzNC4PibgZ7afQiv6D+tcleMyBAPRawEPFkFFtejtZYv3zg3GLY/B0cjNnbEwrLuIDbeuFY73isihqjGuiQfUY91Eqz+fzoNrmOAG6Oiwhx+5t41kys6KTOW9+ME3/8cqiWPApSgCwHVnAdQZs7UQsdcrwL2iwgI9m6T4YFR0uyNS0KkYTs+yHN8K4JkRHKN/EmlP34l3vaWOyYV8ulP/F2vXU9MUN4GdsnJAlESQm6p9dhue+y8EVC+RRvnnkK2ZO4xOX2YHgYg1f8D2HiO8Kro1CpewHPEJXm9uxEsXJ0Ek37JBeqWx5uTCnQVa4pgFezJy1pn8Wk9IsnvEuQQXK8e10d8D+4DIvhS1rFx59DwQGhjIOO875urWRUsFJPq9NTbyGUtzN6cRG1dUg/4NkKKTnNh6C0kXslK7ttDsTfW2PO1HrRvDLtGUGtgIijIKrK59XOF6yXDWbWsT0JHVHOlE/2FGUVc4bkca337G41rvhzKP5g3OjtkpY5LL6v4B9dbQdt+DGhiYremRcXFBhB5eE0PS0ZwtHxyXK8tUgVW29j8F3Tuso41iPhk/cD x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB6466.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(346002)(39860400002)(366004)(376002)(396003)(136003)(451199021)(66476007)(55016003)(7696005)(2906002)(53546011)(83380400001)(71200400001)(186003)(76116006)(478600001)(9686003)(66446008)(66556008)(66946007)(41300700001)(4326008)(316002)(110136005)(64756008)(19627235002)(54906003)(52536014)(5660300002)(26005)(6506007)(8936002)(8676002)(38100700002)(38070700005)(86362001)(33656002)(122000001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?Is7bUEeAGELnX+qd79UsyWgqigjlnx+E/w2IKCjn3sX+tUWsO5yH7v66WjyF?= =?us-ascii?Q?q+DDk0hv2CDoe1RWlrSUYkFX1LrNN4LnafifVM788IpZNXCdZkWmWbIxGKe/?= =?us-ascii?Q?QPKGQTXk1OabElbDLIIZwXdHMqbT//wNbOEKfaQK/EQhvtoP/7hGXpUf/YxS?= =?us-ascii?Q?tO19QSUid+b5cr6aqQDY2+bFnKzRinxv1E6ByUUqYQcX6v3jbpvJx3VK6/6A?= =?us-ascii?Q?/oLNxbRP0Rcr2hJ8tKA6xKa2tYvy/046CvNCiTYDILVKqRwNriFbJXvrKr2u?= =?us-ascii?Q?+X6A1EWKpTlmgMbcMFYDdBWiD60YKBr0R+B8wU+2wz5W6RLGFAskt7MT9JEG?= =?us-ascii?Q?Rld+qPuWRSLuA/RctLDxwkPh0BTy9T6F0Ldk05LgroYvKj54r8cSTozLlVPG?= =?us-ascii?Q?zUVmqYJfquAAXpnndVciXHNLHWYDAq/s9G31XJ/DiYgJb3gElpBXcz4dRWC4?= =?us-ascii?Q?ugvVbyqXvGWUGMklAjR95/DHC6kMa8ek4am44jV57Gh61J6j6YyDqfb7Mzmr?= =?us-ascii?Q?XC+08iTMw0d2+b+22XFEkhSWeBi6wpO0VknDnc/h+HBSVCpX+UoMVeFx9qgV?= =?us-ascii?Q?qPqDxewWbGZtsuyCEz0dyIlk2ywWaBjrpPRaPuSN3jYEwxQWE+NTkeTChq/U?= =?us-ascii?Q?AD2tQGJfMHYtYSD9Dby28cjwOmL4g4ShKb23bOGuRLfmgDIw88CYNH3a8umJ?= =?us-ascii?Q?aR6z0NmECvdFNb4MmB5BHIf1VANNsEu4NBK1chhJipWoJhLF+lMMHhWGDOk3?= =?us-ascii?Q?9Tu5x7VIstUfNS0yNoDp8lX/cm7vrNuiLLFM9uZYj+QtRpb+Woy2eFGy+5yk?= =?us-ascii?Q?X24qMQQ+xY1EldcGPQUL56bGR49icxBAuUjZGdj2TrCiIq4i2AlyFXoj74Di?= =?us-ascii?Q?sw8wG2WIG2Q0RWKZYedTD8RlY4ktt0+G10fRGSWEOaIM/gYEBCY4+AbjSVui?= =?us-ascii?Q?5ccnSoGSidJhXZuMD7ecASum2fU9+zL9JzDf1S0JJSbnDxMDkHWX78RhsSHt?= =?us-ascii?Q?i79yL4Vj1IJpnTeeP1RapBs682pjwEgZqJAofCicD7P2eWXU3siW3f0OQU0z?= =?us-ascii?Q?wTlmFMmjoe7A0A4qhTERoJIIvdXB8LjyZZeEKKPjlNTFhlQxgteg+Ir2gGCk?= =?us-ascii?Q?EaWlZfCVWt/KMiKExqOaMsOvfDkpDAzoF6kZrv4D+B81+9Tfoz9MnmB45tmw?= =?us-ascii?Q?RiByIUEMxinzr5gM8D+z9brWYTGtatWVzq4+oZdXR88J3iCymJtDKbZ1L5K4?= =?us-ascii?Q?Hq05BZqFFodeVxm3BJkMqj424knPaU91akPdLuRItktEfhSchg1HCRBhRujd?= =?us-ascii?Q?+Pp6+oeWXhlGyH9BNI3M0V9+QCRPp07sgYp7PG3a9DQO/6+ifr4gb/fAbY4o?= =?us-ascii?Q?KPSgg0dXg01Hgnkzc412viopnyRkaFAKjAmODC5omob8qK9hPmEd4xhFhua0?= =?us-ascii?Q?feqgWT/wV3X28fBt73xxBxXWXMDN2sbsp+vL22fr1wrZRALQ5tfj6ScMQf/S?= =?us-ascii?Q?DCbkAC1UIymHzC5SjDQ2VKAoXgH1j7jCBo0tfAhgwJP/szZiAeWIwW8WO+XD?= =?us-ascii?Q?G4Ezyy+SkRG8PZqV3S8=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB6466.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 819309ef-4a55-4d49-9dbd-08db54f1e052 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 May 2023 03:10:03.0006 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: nFxhS7OpoWO/Sya9SWJo5HXzY+OiM060ttClltxdaq4uctaijDl8w5Wd6hbxo+hwAPKRMqSkxSQjXblxNjL5Fg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6709 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Reviewed-by: Abdul Lateef Attar -----Original Message----- From: Chang, Abner Sent: 12 May 2023 15:28 To: devel@edk2.groups.io Cc: Isaac Oram ; Attar, AbdulLateef (Abdul Lateef) = ; Nickle Wang ; Tinh Nguyen = Subject: [edk2-platforms][PATCH 1/2] ManageabilityPkg/IpmiBmcElog: IPMI BMC= Elog Driver From: Abner Chang IpmiBmcElog is cloned from edk2-platforms/Features/Intel/OutOfBandManagement/ IpmiFeaturePkg/BmcElog in order to consolidate edk2 system manageability support in one place. Uncustify is applied to C files and no functionalities are changed in this = patch. We will still keep the one under IpmiFeaturePkg/BmcElog until the reference= to this instance are removed from platforms. Signed-off-by: Abner Chang Cc: Isaac Oram Cc: Abdul Lateef Attar Cc: Nickle Wang Cc: Tinh Nguyen --- .../Universal/IpmiBmcElog/BmcElog.inf | 33 +++ .../Universal/IpmiBmcElog/BmcElog.c | 192 ++++++++++++++++++ 2 files changed, 225 insertions(+) create mode 100644 Features/ManageabilityPkg/Universal/IpmiBmcElog/BmcElog= .inf create mode 100644 Features/ManageabilityPkg/Universal/IpmiBmcElog/BmcElog= .c diff --git a/Features/ManageabilityPkg/Universal/IpmiBmcElog/BmcElog.inf b/= Features/ManageabilityPkg/Universal/IpmiBmcElog/BmcElog.inf new file mode 100644 index 0000000000..4c28862fe5 --- /dev/null +++ b/Features/ManageabilityPkg/Universal/IpmiBmcElog/BmcElog.inf @@ -0,0 +1,33 @@ +### @file +# Component description file for BMC ELOG. +# +# Copyright (c) 2018 - 2019, Intel Corporation. All rights +reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # ### + +[Defines] + INF_VERSION =3D 0x00010005 + BASE_NAME =3D BmcElog + FILE_GUID =3D A0FF2235-B652-45E3-B3D2-B20F3E714E6F + MODULE_TYPE =3D DXE_DRIVER + PI_SPECIFICATION_VERSION =3D 0x0001000A + VERSION_STRING =3D 1.0 + ENTRY_POINT =3D InitializeBmcElogLayer + +[Sources] + BmcElog.c + +[Packages] + ManageabilityPkg/ManageabilityPkg.dec + MdePkg/MdePkg.dec + +[LibraryClasses] + DebugLib + IpmiCommandLib + UefiBootServicesTableLib + UefiDriverEntryPoint + +[Depex] + TRUE diff --git a/Features/ManageabilityPkg/Universal/IpmiBmcElog/BmcElog.c b/Fe= atures/ManageabilityPkg/Universal/IpmiBmcElog/BmcElog.c new file mode 100644 index 0000000000..ab179e9d49 --- /dev/null +++ b/Features/ManageabilityPkg/Universal/IpmiBmcElog/BmcElog.c @@ -0,0 +1,192 @@ +/** @file + BMC Event Log functions. + +Copyright (c) 2018 - 2019, Intel Corporation. All rights reserved.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include +#include +#include +#include +#include #include + +#include +#include + +EFI_STATUS +EFIAPI +CheckIfSelIsFull ( + VOID + ); + +/** + This function erases event logs and waits unti complete. + + @param [in] ResvId - Reserved ID + + @retval EFI_STATUS EFI_SUCCESS + EFI_NO_RESPONSE + +**/ +EFI_STATUS +WaitTillErased ( + IN UINT8 *ResvId + ) +{ + INTN Counter; + IPMI_CLEAR_SEL_REQUEST ClearSel; + IPMI_CLEAR_SEL_RESPONSE ClearSelResponse; + + Counter =3D 0x200; + ZeroMem (&ClearSelResponse, sizeof (ClearSelResponse)); + + while (TRUE) { + ZeroMem (&ClearSel, sizeof (ClearSel)); + ClearSel.Reserve[0] =3D ResvId[0]; + ClearSel.Reserve[1] =3D ResvId[1]; + ClearSel.AscC =3D 0x43; + ClearSel.AscL =3D 0x4C; + ClearSel.AscR =3D 0x52; + ClearSel.Erase =3D 0x00; + + IpmiClearSel ( + &ClearSel, + &ClearSelResponse + ); + + if ((ClearSelResponse.ErasureProgress & 0xf) =3D=3D 1) { + return EFI_SUCCESS; + } + + // + // If there is not a response from the BMC controller we need to retu= rn and not hang. + // + --Counter; + if (Counter =3D=3D 0x0) { + return EFI_NO_RESPONSE; + } + } +} + +/** + This function activates BMC event log. + + @param [in] EnableElog Enable/Disable event log @param [out] + ElogStatus return log status + + @retval EFI_STATUS + +**/ +EFI_STATUS +EfiActivateBmcElog ( + IN BOOLEAN *EnableElog, + OUT BOOLEAN *ElogStatus + ) +{ + EFI_STATUS Status; + UINT8 ElogStat; + IPMI_SET_BMC_GLOBAL_ENABLES_REQUEST SetBmcGlobalEnables; + IPMI_GET_BMC_GLOBAL_ENABLES_RESPONSE GetBmcGlobalEnables; + UINT8 CompletionCode; + + Status =3D EFI_SUCCESS; + ElogStat =3D 0; + + Status =3D IpmiGetBmcGlobalEnables (&GetBmcGlobalEnables); if + (EFI_ERROR (Status)) { + return Status; + } + + if (EnableElog =3D=3D NULL) { + *ElogStatus =3D + GetBmcGlobalEnables.GetEnables.Bits.SystemEventLogging; + } else { + if (Status =3D=3D EFI_SUCCESS) { + if (*EnableElog) { + ElogStat =3D 1; + } + + CopyMem (&SetBmcGlobalEnables, (UINT8 *)&GetBmcGlobalEnables + 1, si= zeof (UINT8)); + SetBmcGlobalEnables.SetEnables.Bits.SystemEventLogging =3D + ElogStat; + + Status =3D IpmiSetBmcGlobalEnables (&SetBmcGlobalEnables, &Completio= nCode); + } + } + + return Status; +} + +/** + + @retval EFI_STATUS + +**/ +EFI_STATUS +SetElogRedirInstall ( + VOID + ) +{ + BOOLEAN EnableElog; + BOOLEAN ElogStatus; + + // + // Activate the Event Log (This should depend upon Setup). + // + EfiActivateBmcElog (&EnableElog, &ElogStatus); + return EFI_SUCCESS; +} + +/** + Entry point of BmcElog DXE driver + + @param [in] ImageHandle ImageHandle of the loaded driver @param + [in] SystemTable Pointer to the System Table + + @retval EFI_STATUS + +**/ +EFI_STATUS +EFIAPI +InitializeBmcElogLayer ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + SetElogRedirInstall (); + + CheckIfSelIsFull (); + + return EFI_SUCCESS; +} + +/** + This function verifies the BMC SEL is full and When it is + reports the error to the Error Manager. + + @retval EFI_STATUS + +**/ +EFI_STATUS +EFIAPI +CheckIfSelIsFull ( + VOID + ) +{ + EFI_STATUS Status; + UINT8 SelIsFull; + IPMI_GET_SEL_INFO_RESPONSE SelInfo; + + Status =3D IpmiGetSelInfo (&SelInfo); + if (EFI_ERROR (Status)) { + return EFI_DEVICE_ERROR; + } + + // + // Check the Bit7 of the OperationByte if SEL is OverFlow. + // + SelIsFull =3D (SelInfo.OperationSupport & 0x80); DEBUG ((DEBUG_INFO, + "SelIsFull - 0x%x\n", SelIsFull)); + + return EFI_SUCCESS; +} -- 2.37.1.windows.1