* [PATCH v1 0/1] ShellPkg: Adds Local APIC parser to AcpiView @ 2022-08-09 6:49 Abdul Lateef Attar 2022-08-09 6:49 ` [PATCH v1 1/1] " Abdul Lateef Attar 0 siblings, 1 reply; 4+ messages in thread From: Abdul Lateef Attar @ 2022-08-09 6:49 UTC (permalink / raw) To: devel; +Cc: Ray Ni, Zhichao Gao 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> Abdul Lateef Attar (1): ShellPkg: Adds Local APIC parser to AcpiView ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c | 74 ++++++++++++++++++-- 1 file changed, 67 insertions(+), 7 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v1 1/1] ShellPkg: Adds Local APIC parser to AcpiView 2022-08-09 6:49 [PATCH v1 0/1] ShellPkg: Adds Local APIC parser to AcpiView Abdul Lateef Attar @ 2022-08-09 6:49 ` Abdul Lateef Attar 2022-08-22 9:19 ` Gao, Zhichao 0 siblings, 1 reply; 4+ messages in thread From: Abdul Lateef Attar @ 2022-08-09 6:49 UTC (permalink / raw) To: devel; +Cc: Ray Ni, Zhichao Gao 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> --- ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c | 74 ++++++++++++++++++-- 1 file changed, 67 insertions(+), 7 deletions(-) diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c index aaa68c99f514..41edcb9ffd1d 100644 --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser.c @@ -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,17 +207,65 @@ 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. **/ 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"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 } + { L"X2APIC ID", 4, 4, 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 ( -- 2.25.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v1 1/1] ShellPkg: Adds Local APIC parser to AcpiView 2022-08-09 6:49 ` [PATCH v1 1/1] " Abdul Lateef Attar @ 2022-08-22 9:19 ` Gao, Zhichao 2022-08-31 2:32 ` 回复: [edk2-devel] " gaoliming 0 siblings, 1 reply; 4+ messages in thread From: Gao, Zhichao @ 2022-08-22 9:19 UTC (permalink / raw) To: Abdul Lateef Attar, devel@edk2.groups.io; +Cc: Ni, Ray It is better to file a BZ for this change. Anyway, Reviewed-by: Zhichao Gao <zhichao.gao@intel.com> Thanks, Zhichao > -----Original Message----- > From: Abdul Lateef Attar <abdattar@amd.com> > Sent: Tuesday, August 9, 2022 2:49 PM > To: devel@edk2.groups.io > Cc: Ni, Ray <ray.ni@intel.com>; Gao, Zhichao <zhichao.gao@intel.com> > Subject: [PATCH v1 1/1] 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> > --- > > ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser. > c | 74 ++++++++++++++++++-- > 1 file changed, 67 insertions(+), 7 deletions(-) > > diff --git > a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars > er.c > b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars > er.c > index aaa68c99f514..41edcb9ffd1d 100644 > --- > a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars > er.c > +++ > b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars > er.c > @@ -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,17 +207,65 @@ 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. > > **/ > > 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"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 } > > + { L"X2APIC ID", 4, 4, 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 ( > > -- > 2.25.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* 回复: [edk2-devel] [PATCH v1 1/1] ShellPkg: Adds Local APIC parser to AcpiView 2022-08-22 9:19 ` Gao, Zhichao @ 2022-08-31 2:32 ` gaoliming 0 siblings, 0 replies; 4+ messages in thread From: gaoliming @ 2022-08-31 2:32 UTC (permalink / raw) To: devel, zhichao.gao, 'Abdul Lateef Attar'; +Cc: 'Ni, Ray' Abdul: This patch is merged again into edk2 at 3c06953fd76ca2d1372ce5b0df14608de53cd148. Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Gao, Zhichao > 发送时间: 2022年8月22日 17:19 > 收件人: Abdul Lateef Attar <abdattar@amd.com>; devel@edk2.groups.io > 抄送: Ni, Ray <ray.ni@intel.com> > 主题: Re: [edk2-devel] [PATCH v1 1/1] ShellPkg: Adds Local APIC parser to > AcpiView > > It is better to file a BZ for this change. Anyway, > Reviewed-by: Zhichao Gao <zhichao.gao@intel.com> > > Thanks, > Zhichao > > > -----Original Message----- > > From: Abdul Lateef Attar <abdattar@amd.com> > > Sent: Tuesday, August 9, 2022 2:49 PM > > To: devel@edk2.groups.io > > Cc: Ni, Ray <ray.ni@intel.com>; Gao, Zhichao <zhichao.gao@intel.com> > > Subject: [PATCH v1 1/1] 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> > > --- > > > > > ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtParser. > > c | 74 ++++++++++++++++++-- > > 1 file changed, 67 insertions(+), 7 deletions(-) > > > > diff --git > > > a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars > > er.c > > > b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars > > er.c > > index aaa68c99f514..41edcb9ffd1d 100644 > > --- > > > a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars > > er.c > > +++ > > > b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Madt/MadtPars > > er.c > > @@ -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,17 +207,65 @@ 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. > > > > **/ > > > > 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"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 } > > > > + { L"X2APIC ID", 4, 4, 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 ( > > > > -- > > 2.25.1 > > > > > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-08-31 2:32 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-08-09 6:49 [PATCH v1 0/1] ShellPkg: Adds Local APIC parser to AcpiView Abdul Lateef Attar 2022-08-09 6:49 ` [PATCH v1 1/1] " Abdul Lateef Attar 2022-08-22 9:19 ` Gao, Zhichao 2022-08-31 2:32 ` 回复: [edk2-devel] " gaoliming
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox