From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.198.1574208803069248894 for ; Tue, 19 Nov 2019 16:13:23 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: liming.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Nov 2019 16:13:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,219,1571727600"; d="scan'208";a="407938710" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga006.fm.intel.com with ESMTP; 19 Nov 2019 16:13:21 -0800 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 19 Nov 2019 16:13:21 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 19 Nov 2019 16:13:21 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.127]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.149]) with mapi id 14.03.0439.000; Wed, 20 Nov 2019 08:13:19 +0800 From: "Liming Gao" To: "devel@edk2.groups.io" , "krzysztof.koch@arm.com" , Sami Mujawar CC: "Ni, Ray" , "Gao, Zhichao" , Matteo Carlini , nd , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v2 1/1] ShellPkg: acpiview: Update SRAT parser to ACPI 6.3 Thread-Topic: [edk2-devel] [PATCH v2 1/1] ShellPkg: acpiview: Update SRAT parser to ACPI 6.3 Thread-Index: AQHVmWciRv0IR4PsIESMwkVtfZPlZaeQLWgAgAJpIjD//4A7AIABJJwg Date: Wed, 20 Nov 2019 00:13:19 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E543AA0@SHSMSX104.ccr.corp.intel.com> References: <20191112143937.68588-1-krzysztof.koch@arm.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E5437A2@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable So, this patch passes the review before the soft feature freeze. If it gets= Tested-By before hard feature freeze, will it plan to catch 201911 stable = tag? Thanks Liming >-----Original Message----- >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of >Krzysztof Koch >Sent: Tuesday, November 19, 2019 10:44 PM >To: Gao, Liming ; devel@edk2.groups.io; Sami >Mujawar >Cc: Ni, Ray ; Gao, Zhichao ; >Matteo Carlini ; nd >Subject: Re: [edk2-devel] [PATCH v2 1/1] ShellPkg: acpiview: Update SRAT >parser to ACPI 6.3 > >Hi Liming, > >This is a feature support. This patch is a rebased version of a reviewed = patch >that was pending to be merged due to a lack of 'tested-by', see: >https://edk2.groups.io/g/devel/message/42297?p=3D,,,20,0,0,0::Created,,Kr= zys >ztof+Koch+SRAT,20,2,0,32042587 >https://edk2.groups.io/g/devel/message/42665?p=3D,,,20,0,0,0::Created,,We= +c >an+review+for+your+code+change.+And+for+our+personal+point%2C+the+ >change+is+OK.,20,2,0,32042696 > >Kind regards, >Krzysztof > > >-----Original Message----- >From: Gao, Liming >Sent: Tuesday, November 19, 2019 14:24 >To: devel@edk2.groups.io; Sami Mujawar ; >Krzysztof Koch >Cc: Ni, Ray ; Gao, Zhichao ; >Matteo Carlini ; nd >Subject: RE: [edk2-devel] [PATCH v2 1/1] ShellPkg: acpiview: Update SRAT >parser to ACPI 6.3 > >Krzysztof: > Does this patch plan to catch to edk2 201911 stable tag? This change is= like a >feature support. But, it doesn't pass review before soft feature freeze. > >Thanks >Liming >> -----Original Message----- >> From: devel@edk2.groups.io On Behalf Of Sami >> Mujawar >> Sent: Monday, November 18, 2019 5:33 PM >> To: Krzysztof Koch ; devel@edk2.groups.io >> Cc: Ni, Ray ; Gao, Zhichao ; >> Matteo Carlini ; nd >> Subject: Re: [edk2-devel] [PATCH v2 1/1] ShellPkg: acpiview: Update >> SRAT parser to ACPI 6.3 >> >> Reviewed-by: Sami Mujawar >> >> Regards, >> >> Sami Mujawar >> -----Original Message----- >> From: Krzysztof Koch >> Sent: 12 November 2019 02:40 PM >> To: devel@edk2.groups.io >> Cc: ray.ni@intel.com; zhichao.gao@intel.com; Matteo Carlini >> ; Sami Mujawar ; nd >> >> Subject: [PATCH v2 1/1] ShellPkg: acpiview: Update SRAT parser to ACPI >> 6.3 >> >> Add support for parsing revision 3 of System Resource Affinity Table (S= RAT). >> >> Decode and dump the new Generic Initiator Affinity Structure. >> >> Validate the Device Handle Type field inside the Generic Initiator Affi= nity >Structure. >> >> Signed-off-by: Krzysztof Koch >> --- >> >> The changes can be seen at >> https://github.com/KrzysztofKoch1/edk2/tree/582_acpiview_6_3_srat_v2 >> >> Notes: >> v2: >> - rebase on latest master [Krzysztof] >> >> Readme.md = | 4 +- >> ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c = | 33 >+++ >> ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h = | 16 + >> >> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser.c >> | 313 ++++++++++++++++++-- >> 4 files changed, 343 insertions(+), 23 deletions(-) >> >> diff --git a/Readme.md b/Readme.md >> index >> >acbcca88d3c62d392e6f94b1ad7de2d8627e3a38..594f16b20756ab78987fef4feac >2 >> e439743d5b4a 100644 >> --- a/Readme.md >> +++ b/Readme.md >> @@ -17,7 +17,7 @@ for the UEFI and PI specifications from www.uefi.org. >> >> Windows >> VS2019 >> - edk2-ci >> + master >> >> ci/_build/latest?definitionId=3D32&branchName=3Dmaster"> >> > src=3D"https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/Windo= w >> s%20VS2019%20CI?branchName=3Dmaster"/> >> @@ -34,7 +34,7 @@ for the UEFI and PI specifications from www.uefi.org. >> >> Ubuntu >> GCC >> - edk2-ci >> + master >> >> ci/_build/latest?definitionId=3D31&branchName=3Dmaster"> >> > src=3D"https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/Ubunt= u >> %20GCC5%20CI?branchName=3Dmaster"/> >> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c >> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c >> index >> >a569c3c55406ab58536834e56ce9701f7edeffee..2b2ecb93cef9ee28b752e7bf2d >92 >> 0b059dbf7d6b 100644 >> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c >> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.c >> @@ -405,6 +405,39 @@ Dump8Chars ( >> ); >> } >> >> +/** >> + This function traces 12 characters which can be optionally >> + formated using the format string if specified. >> + >> + 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 >> +Dump12Chars ( >> + IN CONST CHAR16* Format OPTIONAL, >> + IN UINT8* Ptr >> + ) >> +{ >> + Print ( >> + (Format !=3D NULL) ? Format : L"%c%c%c%c%c%c%c%c%c%c%c%c", >> + Ptr[0], >> + Ptr[1], >> + Ptr[2], >> + Ptr[3], >> + Ptr[4], >> + Ptr[5], >> + Ptr[6], >> + Ptr[7], >> + Ptr[8], >> + Ptr[9], >> + Ptr[10], >> + Ptr[11] >> + ); >> +} >> + >> /** >> This function indents and prints the ACPI table Field Name. >> >> diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h >> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h >> index >> >20ca358bddfa5953bfb1d1bebaebbf3079eaba01..0dc721bd2cc59538432d4a9ca >b6c >> 21728cc77d33 100644 >> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h >> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h >> @@ -184,6 +184,22 @@ Dump8Chars ( >> IN UINT8* Ptr >> ); >> >> +/** >> + This function traces 12 characters which can be optionally >> + formated using the format string if specified. >> + >> + 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 >> +Dump12Chars ( >> + IN CONST CHAR16* Format OPTIONAL, >> + IN UINT8* Ptr >> + ); >> + >> /** >> This function indents and prints the ACPI table Field Name. >> >> diff --git >> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser >> .c >> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser >> .c index >> >a8aa420487bb6bf29fc38221d0b221573c64b8b3..d60476eb748e022f45d231e24c >32 >> b2b53e29bbd7 100644 >> --- >> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratParser >> .c >> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Srat/SratPa >> +++ rs >> +++ er.c >> @@ -5,7 +5,7 @@ >> SPDX-License-Identifier: BSD-2-Clause-Patent >> >> @par Reference(s): >> - - ACPI 6.2 Specification - Errata A, September 2017 >> + - ACPI 6.3 Specification - January 2019 >> **/ >> >> #include >> @@ -17,6 +17,7 @@ >> // Local Variables >> STATIC CONST UINT8* SratRAType; >> STATIC CONST UINT8* SratRALength; >> +STATIC CONST UINT8* SratDeviceHandleType; >> STATIC ACPI_DESCRIPTION_HEADER_INFO AcpiHdrInfo; >> >> /** >> @@ -32,13 +33,52 @@ EFIAPI >> ValidateSratReserved ( >> IN UINT8* Ptr, >> IN VOID* Context >> - ) >> -{ >> - if (*(UINT32*)Ptr !=3D 1) { >> - IncrementErrorCount (); >> - Print (L"\nERROR: Reserved should be 1 for backward compatibility.= \n"); >> - } >> -} >> + ); >> + >> +/** >> + This function validates the Device Handle Type field in the Generic >> +Initiator >> + Affinity Structure. >> + >> + @param [in] Ptr Pointer to the start of the field data. >> + @param [in] Context Pointer to context specific information e.g. thi= s >> + could be a pointer to the ACPI table header. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +ValidateSratDeviceHandleType ( >> + IN UINT8* Ptr, >> + IN VOID* Context >> + ); >> + >> +/** >> + This function traces the Device Handle field inside Generic >> +Initiator >> + Affinity Structure. >> + >> + @param [in] Format Format string for tracing the data. >> + @param [in] Ptr Pointer to the start of the buffer. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +DumpSratDeviceHandle ( >> + IN CONST CHAR16* Format, >> + IN UINT8* Ptr >> + ); >> + >> +/** >> + This function traces the PCI BDF Number field inside Device Handle >> +- PCI >> + >> + @param [in] Format Format string for tracing the data. >> + @param [in] Ptr Pointer to the start of the buffer. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +DumpSratPciBdfNumber ( >> + IN CONST CHAR16* Format, >> + IN UINT8* Ptr >> + ); >> >> /** >> This function traces the APIC Proximity Domain field. >> @@ -52,14 +92,7 @@ EFIAPI >> DumpSratApicProximity ( >> IN CONST CHAR16* Format, >> IN UINT8* Ptr >> - ) >> -{ >> - UINT32 ProximityDomain; >> - >> - ProximityDomain =3D Ptr[0] | (Ptr[1] << 8) | (Ptr[2] << 16); >> - >> - Print (Format, ProximityDomain); >> -} >> + ); >> >> /** >> An ACPI_PARSER array describing the SRAT Table. >> @@ -103,6 +136,41 @@ STATIC CONST ACPI_PARSER >SratGicITSAffinityParser[] =3D { >> {L"ITS Id", 4, 8, L"0x%x", NULL, NULL, NULL, NULL}, }; >> >> +/** >> + An ACPI_PARSER array describing the Generic Initiator Affinity >> +Structure **/ STATIC CONST ACPI_PARSER >> +SratGenericInitiatorAffinityParser[] =3D { >> + {L"Type", 1, 0, L"0x%x", NULL, NULL, NULL, NULL}, >> + {L"Length", 1, 1, L"0x%x", NULL, NULL, NULL, NULL}, >> + >> + {L"Reserved", 1, 2, L"0x%x", NULL, NULL, NULL, NULL}, >> + {L"Device Handle Type", 1, 3, L"%d", NULL, >(VOID**)&SratDeviceHandleType, >> + ValidateSratDeviceHandleType, NULL}, >> + {L"Proximity Domain", 4, 4, L"0x%x", NULL, NULL, NULL, NULL}, >> + {L"Device Handle", 16, 8, L"%s", DumpSratDeviceHandle, NULL, NULL, >> +NULL}, >> + {L"Flags", 4, 24, L"0x%x", NULL, NULL, NULL, NULL}, >> + {L"Reserved", 4, 28, L"0x%x", NULL, NULL, NULL, NULL} }; >> + >> +/** >> + An ACPI_PARSER array describing the Device Handle - ACPI **/ STATIC >> +CONST ACPI_PARSER SratDeviceHandleAcpiParser[] =3D { >> + {L"ACPI_HID", 8, 0, L"0x%lx", NULL, NULL, NULL, NULL}, >> + {L"ACPI_UID", 4, 8, L"0x%x", NULL, NULL, NULL, NULL}, >> + {L"Reserved", 4, 12, L"0x%x", NULL, NULL, NULL, NULL} }; >> + >> +/** >> + An ACPI_PARSER array describing the Device Handle - PCI **/ STATIC >> +CONST ACPI_PARSER SratDeviceHandlePciParser[] =3D { >> + {L"PCI Segment", 2, 0, L"0x%x", NULL, NULL, NULL, NULL}, >> + {L"PCI BDF Number", 2, 2, NULL, DumpSratPciBdfNumber, NULL, NULL, >> +NULL}, >> + {L"Reserved", 12, 4, L"%x %x %x %x - %x %x %x %x - %x %x %x %x", >Dump12Chars, >> + NULL, NULL, NULL} >> +}; >> + >> /** >> An ACPI_PARSER array describing the Memory Affinity structure. >> **/ >> @@ -152,6 +220,190 @@ STATIC CONST ACPI_PARSER >SratX2ApciAffinityParser[] =3D { >> {L"Reserved", 4, 20, L"0x%x", NULL, NULL, NULL, NULL} }; >> >> +/** >> + This function validates the Reserved field in the SRAT table header. >> + >> + @param [in] Ptr Pointer to the start of the field data. >> + @param [in] Context Pointer to context specific information e.g. thi= s >> + could be a pointer to the ACPI table header. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +ValidateSratReserved ( >> + IN UINT8* Ptr, >> + IN VOID* Context >> + ) >> +{ >> + if (*(UINT32*)Ptr !=3D 1) { >> + IncrementErrorCount (); >> + Print (L"\nERROR: Reserved should be 1 for backward >> +compatibility.\n"); >> + } >> +} >> + >> +/** >> + This function validates the Device Handle Type field in the Generic >> +Initiator >> + Affinity Structure. >> + >> + @param [in] Ptr Pointer to the start of the field data. >> + @param [in] Context Pointer to context specific information e.g. thi= s >> + could be a pointer to the ACPI table header. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +ValidateSratDeviceHandleType ( >> + IN UINT8* Ptr, >> + IN VOID* Context >> + ) >> +{ >> + UINT8 DeviceHandleType; >> + >> + DeviceHandleType =3D *Ptr; >> + >> + if (DeviceHandleType > EFI_ACPI_6_3_PCI_DEVICE_HANDLE) { >> + IncrementErrorCount (); >> + Print ( >> + L"\nERROR: Invalid Device Handle Type: %d. Must be between 0 >and %d.", >> + DeviceHandleType, >> + EFI_ACPI_6_3_PCI_DEVICE_HANDLE >> + ); >> + } >> +} >> + >> +/** >> + This function traces the Device Handle field inside Generic >> +Initiator >> + Affinity Structure. >> + >> + @param [in] Format Format string for tracing the data. >> + @param [in] Ptr Pointer to the start of the buffer. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +DumpSratDeviceHandle ( >> + IN CONST CHAR16* Format, >> + IN UINT8* Ptr >> + ) >> +{ >> + if (SratDeviceHandleType =3D=3D NULL) { >> + IncrementErrorCount (); >> + Print (L"\nERROR: Device Handle Type read incorrectly.\n"); >> + return; >> + } >> + >> + Print (L"\n"); >> + >> + if (*SratDeviceHandleType =3D=3D EFI_ACPI_6_3_ACPI_DEVICE_HANDLE) { >> + ParseAcpi ( >> + TRUE, >> + 2, >> + NULL, >> + Ptr, >> + sizeof (EFI_ACPI_6_3_DEVICE_HANDLE_ACPI), >> + PARSER_PARAMS (SratDeviceHandleAcpiParser) >> + ); >> + } else if (*SratDeviceHandleType =3D=3D EFI_ACPI_6_3_PCI_DEVICE_HAND= LE) >{ >> + ParseAcpi ( >> + TRUE, >> + 2, >> + NULL, >> + Ptr, >> + sizeof (EFI_ACPI_6_3_DEVICE_HANDLE_PCI), >> + PARSER_PARAMS (SratDeviceHandlePciParser) >> + ); >> + } >> +} >> + >> +/** >> + This function traces the PCI BDF Number field inside Device Handle >> +- PCI >> + >> + @param [in] Format Format string for tracing the data. >> + @param [in] Ptr Pointer to the start of the buffer. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +DumpSratPciBdfNumber ( >> + IN CONST CHAR16* Format, >> + IN UINT8* Ptr >> + ) >> +{ >> + CHAR16 Buffer[OUTPUT_FIELD_COLUMN_WIDTH]; >> + >> + Print (L"\n"); >> + >> + /* >> + The PCI BDF Number subfields are printed in the order specified in= the >ACPI >> + specification. The format of the 16-bit PCI BDF Number field is as= follows: >> + >> + +-----+------+------+ >> + |DEV | FUNC | BUS | >> + +-----+------+------+ >> + |15:11| 10:8 | 7:0 | >> + +-----+------+------+ >> + */ >> + >> + // Print PCI Bus Number (Bits 7:0 of Byte 2) UnicodeSPrint ( >> + Buffer, >> + sizeof (Buffer), >> + L"PCI Bus Number" >> + ); >> + PrintFieldName (4, Buffer); >> + Print ( >> + L"0x%x\n", >> + *Ptr >> + ); >> + >> + Ptr++; >> + >> + // Print PCI Device Number (Bits 7:3 of Byte 3) UnicodeSPrint ( >> + Buffer, >> + sizeof (Buffer), >> + L"PCI Device Number" >> + ); >> + PrintFieldName (4, Buffer); >> + Print ( >> + L"0x%x\n", >> + (*Ptr & (BIT7 | BIT6 | BIT5 | BIT4 | BIT3)) >> 3 >> + ); >> + >> + // PCI Function Number (Bits 2:0 of Byte 3) >> + UnicodeSPrint ( >> + Buffer, >> + sizeof (Buffer), >> + L"PCI Function Number" >> + ); >> + PrintFieldName (4, Buffer); >> + Print ( >> + L"0x%x\n", >> + *Ptr & (BIT2 | BIT1 | BIT0) >> + ); >> +} >> + >> +/** >> + This function traces the APIC Proximity Domain field. >> + >> + @param [in] Format Format string for tracing the data. >> + @param [in] Ptr Pointer to the start of the buffer. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +DumpSratApicProximity ( >> + IN CONST CHAR16* Format, >> + IN UINT8* Ptr >> + ) >> +{ >> + UINT32 ProximityDomain; >> + >> + ProximityDomain =3D Ptr[0] | (Ptr[1] << 8) | (Ptr[2] << 16); >> + >> + Print (Format, ProximityDomain); >> +} >> + >> /** >> This function parses the ACPI SRAT table. >> When trace is enabled this function parses the SRAT table and @@ -18= 3,6 >+435,7 @@ ParseAcpiSrat ( >> UINT8* ResourcePtr; >> UINT32 GicCAffinityIndex; >> UINT32 GicITSAffinityIndex; >> + UINT32 GenericInitiatorAffinityIndex; >> UINT32 MemoryAffinityIndex; >> UINT32 ApicSapicAffinityIndex; >> UINT32 X2ApicAffinityIndex; >> @@ -190,6 +443,7 @@ ParseAcpiSrat ( >> >> GicCAffinityIndex =3D 0; >> GicITSAffinityIndex =3D 0; >> + GenericInitiatorAffinityIndex =3D 0; >> MemoryAffinityIndex =3D 0; >> ApicSapicAffinityIndex =3D 0; >> X2ApicAffinityIndex =3D 0; >> @@ -232,7 +486,7 @@ ParseAcpiSrat ( >> } >> >> switch (*SratRAType) { >> - case EFI_ACPI_6_2_GICC_AFFINITY: >> + case EFI_ACPI_6_3_GICC_AFFINITY: >> AsciiSPrint ( >> Buffer, >> sizeof (Buffer), >> @@ -249,7 +503,7 @@ ParseAcpiSrat ( >> ); >> break; >> >> - case EFI_ACPI_6_2_GIC_ITS_AFFINITY: >> + case EFI_ACPI_6_3_GIC_ITS_AFFINITY: >> AsciiSPrint ( >> Buffer, >> sizeof (Buffer), >> @@ -266,7 +520,24 @@ ParseAcpiSrat ( >> ); >> break; >> >> - case EFI_ACPI_6_2_MEMORY_AFFINITY: >> + case EFI_ACPI_6_3_GENERIC_INITIATOR_AFFINITY: >> + AsciiSPrint ( >> + Buffer, >> + sizeof (Buffer), >> + "Generic Initiator Affinity Structure [%d]", >> + GenericInitiatorAffinityIndex++ >> + ); >> + ParseAcpi ( >> + TRUE, >> + 2, >> + Buffer, >> + ResourcePtr, >> + *SratRALength, >> + PARSER_PARAMS (SratGenericInitiatorAffinityParser) >> + ); >> + break; >> + >> + case EFI_ACPI_6_3_MEMORY_AFFINITY: >> AsciiSPrint ( >> Buffer, >> sizeof (Buffer), >> @@ -283,7 +554,7 @@ ParseAcpiSrat ( >> ); >> break; >> >> - case EFI_ACPI_6_2_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY: >> + case EFI_ACPI_6_3_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY: >> AsciiSPrint ( >> Buffer, >> sizeof (Buffer), >> @@ -300,7 +571,7 @@ ParseAcpiSrat ( >> ); >> break; >> >> - case EFI_ACPI_6_2_PROCESSOR_LOCAL_X2APIC_AFFINITY: >> + case EFI_ACPI_6_3_PROCESSOR_LOCAL_X2APIC_AFFINITY: >> AsciiSPrint ( >> Buffer, >> sizeof (Buffer), >> -- >> 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' >> >> >> >> > > >