From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) by mx.groups.io with SMTP id smtpd.web10.35336.1683150632171118522 for ; Wed, 03 May 2023 14:50:32 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@bsdio.com header.s=fm1 header.b=cFPF68qc; spf=pass (domain: bsdio.com, ip: 64.147.123.25, mailfrom: rebecca@bsdio.com) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 6EBCF32009AC; Wed, 3 May 2023 17:50:31 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Wed, 03 May 2023 17:50:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdio.com; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1683150631; x= 1683237031; bh=xDl8RtQgcz3iUcfQFF6DmpjgbCwnlKMQd5WhXuB0Ooo=; b=c FPF68qccU2EOBdDFhCj6WMWMyrwXuZZynBX/+hWxbqBzQ3klWwIdz73AgO3DQdMc Q/cIcj1RAf3Vg50ppBp5Gqfh5suNhGjomHUcS/IAGwMuTz2z+UFq/7+TzMav0jLY HGKxfGXA6sw/SvLaMpEHPq1E64goUvA6Jv69Eko59iAO6ibujFXiJoQMH0sPKoW+ CK4lDpKxB46F8ah9HlXj2BS98x+r3ieyRjsn66fboofCI22+whL98sVROCw+kGJT pKzmAwNBhO2OOAWF16eA0rVkXMo622dqaJ9yS0kTDgabOSQq36MpQKgXO3G50SDk UmNP2nbBue15b6HT32vSQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1683150631; x= 1683237031; bh=xDl8RtQgcz3iUcfQFF6DmpjgbCwnlKMQd5WhXuB0Ooo=; b=J nh3G8EiFWuMYinQnkbTMzmJlK86NiJBiQ55PdMG40MiZLlT+g5CIqnkLom2czPz9 xcc5RM3ORBwwzGZibmf4JJApODXgqArPzC3MR7tkJyOWonJVms2fkZByp+eiUzj2 /HfSbYUF0NaZPv/qn21Vr/gMqiZU3zW65wN29If1HWPnknt3l0ldYdTgAEEj8Xcl sT8wFywMtwVxmIgfIkQOZDLoWISUbFrqzdWbFDwKbxF1b/+I1iY7zQWVx2gcjZiM rrZbrHS3ZNCXdVCriXsnGOvNxXwffljP8cAKX25eb8mtnVZlmcBCFHty1khQI1eT mGZLrGjRbILlTlg/Ha5Nw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfedvledgtdefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomheptfgvsggv tggtrgcuvehrrghnuceorhgvsggvtggtrgessghsughiohdrtghomheqnecuggftrfgrth htvghrnhepgeffueeuledvgefgvddvgfetvdduhfefkedukeeikedtudekfeetteeifedv leefnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprh gvsggvtggtrgessghsughiohdrtghomh X-ME-Proxy: Feedback-ID: i5b994698:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 3 May 2023 17:50:30 -0400 (EDT) From: "Rebecca Cran" To: devel@edk2.groups.io, Ray Ni , Zhichao Gao Cc: Rebecca Cran Subject: [PATCH 1/2] ShellPkg: acpiview: add support for parsing the Local APIC NMI structure Date: Wed, 3 May 2023 15:50:22 -0600 Message-Id: <20230503215023.1176725-2-rebecca@bsdio.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230503215023.1176725-1-rebecca@bsdio.com> References: <20230503215023.1176725-1-rebecca@bsdio.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Add support to acpiview for parsing the Local APIC NMI structure. Signed-off-by: Rebecca Cran --- ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c | 60 ++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c index 41edcb9ffd1d..9d33ad2606e8 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c @@ -213,6 +213,12 @@ STATIC CONST ACPI_PARSER LocalApicFlags[] = { { L"Reserved", 30, 2, L"%d", NULL, NULL, NULL, NULL } }; +STATIC CONST ACPI_PARSER MpsIntiFlags[] = { + { L"Polarity", 2, 0, L"%d", NULL, NULL, NULL, NULL }, + { L"Trigger Mode", 2, 2, L"%d", NULL, NULL, NULL, NULL }, + { L"Reserved", 12, 4, L"%d", NULL, NULL, NULL, NULL } +}; + /** This function traces Bit Flags fields. If no format string is specified the Format must be NULL. @@ -243,6 +249,36 @@ DumpLocalApicBitFlags ( ); } +/** + This function traces Bit Flags fields. + If no format string is specified the Format must be NULL. + + @param [in] Format Optional format string for tracing the data. + @param [in] Ptr Pointer to the start of the buffer. +**/ +VOID +EFIAPI +DumpMpsIntiBitFlags ( + IN CONST CHAR16 *Format OPTIONAL, + IN UINT8 *Ptr + ) +{ + if (Format != NULL) { + Print (Format, *(UINT32 *)Ptr); + return; + } + + Print (L"0x%X\n", *(UINT32 *)Ptr); + ParseAcpiBitFields ( + TRUE, + 2, + NULL, + Ptr, + 4, + PARSER_PARAMS (MpsIntiFlags) + ); +} + /** An ACPI_PARSER array describing the Processor Local APIC Structure. **/ @@ -255,6 +291,18 @@ STATIC CONST ACPI_PARSER ProcessorLocalApic[] = { { L"Flags", 4, 4, NULL, DumpLocalApicBitFlags, NULL, NULL, NULL } }; +/** + An ACPI_PARSER array describing the Local APIC NMI Structure. + **/ +STATIC CONST ACPI_PARSER LocalApicNmi[] = { + { L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL }, + { L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL }, + + { L"ACPI Processor UID", 1, 2, L"0x%x", NULL, NULL, NULL, NULL }, + { L"Flags", 2, 3, NULL, DumpMpsIntiBitFlags, NULL, NULL, NULL }, + { L"Local APIC LINT#", 1, 5, L"%d", NULL, NULL, NULL, NULL } +}; + /** An ACPI_PARSER array describing the Processor Local x2APIC Structure. **/ @@ -502,6 +550,18 @@ ParseAcpiMadt ( ); break; } + case EFI_ACPI_6_3_LOCAL_APIC_NMI: + { + ParseAcpi ( + TRUE, + 2, + "LOCAL APIC NMI", + InterruptContollerPtr, + *MadtInterruptControllerLength, + PARSER_PARAMS (LocalApicNmi) + ); + break; + } case EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC: { ParseAcpi ( -- 2.39.2