mirror of https://github.com/acidanthera/audk.git
ShellPkg: Adds Local APIC parser to AcpiView
Parse Type 0 or Local APIC structure. Also parse the Local APIC Flags as bitfields. Cc: Ray Ni <ray.ni@intel.com> Cc: Zhichao Gao <zhichao.gao@intel.com> Signed-off-by: Abdul Lateef Attar <abdattar@amd.com> Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
This commit is contained in:
parent
04ecdc38cd
commit
3c06953fd7
|
@ -2,6 +2,7 @@
|
|||
MADT table parser
|
||||
|
||||
Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
|
||||
Copyright (c) 2022, AMD Incorporated. All rights reserved.
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
@par Reference(s):
|
||||
|
@ -206,6 +207,54 @@ STATIC CONST ACPI_PARSER InterruptSourceOverride[] = {
|
|||
{ L"Flags", 2, 8, L"0x%x", NULL, NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
STATIC CONST ACPI_PARSER LocalApicFlags[] = {
|
||||
{ L"Enabled", 1, 0, L"%d", NULL, NULL, NULL, NULL },
|
||||
{ L"Online Capable", 1, 1, L"%d", NULL, NULL, NULL, NULL },
|
||||
{ L"Reserved", 30, 2, L"%d", NULL, NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
/**
|
||||
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
|
||||
DumpLocalApicBitFlags (
|
||||
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 (LocalApicFlags)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
An ACPI_PARSER array describing the Processor Local APIC Structure.
|
||||
**/
|
||||
STATIC CONST ACPI_PARSER ProcessorLocalApic[] = {
|
||||
{ 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"APIC ID", 1, 3, L"0x%x", NULL, NULL, NULL, NULL },
|
||||
{ L"Flags", 4, 4, NULL, DumpLocalApicBitFlags, NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
/**
|
||||
An ACPI_PARSER array describing the Processor Local x2APIC Structure.
|
||||
**/
|
||||
|
@ -215,7 +264,7 @@ STATIC CONST ACPI_PARSER ProcessorLocalX2Apic[] = {
|
|||
{ 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"Flags", 4, 8, NULL, DumpLocalApicBitFlags, NULL, NULL, NULL },
|
||||
{ L"ACPI Processor UID", 4, 12, L"0x%x", NULL, NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
|
@ -441,7 +490,18 @@ ParseAcpiMadt (
|
|||
);
|
||||
break;
|
||||
}
|
||||
|
||||
case EFI_ACPI_6_3_PROCESSOR_LOCAL_APIC:
|
||||
{
|
||||
ParseAcpi (
|
||||
TRUE,
|
||||
2,
|
||||
"PROCESSOR LOCAL APIC",
|
||||
InterruptContollerPtr,
|
||||
*MadtInterruptControllerLength,
|
||||
PARSER_PARAMS (ProcessorLocalApic)
|
||||
);
|
||||
break;
|
||||
}
|
||||
case EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC:
|
||||
{
|
||||
ParseAcpi (
|
||||
|
|
Loading…
Reference in New Issue