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
|
MADT table parser
|
||||||
|
|
||||||
Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
|
Copyright (c) 2016 - 2020, ARM Limited. All rights reserved.
|
||||||
|
Copyright (c) 2022, AMD Incorporated. All rights reserved.
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
@par Reference(s):
|
@par Reference(s):
|
||||||
|
@ -206,17 +207,65 @@ STATIC CONST ACPI_PARSER InterruptSourceOverride[] = {
|
||||||
{ L"Flags", 2, 8, L"0x%x", NULL, NULL, NULL, NULL }
|
{ 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.
|
An ACPI_PARSER array describing the Processor Local x2APIC Structure.
|
||||||
**/
|
**/
|
||||||
STATIC CONST ACPI_PARSER ProcessorLocalX2Apic[] = {
|
STATIC CONST ACPI_PARSER ProcessorLocalX2Apic[] = {
|
||||||
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
|
{ L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL },
|
||||||
{ L"Length", 1, 1, L"%d", 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"Reserved", 2, 2, L"0x%x", NULL, NULL, NULL, NULL },
|
||||||
|
|
||||||
{ L"X2APIC ID", 4, 4, 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 }
|
{ L"ACPI Processor UID", 4, 12, L"0x%x", NULL, NULL, NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -441,7 +490,18 @@ ParseAcpiMadt (
|
||||||
);
|
);
|
||||||
break;
|
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:
|
case EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC:
|
||||||
{
|
{
|
||||||
ParseAcpi (
|
ParseAcpi (
|
||||||
|
|
Loading…
Reference in New Issue