From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (EUR04-VI1-obe.outbound.protection.outlook.com [40.107.8.57]) by mx.groups.io with SMTP id smtpd.web12.5528.1623923758154249150 for ; Thu, 17 Jun 2021 02:55:58 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=nwlM4C1u; spf=pass (domain: arm.com, ip: 40.107.8.57, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I3ArkeyI0xG7GpdK2wftSsZvOYcRlbctWrZ2sr3Lefc=; b=nwlM4C1uK0THevY8ODcjX7SBsInKFpY50qejAPU6++su6RPbz8tvcmrz7vaUkXWFmxDUN6ayk6lvUbNBgp6/AiiSdHFd2nJb/ZXl1b8qxlgqwD88sx52QI4PvmLaunCFPIr3pHLQ1zUq3/n3oFGlGho1JJEna6IiXIsR8AeCr2k= Received: from AM6P194CA0068.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::45) by AM5PR0801MB2116.eurprd08.prod.outlook.com (2603:10a6:203:31::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.19; Thu, 17 Jun 2021 09:55:55 +0000 Received: from AM5EUR03FT004.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:84:cafe::a0) by AM6P194CA0068.outlook.office365.com (2603:10a6:209:84::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.18 via Frontend Transport; Thu, 17 Jun 2021 09:55:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT004.mail.protection.outlook.com (10.152.16.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16 via Frontend Transport; Thu, 17 Jun 2021 09:55:55 +0000 Received: ("Tessian outbound a65d687b17e4:v93"); Thu, 17 Jun 2021 09:55:55 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 15944fd2211b4291 X-CR-MTA-TID: 64aa7808 Received: from 6a85e6621913.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8493A664-9371-43FE-9765-11ABAAB1195F.1; Thu, 17 Jun 2021 09:55:48 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6a85e6621913.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 17 Jun 2021 09:55:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cKdmqedsGRb4If5VALbDFpl5FBjHemekYFVzJef9n9P5gA2k/YyPZNrSc87WWbkvWqRaHxKCcrtR0oaGsyP2Kt9XWW4jpe6QAUl12vmzu9WrEt4b76SVlKMTlbHaoDybf3FAqnMG8S75p5I9vk7Mt7m+pIwOBwdYZaqd8iqe7284pzsxjiFOszTAJp8Uvze+QSEL9N03XSkhaedQsHz/9Jtr/6XOp4/hl/dx+K/1iq6w6BQISPQsGIJcJpdtzFN80If4KuUjnVNLzc4qzRTHKUy8AM1aKii2HrxVlLGf/1sPWMY+MufBgzDK13VosqGAwEVJUM98LpwA3VUU5Qkppw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I3ArkeyI0xG7GpdK2wftSsZvOYcRlbctWrZ2sr3Lefc=; b=g0bpmy+krNJ1fHJKZX8qam8S8uON7cL0AdmM663GxObEEAM75iYUXmmlwZAeZRCNq1RsuBsRKGlCpH/zYGngtEbZ6LL9/THd47V2gaqCkeH8GjU51EydpdPQrXTSFh2ki6aFkhMIKVFLQVZMUcd9t1ES/8T/Tc5he/RkL6jE/mkfwOYrPId9O8MG8Yf9FZsr1vWRJQ5jUpmhDEB7OZeER1WmIStYnfDYZGEA05oIIv3qlUkN582brr+YWDQb/oGAGYogeNXW0cmI9jHpEowZsfhNssQvZ7tGzBNJPeCHDEI/PG3ceFMRMjzeWJejjpeI9w0dLudzyRLiGhAf8/y8CQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=I3ArkeyI0xG7GpdK2wftSsZvOYcRlbctWrZ2sr3Lefc=; b=nwlM4C1uK0THevY8ODcjX7SBsInKFpY50qejAPU6++su6RPbz8tvcmrz7vaUkXWFmxDUN6ayk6lvUbNBgp6/AiiSdHFd2nJb/ZXl1b8qxlgqwD88sx52QI4PvmLaunCFPIr3pHLQ1zUq3/n3oFGlGho1JJEna6IiXIsR8AeCr2k= Received: from AM6PR08CA0046.eurprd08.prod.outlook.com (2603:10a6:20b:c0::34) by AM6PR08MB3720.eurprd08.prod.outlook.com (2603:10a6:20b:8f::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.18; Thu, 17 Jun 2021 09:55:46 +0000 Received: from VE1EUR03FT055.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:c0:cafe::2e) by AM6PR08CA0046.outlook.office365.com (2603:10a6:20b:c0::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.16 via Frontend Transport; Thu, 17 Jun 2021 09:55:46 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; Received: from nebula.arm.com (40.67.248.234) by VE1EUR03FT055.mail.protection.outlook.com (10.152.19.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4242.16 via Frontend Transport; Thu, 17 Jun 2021 09:55:46 +0000 Received: from AZ-NEU-EX03.Arm.com (10.251.24.31) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2176.14; Thu, 17 Jun 2021 09:55:43 +0000 Received: from E114225.Arm.com (10.1.196.43) by mail.arm.com (10.251.24.31) with Microsoft SMTP Server id 15.1.2176.14 via Frontend Transport; Thu, 17 Jun 2021 09:55:42 +0000 From: "Sami Mujawar" To: CC: Sami Mujawar , , , , Subject: [PATCH v2 5/8] DynamicTablesPkg: IORT set reference to Id array only if present Date: Thu, 17 Jun 2021 10:55:34 +0100 Message-ID: <20210617095538.93280-6-sami.mujawar@arm.com> X-Mailer: git-send-email 2.16.2.windows.1 In-Reply-To: <20210617095538.93280-1-sami.mujawar@arm.com> References: <20210617095538.93280-1-sami.mujawar@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c39724b4-bdc1-4750-ec37-08d931761967 X-MS-TrafficTypeDiagnostic: AM6PR08MB3720:|AM5PR0801MB2116: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:7691;OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: g+BlhEWs9/Ve0+CYylCDcp0uRlQ+kd4G+mlM0y7EK0hn6DbEo7uTvwbDzZz4nulA4Vctv3lOkyC7xMERPGUrOdrbq3MXtrsxd80bAWjRxOxLqhxKcXd7tlAwUBTixqYDlfjdLkewIoF7KI6wdd4ZpsMhS3qxR2Hli/VQTt02lTbljbwBZpy4tR0oQYHwLdx5eK1icZYhaiVoBwbnW4BbBl2ACc7FNgrhe7fvVlz7irqyPLN7jpV1q3WiyqA2PKyIPRkNA2lFjL5oQfMgjUELkqCw1MhAKQOqyszlO0zMOwcZbqpUNW+5soJv1JTXONSnCy6V2Pk2vtHUHAKAxJfojg2yttCsc06YwhaWqRgWNIGUSMUx1UuAujL0Fk8LitzVm6QoAoE1kx8wg94wwrqwyQZXwa/EytbUEw25evws2vyz4XB+tbTRwx09VChe/gjZWK0yTVBJ9LoFRY6TK2gmXpaAwdekTdCJ13PP0nOhEuNq5KTPvjTLKVXzhnUVYg9NvNfL3iyCz/j5+LMeocqf42rsIAJD8OdtI2zAeRiYSn7+iEhUESEuNQzeCHcauMBMsO5a2ykTH1Ub/f6gmnyNv7TSq3bPXP/81Y5NxkHfT5iNWHSCNYmOvvSdPr/74D+6vdw7WYgiI8TPNJdLV+AfnzIH+1TLT+g5zzzMt1anNuElIBxXUBIBe2VbTjC7l/Gi X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(396003)(346002)(136003)(376002)(39860400002)(46966006)(36840700001)(47076005)(336012)(8936002)(4326008)(5660300002)(26005)(2616005)(2906002)(54906003)(186003)(6916009)(478600001)(316002)(36860700001)(81166007)(82740400003)(44832011)(426003)(356005)(70206006)(86362001)(7696005)(83380400001)(70586007)(6666004)(36756003)(82310400003)(8676002)(1076003)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3720 Return-Path: Sami.Mujawar@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT004.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: b1c372ca-df5f-4bf1-aaee-08d93176144d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3j4oAuDX5MzmCXpIAdmqYMmDszXGkQmbRULOr5BWqhkxYdeRQ02uV98xjQC25Oq6pFE6RbyGse+6bbh9OMHvyc7CD7bJau60yHtLV1CR6B299EMWcgP1d1VPINh60x/XzuSWl2QBhc+/I0u3CDNCkd+BkhRm9EFQP6CNiuB0KymfItsi0O3/N14WmgaS7/a90PavGwSgxSqtPsTJl4Kb1Rn8ROwIMvOe+v7drN7aW/zdQBeOaKRKjhYcvadU8L3gS5vEWe68u2gsBPWvtmlF1zAgI1hCBj0+xMAbX2RWbnUHdAX9YDKG9Q8VN15AI5a4ZUJo/b7t0usHRSv8o7VM7cabxsaHpzanKLmwfEGg1nY4183eahO9A8k7NrGvXpbaYzcQb9+pRUVE0XaQlFxjv1MtI3ZQAOyZN21l9Tsd7Yrw7NukZY1rutzFqqfD48tjGfgPC2o27NJoPGTkWNCHxrb9dERLih2k29Q6+Atlnj0oQM8DQMVUJNV0bn9F947oBwOZM0emOZoPKlRofEbMA3lcGQhSy2JO+uPPfyPHK398hWQ6CQVxrgEJ7mQtRNkQOuRcSgPgJ1/i9xDCv0fkSJl/KloMqs9UQYvMkwMYbxeavbnYajpmLzlcK//pVPn885oINcDGsORy+MYDHTSWOA0W6zmEqBukp4BlpdZoDuA= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(39860400002)(346002)(136003)(376002)(396003)(36840700001)(46966006)(316002)(6666004)(54906003)(426003)(26005)(478600001)(2616005)(186003)(8936002)(70206006)(1076003)(44832011)(336012)(6916009)(36756003)(81166007)(47076005)(86362001)(7696005)(4326008)(36860700001)(82740400003)(2906002)(8676002)(5660300002)(70586007)(83380400001)(82310400003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jun 2021 09:55:55.0939 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c39724b4-bdc1-4750-ec37-08d931761967 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT004.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB2116 Content-Type: text/plain The IORT table generator is setting up a reference to ID array for nodes even when the ID Mapping count is zero. This is not an issue as an OS would only access the ID Reference if the ID mapping count is not zero. However, it would be good to set the reference to ID array to zero when the ID Mapping count is zero rather than populating it with an incorrect value. Signed-off-by: Sami Mujawar --- Notes: v2: - No code change since v1. Re-sending with v2 series. [SAMI] DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c | 29 +++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c index 349caa8006bc34ca789cb3e321a0f87c0cd4ff0d..bdf839eab25e2b84b40c50da38f2bf961cdc5f42 100644 --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c @@ -1,7 +1,7 @@ /** @file IORT Table Generator - Copyright (c) 2017 - 2020, ARM Limited. All rights reserved. + Copyright (c) 2017 - 2021, Arm Limited. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent @par Reference(s): @@ -870,9 +870,9 @@ AddNamedComponentNodes ( NcNode->Node.NumIdMappings = NodeList->IdMappingCount; ObjectNameLength = AsciiStrLen (NodeList->ObjectName) + 1; - NcNode->Node.IdReference = - (UINT32)(sizeof (EFI_ACPI_6_0_IO_REMAPPING_NAMED_COMP_NODE) + - (ALIGN_VALUE (ObjectNameLength, 4))); + NcNode->Node.IdReference = (NodeList->IdMappingCount == 0) ? + 0 : ((UINT32)(sizeof (EFI_ACPI_6_0_IO_REMAPPING_NAMED_COMP_NODE) + + (ALIGN_VALUE (ObjectNameLength, 4)))); // Named Component specific data NcNode->Flags = NodeList->Flags; @@ -990,7 +990,8 @@ AddRootComplexNodes ( RcNode->Node.Revision = 1; RcNode->Node.Reserved = EFI_ACPI_RESERVED_DWORD; RcNode->Node.NumIdMappings = NodeList->IdMappingCount; - RcNode->Node.IdReference = sizeof (EFI_ACPI_6_0_IO_REMAPPING_RC_NODE); + RcNode->Node.IdReference = (NodeList->IdMappingCount == 0) ? + 0 : sizeof (EFI_ACPI_6_0_IO_REMAPPING_RC_NODE); // Root Complex specific data RcNode->CacheCoherent = NodeList->CacheCoherent; @@ -1160,11 +1161,12 @@ AddSmmuV1V2Nodes ( SmmuNode->Node.Revision = 0; SmmuNode->Node.Reserved = EFI_ACPI_RESERVED_DWORD; SmmuNode->Node.NumIdMappings = NodeList->IdMappingCount; - SmmuNode->Node.IdReference = sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE) + - (NodeList->ContextInterruptCount * - sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT)) + - (NodeList->PmuInterruptCount * - sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT)); + SmmuNode->Node.IdReference = (NodeList->IdMappingCount == 0) ? + 0 : (sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE) + + (NodeList->ContextInterruptCount * + sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT)) + + (NodeList->PmuInterruptCount * + sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT))); // SMMU v1/v2 specific data SmmuNode->Base = NodeList->BaseAddress; @@ -1319,8 +1321,8 @@ AddSmmuV3Nodes ( SmmuV3Node->Node.Revision = 2; SmmuV3Node->Node.Reserved = EFI_ACPI_RESERVED_DWORD; SmmuV3Node->Node.NumIdMappings = NodeList->IdMappingCount; - SmmuV3Node->Node.IdReference = - sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE); + SmmuV3Node->Node.IdReference = (NodeList->IdMappingCount == 0) ? + 0 : sizeof (EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE); // SMMUv3 specific data SmmuV3Node->Base = NodeList->BaseAddress; @@ -1438,7 +1440,8 @@ AddPmcgNodes ( PmcgNode->Node.Revision = 1; PmcgNode->Node.Reserved = EFI_ACPI_RESERVED_DWORD; PmcgNode->Node.NumIdMappings = NodeList->IdMappingCount; - PmcgNode->Node.IdReference = sizeof (EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE); + PmcgNode->Node.IdReference = (NodeList->IdMappingCount == 0) ? + 0 : sizeof (EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE); // PMCG specific data PmcgNode->Base = NodeList->BaseAddress; -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'