From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id AD2AF9413C4 for ; Fri, 8 Mar 2024 12:45:48 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=SRSIrCoGKWYduXOXvEoBEFuO5ndQL2Mw7Ja/NMHRxWw=; c=relaxed/simple; d=groups.io; h=Message-ID:Date:User-Agent:Subject:To:CC:References:From:In-Reply-To:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20240206; t=1709901947; v=1; b=qVAEpIC+MP0e4DkhaqER4F27ffPKjQeGlzpTAdDv+LcRJKnG9hgFzkaHaYKXjiR55BMPkJ2B 23YaWr7tjIk6lJKF2Vk6NNL/Ay//7Fv34ok49el3oL+uuGaW/JMZdlHfbrOn2lI6FpGbOfGiDjP BWHVKM6+JbJWPvW4/3V9ap7Gh2MgPHfq5ynaFRRQCJoTkFCeN2nnivyt++tmgn2+puLxukdZxFT WAk/6hnWd31rUPAjkYZkreT93zKLMvlfFPMGz6QifPcLblXfvnLFVO0Uuus851TU0HYchAlCdAv yonUXTcama3VtH/MBqRi3xKeB7VE4rs71CGTwfzfk4bJA== X-Received: by 127.0.0.2 with SMTP id h05gYY7687511xFMrXnXWmJn; Fri, 08 Mar 2024 04:45:47 -0800 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.47]) by mx.groups.io with SMTP id smtpd.web10.20968.1709901946060176929 for ; Fri, 08 Mar 2024 04:45:46 -0800 X-Received: from IA1PR12MB6458.namprd12.prod.outlook.com (2603:10b6:208:3aa::22) by IA1PR12MB7592.namprd12.prod.outlook.com (2603:10b6:208:428::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.29; Fri, 8 Mar 2024 12:45:43 +0000 X-Received: from IA1PR12MB6458.namprd12.prod.outlook.com ([fe80::b913:7732:22e1:b71e]) by IA1PR12MB6458.namprd12.prod.outlook.com ([fe80::b913:7732:22e1:b71e%7]) with mapi id 15.20.7362.029; Fri, 8 Mar 2024 12:45:43 +0000 Message-ID: Date: Fri, 08 Mar 2024 04:45:46 -0800 User-Agent: Mozilla Thunderbird Subject: Re: [edk2-devel] [PATCH v2 2/2] ShellPkg/Acpiview: Adds ACPI WSMT Table parse To: devel@edk2.groups.io, pierre.gondois@arm.com, Abdul Lateef Attar CC: Zhichao Gao References: <08f22224-cbcb-4df9-93e2-1dd634a54163@arm.com> From: "Abdul Lateef Attar via groups.io" In-Reply-To: <08f22224-cbcb-4df9-93e2-1dd634a54163@arm.com> X-ClientProxiedBy: PN3PR01CA0041.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:98::10) To IA1PR12MB6458.namprd12.prod.outlook.com (2603:10b6:208:3aa::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA1PR12MB6458:EE_|IA1PR12MB7592:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d8a606a-b659-4cb9-2880-08dc3f6daab7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: UFFktaPKKAm+VbFHczWAaNu196F8ukdAw81j0yArr3KWBXGUp5aZnjPgKiGrtZYwT2fkfet/+UmDoUBkYLCdKLlZ9Kv6KQviWlu3KKGluvDLHvdhSpN4c+4rYs23Z4rrzO9K/RbU2yATCMTHE8MLVVWZ3U5gboCNSbPlB3MqGW7Zb3VFAliANmY6XSxQCo4A3R+xdgrh9jpMpLQ1FN5aYEyVzCfTqDfPVzAtjrNTLtzRNNEd+JDjMltIdSl1uv7dpaKy4R4/tVyFTKwL79bE4Tao3LRgzUlD4GrmwyNlP0/yCpk0gySf6Aw30mZJWp/Yep8XpZz61QlMkrToYrVdsYHL+uznHy6F5m3FosAjQ69k6WBvuNkCuiGZ71/M2PYIf/csudDLJUm8x2eosYc89xqj3viljJTPwwUNRvve0pa/zGsRAWovATjuRmPhlGKuLRgdsm4Onmtm6lFyuEPwK6313a+9QFe/AzQDB5LZJw5DBoHcm/vkNtKBDAeN4pRVmi74qQTuHUYrmRaiQy67FBRCtZRh/l1OquPp9MZYGgYenQbafSqFaFMEKJ/IbeIgZsiFtAkADTEwDrK9RAPcFBGR4RaDTMM6TJdWlnnz3bw= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?32jX0Y9I5IjZIsguq7/VngTkMfRjRzynP+re8xXgMcZztWAqkD3VoIVHqUlb?= =?us-ascii?Q?H783Jmp2TsRMjiUfsau1LKUii3JHOl86/qWkUponTZxGpP0I6JRdfSN0/j2K?= =?us-ascii?Q?+AYu6ZS1Xf2Yye5K5SwwahqRCVPGyZjn1GOgJuU+Ymsh/dZV7Tw6Fy0Edpri?= =?us-ascii?Q?Bpdjnqp6xh4eVPiqUXD12kaDpZr31l7hJcrutd+WOxPi9IkYi1DLBGl5kCQc?= =?us-ascii?Q?uxOPLbrF2l45FuHVxDi/BF8/O36osynC9ipy7ew8/alj3QYlgLJi5d+5EXPC?= =?us-ascii?Q?OnbAOiuk2YuX4zsud7on/Or4n8a/9dKw3XUSHzAQDbulXXmxIJzBU7nCtZP0?= =?us-ascii?Q?zPF5rrjQWrjrLi0ZljV5Mt3wBku5f92HM1F2jZcmBom6o5LnzVIHBkIimrhT?= =?us-ascii?Q?0zoeX/jyhPqwSLYFZKqHSopyUNuLXUF4mVNCCJ9hmvj+eHMqMgD8jgt4CZgI?= =?us-ascii?Q?f4aPcnIxS4FhKva0T54qT77iQJzb29xYQprbNrgs/mcuUd+5q7RkEbwgLLAz?= =?us-ascii?Q?sy2l/4zrBuPDmXHRy4GW2bpVJ11QwFu4ifQqs0BnMMfmWhHaNi0jSNmrBiYd?= =?us-ascii?Q?8fk9Jkpsph8QVAzKXNFOHmCob4xwRVGZdfROyFSXX3WSIqQKEsJRj5J7ST3r?= =?us-ascii?Q?OjNU8+wBs3cNNASHVtYHuxg662pc5OUjXBD0zy7J/T3I1UD8xaRdVztHXuIP?= =?us-ascii?Q?ylrAr8J8yh4EXdp3wEw5bXMdKa3goxqadC5q/uJUORYXTQpGEoWYKmic6d6K?= =?us-ascii?Q?Fi8lCh08cL1oqRVa4RNBZpfDFjFw3W7ksrpkNDpRtBGX4ZuRKBrJIUQsURKf?= =?us-ascii?Q?gW3jCF7crzc6xxNv1srJlIZvXcVYXYHFe6e5lvdBUdDjU2/moCty2dDdXYET?= =?us-ascii?Q?3vFCZ2XlyVarEtYV9T71yEvEZ4GrvuwiPjC5sHBU5tPN28z3SZuWqO2DS7g5?= =?us-ascii?Q?NRXsr0nM7eRtvT/RjEw5ul3c79K9EXkDZUKzOODd/iyUOlp8ykRIcDGY8a8C?= =?us-ascii?Q?m7KmcvlFJCjCy+1PTeTuim2OtLBcgA8uu2T/7wykBWKLDRUmJcCZZyHfQ50a?= =?us-ascii?Q?x3s9+/FWxtYRZZHRakR2pau4MubHTNo5VYstrdUUVdTNEpynUqDKAgW7WVzh?= =?us-ascii?Q?IRKI2lzacE4K9fLwIZHv4h5niCLXFI73SBBF1+1yt3ELZXoRjKe3VrYKcAfw?= =?us-ascii?Q?vR/4DCCAAr/U62u+ILSZY1Fs48uKeabnNcbj3F5/1JBexRAUnVm7TyA0cJYk?= =?us-ascii?Q?71wcwp5e/NnqSo/rEGRWUJDATwrkymc0JXoBWE936bCnXhtBdFmz0zYhnw34?= =?us-ascii?Q?smBexeEDWxJXAu2iGCVXzm7Ja8dNc7doliecnEJXplCt8QU9ajxXn/Zpb2EG?= =?us-ascii?Q?7wXT/RXgrdHLUCKzfzqsCROnsRtfsg42CY38tpu5iVhCAAAV6pTRamP4arXh?= =?us-ascii?Q?A/DGXvD9o/fq4PaIjurcFoArGsVHymRnMrt3zyxs6FUmzDHs+z+Vhr9Cr2UQ?= =?us-ascii?Q?oePGjVyVtt2F9IM58UCclBTqnpaPCU3ELVaAICg8IanJE+my2QrxIMjezI5f?= =?us-ascii?Q?ZuvmjxKTLZ+eGWFRYPBw4NU8enhqYHMp45TCdWHq?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d8a606a-b659-4cb9-2880-08dc3f6daab7 X-MS-Exchange-CrossTenant-AuthSource: IA1PR12MB6458.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2024 12:45:43.0930 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gQM4H0+YCSouxuPjgtQI8o5rfJrA/Iosr+TPb0voE6eub2Z1HwRv/US+XfAwci/h7fsNiMEWx5BzUo1CoAus0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7592 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,AbdulLateef.Attar@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: UIHzAqlaOxfKdynwp6dKQA3sx7686176AA= Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=qVAEpIC+; dmarc=pass (policy=none) header.from=groups.io; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Hi Pierre, =C2=A0=C2=A0=C2=A0 I think the provided patch also serve the same purpose = of=20 validating the COMM_BUFFER_NESTED_PTR_PROTECTION against FIXED_COMM_BUFFERS= . Do you want me to remove the "ValidateReserved" implementation? Here is the sample test results. 1) =C2=A0 Protection Flag=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0x5 =C2=A0=C2=A0=C2=A0 FIXED_COMM_BUFFERS=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0x1 =C2=A0=C2=A0=C2=A0 COMM_BUFFER_NESTED_PTR_PROTECTION=C2=A0 : 0x0 =C2=A0=C2=A0=C2=A0 SYSTEM_RESOURCE_PROTECTION=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 : 0x1 =C2=A0=C2=A0=C2=A0 Reserved=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 : 0x0 Table Statistics: 0 Error(s) 0 Warning(s) Shell> 2) =C2=A0 Protection Flag=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0x6 =C2=A0=C2=A0=C2=A0 FIXED_COMM_BUFFERS=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 : 0x0 =C2=A0=C2=A0=C2=A0 COMM_BUFFER_NESTED_PTR_PROTECTION=C2=A0 : 0x1 =C2=A0=C2=A0=C2=A0 SYSTEM_RESOURCE_PROTECTION=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 : 0x1 =C2=A0=C2=A0=C2=A0 Reserved=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 : 0x0 ERROR: COMM_BUFFER_NESTED_PTR_PROTECTION is set but FIXED_COMM_BUFFERS=20 is not set. Table Statistics: 1 Error(s) 0 Warning(s) Shell> Thanks AbduL On 08-03-2024 14:50, PierreGondois via groups.io wrote: > Caution: This message originated from an External Source. Use proper=20 > caution when opening attachments, clicking links, or responding. > > > Hello Abdul, > > On 3/8/24 08:22, Abdul Lateef Attar wrote: >> From: Abdul Lateef Attar >> >> Adds WSMT parse to the UefiShellAcpiViewCommandLib library. >> >> Cc: Zhichao Gao >> Cc: Pierre Gondois=C2=A0 >> Signed-off-by: Abdul Lateef Attar >> Reviewed-by: Pierre Gondois=C2=A0 >> --- >> =C2=A0 .../UefiShellAcpiViewCommandLib/AcpiParser.h=C2=A0 |=C2=A0 17 ++ >> =C2=A0 .../Parsers/Wsmt/WsmtParser.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 147 ++++++++= ++++++++++ >> =C2=A0 .../UefiShellAcpiViewCommandLib.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 1 + >> =C2=A0 .../UefiShellAcpiViewCommandLib.inf=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0 1 + >> =C2=A0 4 files changed, 166 insertions(+) >> =C2=A0 create mode 100644=20 >> ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Wsmt/WsmtParser.c >> >> diff --git=20 >> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h=20 >> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h >> index ba3364f2c2..6468fe5d8c 100644 >> --- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h >> +++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h >> @@ -985,6 +985,23 @@ ParseAcpiSsdt ( >> =C2=A0=C2=A0=C2=A0 IN UINT8=C2=A0=C2=A0=C2=A0 AcpiTableRevision >> =C2=A0=C2=A0=C2=A0 ); >> >> +/** >> +=C2=A0 This function parses the ACPI WSMT table. >> + >> +=C2=A0 @param [in] Trace=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 If TRUE, trace the ACPI fields. >> +=C2=A0 @param [in] Ptr=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Pointer to the start of the buff= er. >> +=C2=A0 @param [in] AcpiTableLength=C2=A0=C2=A0=C2=A0 Length of the ACPI= table. >> +=C2=A0 @param [in] AcpiTableRevision=C2=A0 Revision of the ACPI table. >> +**/ >> +VOID >> +EFIAPI >> +ParseAcpiWsmt ( >> +=C2=A0 IN BOOLEAN=C2=A0 Trace, >> +=C2=A0 IN UINT8=C2=A0=C2=A0=C2=A0 *Ptr, >> +=C2=A0 IN UINT32=C2=A0=C2=A0 AcpiTableLength, >> +=C2=A0 IN UINT8=C2=A0=C2=A0=C2=A0 AcpiTableRevision >> +=C2=A0 ); >> + >> =C2=A0 /** >> =C2=A0=C2=A0=C2=A0 This function parses the ACPI XSDT table >> =C2=A0=C2=A0=C2=A0 and optionally traces the ACPI table fields. >> diff --git=20 >> a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Wsmt/WsmtParser.c= =20 >> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Wsmt/WsmtParser.c >> new file mode 100644 >> index 0000000000..3c7252b0bf >> --- /dev/null >> +++=20 >> b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Wsmt/WsmtParser.c >> @@ -0,0 +1,147 @@ >> +/** @file >> +=C2=A0 WSMT table parser >> + >> +=C2=A0 Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reser= ved. >> +=C2=A0 SPDX-License-Identifier: BSD-2-Clause-Patent >> + >> +=C2=A0 @par Reference(s): >> +=C2=A0=C2=A0=C2=A0 - Windows SMM Security Mitigation Table spec, versio= n 1.0 >> +**/ >> + >> +#include >> +#include >> +#include "AcpiParser.h" >> + >> +STATIC ACPI_DESCRIPTION_HEADER_INFO=C2=A0 AcpiHdrInfo; >> + >> +/** >> +=C2=A0 This function validates the WSMT Protection flag. >> + >> +=C2=A0 @param [in] Ptr=C2=A0 Pointer to the start of the buffer. >> +=C2=A0 @param [in] Context Pointer to context specific information e.g.= this >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 could be a pointe= r to the ACPI table header. >> + >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +ValidateWsmtProtectionFlag ( >> +=C2=A0 IN UINT8=C2=A0 *Ptr, >> +=C2=A0 IN VOID=C2=A0=C2=A0 *Context >> +=C2=A0 ) >> +{ >> +=C2=A0 UINT32=C2=A0 ProtectionFlag; >> + >> +=C2=A0 ProtectionFlag =3D *(UINT32 *)Ptr; >> + >> +=C2=A0 if ((ProtectionFlag &=20 >> EFI_WSMT_PROTECTION_FLAGS_COMM_BUFFER_NESTED_PTR_PROTECTION) \ >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D=3D EFI_WSMT_PROTECTION_FLAGS_COMM_BU= FFER_NESTED_PTR_PROTECTION) >> +=C2=A0 { >> +=C2=A0=C2=A0=C2=A0 if ((ProtectionFlag &=20 >> EFI_WSMT_PROTECTION_FLAGS_FIXED_COMM_BUFFERS) \ >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 !=3D EFI_WSMT_PROTECTION_FLA= GS_FIXED_COMM_BUFFERS) >> +=C2=A0=C2=A0=C2=A0 { >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 IncrementErrorCount (); >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Print (L"ERROR: COMM_BUFFER_NESTED_PTR_P= ROTECTION is set but=20 >> FIXED_COMM_BUFFERS is not set.\n"); >> +=C2=A0=C2=A0=C2=A0 } >> +=C2=A0 } >> +} >> + >> +/** >> +=C2=A0 This function validates the reserved bits in the WSMT Protection= =20 >> flag. >> + >> +=C2=A0 @param [in] Ptr=C2=A0 Pointer to the start of the buffer. >> +=C2=A0 @param [in] Context Pointer to context specific information e.g.= this >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 could be a pointe= r to the ACPI table header. >> +**/ >> +STATIC >> +VOID >> +EFIAPI >> +ValidateReserved ( >> +=C2=A0 IN UINT8=C2=A0 *Ptr, >> +=C2=A0 IN VOID=C2=A0=C2=A0 *Context >> +=C2=A0 ) >> +{ >> +=C2=A0 UINT32=C2=A0 ProtectionFlag; >> + >> +=C2=A0 ProtectionFlag =3D *(UINT32 *)Ptr; >> + >> +=C2=A0 if ((ProtectionFlag & 0xFFFFFFF8) !=3D 0) { >> +=C2=A0=C2=A0=C2=A0 IncrementErrorCount (); >> +=C2=A0=C2=A0=C2=A0 Print (L"ERROR: Reserved bits are not zero.\n"); >> +=C2=A0 } >> +} >> + >> +/** >> +=C2=A0 An ACPI_PARSER array describing the WSMT Protection flag . >> +**/ >> +STATIC CONST ACPI_PARSER=C2=A0 WsmtProtectionFlagParser[] =3D { >> +=C2=A0 { L"FIXED_COMM_BUFFERS ",=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 1,=C2=A0 0, L"0x%x", NU= LL,=20 >> NULL, NULL,=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 NULL }, >> +=C2=A0 { L"COMM_BUFFER_NESTED_PTR_PROTECTION ", 1,=C2=A0 1, L"0x%x", NU= LL,=20 >> NULL, NULL,=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 NULL }, >> +=C2=A0 { L"SYSTEM_RESOURCE_PROTECTION ",=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 1,=C2=A0 2, L"0x%x", NULL,=20 >> NULL, NULL,=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 NULL }, >> +=C2=A0 { L"Reserved ",=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 29, 3, L"0x%x", NULL,=20 >> NULL, ValidateReserved, NULL }, > > I think we misunderstood each other here. > We should check that if COMM_BUFFER_NESTED_PTR_PROTECTION, > then FIXED_COMM_BUFFERS is also set. > > So I think we need to: > - store the value of FIXED_COMM_BUFFERS (cf. ACPI_PARSER::ItemPtr in=20 > other parsers) > - add a validate to COMM_BUFFER_NESTED_PTR_PROTECTION to check the above > > I don't think it is necessary to check the reserved bits, > > Regards, > Pierre > > >=20 > > -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#116505): https://edk2.groups.io/g/devel/message/116505 Mute This Topic: https://groups.io/mt/104804849/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-