toggle quoted message
Show quoted text
-----Original Message----- From: Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...> Sent: Wednesday, October 20, 2021 9:14 PM To: Gao, Zhichao <zhichao.gao@...>; devel@edk2.groups.io Cc: Ni, Ray <ray.ni@...> Subject: RE: [edk2-devel] [PATCH] ShellPkg: Parse I/O APIC and x2APIC structure
[AMD Official Use Only]
Gentle reminder to merge the code.
-----Original Message----- From: Gao, Zhichao <zhichao.gao@...> Sent: 09 September 2021 07:54 To: Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@...>; devel@edk2.groups.io Cc: Ni, Ray <ray.ni@...> Subject: RE: [edk2-devel] [PATCH] ShellPkg: Parse I/O APIC and x2APIC structure
[CAUTION: External Email]
Reviewed-by: Zhichao Gao <zhichao.gao@...>
Thanks, Zhichao
-----Original Message----- From: Abdul Lateef Attar <AbdulLateef.Attar@...> Sent: Tuesday, August 24, 2021 11:30 PM To: devel@edk2.groups.io Cc: Ni, Ray <ray.ni@...>; Gao, Zhichao <zhichao.gao@...>; Abdul Lateef Attar <AbdulLateef.Attar@...> Subject: [edk2-devel] [PATCH] ShellPkg: Parse I/O APIC and x2APIC structure
Parse and print the below interrupt structures - I/O APIC Structure - Interrupt Source Override Structure - Processor Local x2APIC Structure - Local x2APIC NMI Structure
Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@...> --- .../Parsers/Madt/MadtParser.c | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+)
diff --git
a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
er.c
b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
er.c index 15aa2392b6..2ba8c9ae52 100644 ---
a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
er.c +++
b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars
+++ er.c @@ -181,6 +181,57 @@ STATIC CONST ACPI_PARSER GicITSParser[] = { {L"Reserved", 4, 16, L"0x%x", NULL, NULL, NULL, NULL} };
+/** + An ACPI_PARSER array describing the IO APIC Structure. +**/ +STATIC CONST ACPI_PARSER IoApic[] = { + {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL}, + {L"I/O APIC ID", 1, 2, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Reserved", 1, 3, L"0x%x", NULL, NULL, NULL, NULL}, + {L"I/O APIC Address", 4, 4, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Global System Interrupt Base", 4, 8, L"0x%x", NULL, NULL, NULL, +NULL} }; + +/** + An ACPI_PARSER array describing the Interrupt Source Override Structure.
+**/ +STATIC CONST ACPI_PARSER InterruptSourceOverride[] = { + {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL}, + {L"Bus", 1, 2, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Source", 1, 3, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Global System Interrupt", 4, 4, L"0x%x", NULL, NULL, NULL, +NULL}, + {L"Flags", 2, 8, L"0x%x", NULL, NULL, NULL, NULL} }; + + +/** + An ACPI_PARSER array describing the Processor Local x2APIC Structure. +**/ +STATIC CONST ACPI_PARSER ProcessorLocalX2Apic[] = { + {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL}, + {L"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL}, + + {L"X2APIC ID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL}, {L"Flags", + 4, 8, L"0x%x", NULL, NULL, NULL, NULL}, {L"ACPI Processor UID", 4, + 12, L"0x%x", NULL, NULL, NULL, NULL} }; + +/** + An ACPI_PARSER array describing the Local x2APIC NMI Structure. +**/ +STATIC CONST ACPI_PARSER LocalX2ApicNmi[] = { + {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Length", 1, 1, L"%d", NULL, NULL, NULL, NULL}, + {L"Flags", 2, 2, L"0x%x", NULL, NULL, NULL, NULL}, + + {L"ACPI Processor UID", 4, 4, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Local x2APIC LINT#", 1, 8, L"0x%x", NULL, NULL, NULL, NULL}, + {L"Reserved", 3, 9, L"0x%x%x%x", Dump3Chars, NULL, NULL, NULL} }; + /** An ACPI_PARSER array describing the ACPI MADT Table. **/ @@ -357,6 +408,54 @@ ParseAcpiMadt ( break; }
+ case EFI_ACPI_6_3_IO_APIC: { + ParseAcpi ( + TRUE, + 2, + "IO APIC", + InterruptContollerPtr, + *MadtInterruptControllerLength, + PARSER_PARAMS (IoApic) + ); + break; + } + + case EFI_ACPI_6_3_INTERRUPT_SOURCE_OVERRIDE: { + ParseAcpi ( + TRUE, + 2, + "INTERRUPT SOURCE OVERRIDE", + InterruptContollerPtr, + *MadtInterruptControllerLength, + PARSER_PARAMS (InterruptSourceOverride) + ); + break; + } + + case EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC: { + ParseAcpi ( + TRUE, + 2, + "PROCESSOR LOCAL X2APIC", + InterruptContollerPtr, + *MadtInterruptControllerLength, + PARSER_PARAMS (ProcessorLocalX2Apic) + ); + break; + } + + case EFI_ACPI_6_3_LOCAL_X2APIC_NMI: { + ParseAcpi ( + TRUE, + 2, + "LOCAL x2APIC NMI", + InterruptContollerPtr, + *MadtInterruptControllerLength, + PARSER_PARAMS (LocalX2ApicNmi) + ); + break; + } + default: { IncrementErrorCount (); Print ( -- 2.25.1
|