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 2A0B49415C4 for ; Mon, 25 Sep 2023 09:47:23 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=xePmtevq7Qhe73ev4CXwX8KekP1lSXrWcabEgV1Yjuk=; c=relaxed/simple; d=groups.io; h=Received-SPF:ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Authentication-Results-Original:Message-ID:Date:User-Agent:Subject:To:Cc:References:From:In-Reply-To:MIME-Version:NoDisclaimer:Original-Authentication-Results:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Transfer-Encoding; s=20140610; t=1695635241; v=1; b=F94Ftj5oOg4JFzGnfnzDjNJZkyFQexkp9mXYBJ2z/COBUk84/myr13pSzhOK0+rKF+80iYUW Fbp66tz4sNwvPHLp8DqYUjYB2FLAdxKl6ju4Pc73zBxcQ/qmlBlXKrvaZELwyvCToED0QK3+7lX jjtXS+kVyyLYU1gh7Y3ABeRg= X-Received: by 127.0.0.2 with SMTP id 9xL9YY7687511xcVmhmCbv0i; Mon, 25 Sep 2023 02:47:21 -0700 X-Received: from EUR03-DBA-obe.outbound.protection.outlook.com (EUR03-DBA-obe.outbound.protection.outlook.com [40.107.104.81]) by mx.groups.io with SMTP id smtpd.web10.57210.1695635240014682856 for ; Mon, 25 Sep 2023 02:47:21 -0700 X-Received: from DB8PR09CA0021.eurprd09.prod.outlook.com (2603:10a6:10:a0::34) by DU2PR08MB10278.eurprd08.prod.outlook.com (2603:10a6:10:498::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Mon, 25 Sep 2023 09:47:16 +0000 X-Received: from DBAEUR03FT024.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:a0:cafe::59) by DB8PR09CA0021.outlook.office365.com (2603:10a6:10:a0::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.35 via Frontend Transport; Mon, 25 Sep 2023 09:47:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C X-Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT024.mail.protection.outlook.com (100.127.142.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.19 via Frontend Transport; Mon, 25 Sep 2023 09:47:15 +0000 X-Received: ("Tessian outbound 30c9f5e988c5:v175"); Mon, 25 Sep 2023 09:47:15 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2bfb963aea2f2d7b X-CR-MTA-TID: 64aa7808 X-Received: from 59bc4f2e7493.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id BC1EEC7A-BCF6-4413-B4BD-26C64891E794.1; Mon, 25 Sep 2023 09:47:09 +0000 X-Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 59bc4f2e7493.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 25 Sep 2023 09:47:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fl/+uNTl66sI8AZmJ1+/N1z2qj2ZTYt+cOIkqR3Lsu15cPnyu+2hWhqbD+h3nlgtKNoC83zN3BOGE4v+doG4mqtzed9i7fJlgcLp80hK9fFEtJIRrZ6Y0ss0GuzyyXZtZFXFCAmsDmaA+MrnyoXGtke01tCUFHIJ2HAzxGi2ZH7+tWgDiASRedsukY2XaOIEy4ULeaAhNViOBmspJoIvFr6vvCa/mIqWeEAW6fbSSlBwctF+6MTTar0Wq3a2GHwGvVO602VMZ/eEqUWYcosLjLKLzJ256akyM325siVrm7bVgZi0X+zKxoKsGQg5fRk6d/vJLw27fGoVJEBB2uvmgg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LD/Wh4pASYAWrkSAHgoTbgdLUT90T+8v0IcRvjoWeH4=; b=RimEKskSzSDzUVBEbdvhvnd72RFyO/226UaRI/NAcJy/2UX4fJTet07C+5Y+YW79BvBAKSJapuW5wMM7QzmtaHh/6uccD61XovmveDj3DJydYfwTLawmqnk5CybYuAsoTnAOxrLFLZ81ZQ01Vyx75oCYHqF43d0ltvZhI/9+NXAxCwTb8sPGm64EIHmQ1MBRDIve3zlTQndGdaefo1XVvVrwXV90me688PEt2ndsLN9X4mcV3W2pMBIs2Iks/BumNPBErwoKCgTPyEcn/VjKGGTmgIbIw1CCvWZS7Oi0HJ8CrKpdgAfxqJUrwVJcBEUa/ijJ2prsCNsTtlhkyoBgdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-Received: from AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) by DU0PR08MB9203.eurprd08.prod.outlook.com (2603:10a6:10:417::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Mon, 25 Sep 2023 09:47:06 +0000 X-Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::ac37:4594:ab86:59ce]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::ac37:4594:ab86:59ce%4]) with mapi id 15.20.6813.027; Mon, 25 Sep 2023 09:47:06 +0000 Message-ID: <772fe5c2-e6af-06f6-029e-5bb4e40941c0@arm.com> Date: Mon, 25 Sep 2023 10:47:04 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [edk2-devel] [PATCH] DynamicTablesPkg: IORT generator updates for Rev E.e spec To: Leif Lindholm , devel@edk2.groups.io, swatisrik@nvidia.com Cc: pierre.gondois@arm.com, "nd@arm.com" References: <273efda2552363dd2ed5794b00b1b4e87b290909.1695418444.git.swatisrik@nvidia.com> From: "Sami Mujawar" In-Reply-To: X-ClientProxiedBy: LO4P265CA0019.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ae::21) To AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6806:EE_|DU0PR08MB9203:EE_|DBAEUR03FT024:EE_|DU2PR08MB10278:EE_ X-MS-Office365-Filtering-Correlation-Id: 244155ec-a14f-40aa-88eb-08dbbdac66cd x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 6mtSmzO8W1LxqBlkeQtu7/oSVdYU97wJWtxEu/V2u/7ciXVkvRp9pye6WkdKLDfYChbi4hxpyiDhz7KFn/o7iszuuoTRu7h+/Gpucqg/ZuP/HdizQ0iirnNREBzE+Xyhp177j+dq0sv9LnA9IR9IIRiVlhmOzR7b8fvXVL0cp3bE8ePIOBJeLc51JXSFraUTJg99mm6GE6fkdtf4weC1xWJMgA9M4oA0ThVadAB8Aa+Dw1btXyx/EkSMlxw+mxZkRYbZWkEcMwYFJuYij2vgNmSezPcOSu4HaCr44OsuHEy6Kde05Cb3kxb28tfatqywJHfzbMY/kwbRLtHRuNlxSq5vFK8P/7AOhtGCBpyxhb8AFAi0nrEf6u4E4hUYYZMAhZdIBNYdyFmaahjn6woSXVyfpbaTKfHRUudUJaAeh3tmakU0c9v4lXk+7qFeGTy1A9LZzu8zjN4qJ3KidKzk61GMsTGgo7QCDXr7RfdcsY3E+k69gBhF4omLNYS9QDEaBaDVYJAje7Qf8//2BRe0Bpmqn34jTD6QIGQt29rTqT6kDLbEbxyFOrAvF42GCfq4QXsf8jjPC5JstvdC7Q+DvWhPorVa1JavEy/sxQnDVkT/13vehfrfzctzvqpUNm1aIReENcYTO84HzVF2BXE1v0wiNsuLxbEge5IZI3xiaS18TbdQOtXWoAlc9bn4rbN3 X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6806.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(136003)(376002)(346002)(39860400002)(230922051799003)(451199024)(186009)(1800799009)(86362001)(31696002)(36756003)(31686004)(6486002)(6506007)(26005)(5660300002)(53546011)(966005)(6512007)(66476007)(66556008)(66946007)(2616005)(316002)(41300700001)(44832011)(478600001)(4326008)(8676002)(8936002)(2906002)(66899024)(38100700002)(83380400001)(15650500001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9203 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c4a279b5-b3df-42b9-1b59-08dbbdac6116 X-Microsoft-Antispam-Message-Info: mWfzj5SFMXCjyodabC0rg7EBuIKK7Z4sZJg0uEAs7x9GOTueWI8dIo+d0T9diJvYOZ2xObhvbj5g/yZn2szPxJ5tSD6++wleRnmnaPKBKk8TfEPWckqfO4rQBoNq07T1dGXtSHPD+d5KBZYifKo+T0uajnpoB6Sz+OsUCl6+zTwfUC4yThNOh79bhDgbMbteSbwrh0KwOj/zBQQ7uJKG0/HyOiBiIh5e3LRmRDOZRulmDqUOEFxDqwvPd9aLmnClrTrsQSv4vlqX7VYP+a3QByV0HOWs7exfno7FD58SFHsSpPaVXJLZeMeb/TP7Yz5YvOj0oFmx1RWikdZwG15FgZ8C5w+AkJp/zdVY+zMJNOvUTbH+erwKrBFUwDRJck8owGBcWz7HKJWgD43Qt8L45HBwPUYIFmXsA7CF75bYtJNMeWE8/SS3z5IgsKbpJJ1/XDfAT9rZlIk92fIhezjTaqS/cAVZijyJN0xgmHzsrbasjM/qAMdl9MVJuuEc6ScaTdTjfgm4eU2YM+SI+gZgpJm8o3ZHPlcuFcjxzZrluFzwy6asKnhXKfhDCkZZ6Oqo+OquEz+6RVDFnCYYDwyBNxxFCtG3XOb7DSdp1MWFp1Qp7BahOm5YL+a1xc0IxZLe75O9SZOTQoDlBk/DAJevog5T0MM+NJy+oydyeTGoA6tGt0mcBpjBx8SBvGGIRLxiEv0dlWwmzd9bBe3xuZGZtBO7rUTMwbN5RO4iR+/cSbJa7hi22Gktqw4Hj47DsjeenFaXIo2TvflReJxjtLSYmw== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2023 09:47:15.9827 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 244155ec-a14f-40aa-88eb-08dbbdac66cd 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: DBAEUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10278 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,sami.mujawar@arm.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: v7Ttvqg0RlKcAcK0KjYozAHGx7686176AA= 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=20140610 header.b=F94Ftj5o; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=arm.com (policy=none); 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 Leif, Please find my response inline marked [SAMI]. Regards, Sami Mujawar On 25/09/2023 10:40 am, Leif Lindholm wrote: > On Fri, Sep 22, 2023 at 15:40:38 -0600, Swatisri Kantamsetti via groups.i= o wrote: >> The IO Remapping Table, Platform Design Document, Revision E.e, >> Sept 2022 (https://developer.arm.com/documentation/den0049/ee) >> added flags in SMMUv3 node for validity of ID mappings for MSIs >> related to control interrupts. >> It makes one small addition to SMMUv3 nodes to >> describe MSI support independently of wired GSIV support >> >> Therefore, update the IORT generator to: >> - increment IORT table revision to 6 >> - increment SMMUV3 node revision to 5 >> - for SMMUV3 node revision >=3D5 check the DeviceID mapping index >> valid flag to populate DeviceIdMappingIndex field >> >> Signed-off-by: Swatisri Kantamsetti >> --- >> .../Acpi/Arm/AcpiIortLibArm/IortGenerator.c | 35 +++++++++++++++---- >> 1 file changed, 28 insertions(+), 7 deletions(-) >> >> diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenera= tor.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c >> index f28973c1a8..a6e4b49cb1 100644 >> --- a/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c >> +++ b/DynamicTablesPkg/Library/Acpi/Arm/AcpiIortLibArm/IortGenerator.c >> @@ -5,7 +5,7 @@ >> SPDX-License-Identifier: BSD-2-Clause-Patent >> =20 >> @par Reference(s): >> - - IO Remapping Table, Platform Design Document, Revision E.d, Feb 202= 2 >> + - IO Remapping Table, Platform Design Document, Revision E.e, Sept 20= 22 >> (https://developer.arm.com/documentation/den0049/) >> =20 >> **/ >> @@ -1554,9 +1554,14 @@ AddSmmuV3Nodes ( >> { >> SmmuV3Node->Node.Revision =3D 2; >> SmmuV3Node->Node.Identifier =3D EFI_ACPI_RESERVED_DWORD; >> - } else { >> + } else if (AcpiTableInfo->AcpiTableRevision < >> + EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06) >> + { >> SmmuV3Node->Node.Revision =3D 4; >> SmmuV3Node->Node.Identifier =3D NodeList->Identifier; >> + } else { >> + SmmuV3Node->Node.Revision =3D 5; >> + SmmuV3Node->Node.Identifier =3D NodeList->Identifier; > This is borderline, but I think it would be worth breaking out into a > helper function. It feels like this may have further cases added in > future. > >> } >> =20 >> // SMMUv3 specific data >> @@ -1577,11 +1582,27 @@ AddSmmuV3Nodes ( >> SmmuV3Node->ProximityDomain =3D 0; >> } >> =20 >> - if ((SmmuV3Node->Event !=3D 0) && (SmmuV3Node->Pri !=3D 0) && >> - (SmmuV3Node->Gerr !=3D 0) && (SmmuV3Node->Sync !=3D 0)) >> + /* For older SMMUV3 nodes rev. < 5. >> + If all the SMMU control interrupts are GSIV based, >> + the DeviceID mapping index field is ignored. >> + DeviceID mapping valid flag was introduced in IORT rev E.e >> + for SMMUV3 nodes rev. > 5. >> + If the DeviceID mapping index valid flag is set to 0, >> + DeviceID mapping index field must be ignored. >> + Where the SMMU uses message signaled interrupts for >> + its control interrupts, DeviceId Mapping Index contains an >> + index into the array of ID mapping. >> + */ >> + if (((SmmuV3Node->Node.Revision < 5) && >> + (SmmuV3Node->Event !=3D 0) && >> + (SmmuV3Node->Pri !=3D 0) && >> + (SmmuV3Node->Gerr !=3D 0) && >> + (SmmuV3Node->Sync !=3D 0) >> + ) || >> + ((SmmuV3Node->Node.Revision >=3D 5) && >> + ((SmmuV3Node->Flags & EFI_ACPI_IORT_SMMUv3_FLAG_DEVICEID_VALID= ) =3D=3D 0)) >> + ) > This is not borderline. I'm sure all of this is correct, but it is no > longer human readable. This type of information overload is better > kept out of a top-level function. > This also means we can give it an informative name. > > Best Regards, > > Leif > > p.s. > Apologies Sami, but since I spotted this before it had been merged by > CI, I dropped the "push" tag since I wanted to make a comment. > You are the maintainer, and the above are my opinions only. If you > disagree, feel free to add it back and push as is. > (And feel free to do the same to push requests initiated by me in > future.) [SAMI] I agree, this is becoming complex to read. I think it would be=20 good to have helper functions to make the code clearer. I have closed the pull request and look forward to a new patch from=20 Swatisri. [/SAMI] >> { >> - // If all the SMMU control interrupts are GSIV based, >> - // the DeviceID mapping index field is ignored. >> SmmuV3Node->DeviceIdMappingIndex =3D 0; >> } else { >> SmmuV3Node->DeviceIdMappingIndex =3D NodeList->DeviceIdMappingIn= dex; >> @@ -2819,7 +2840,7 @@ ACPI_IORT_GENERATOR IortGenerator =3D { >> // ACPI Table Signature >> EFI_ACPI_6_4_IO_REMAPPING_TABLE_SIGNATURE, >> // ACPI Table Revision supported by this Generator >> - EFI_ACPI_IO_REMAPPING_TABLE_REVISION_05, >> + EFI_ACPI_IO_REMAPPING_TABLE_REVISION_06, >> // Minimum supported ACPI Table Revision >> EFI_ACPI_IO_REMAPPING_TABLE_REVISION_00, >> // Creator ID >> --=20 >> 2.17.1 >> >> >> >>=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 (#109040): https://edk2.groups.io/g/devel/message/109040 Mute This Topic: https://groups.io/mt/101535844/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-