From nobody Mon Feb 9 15:09:07 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+68963+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+68963+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 16081251641501001.2118996323122; Wed, 16 Dec 2020 05:26:04 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id V1aIYY1788612xwKKaGSf0mX; Wed, 16 Dec 2020 05:26:02 -0800 X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [52.100.173.219]) by mx.groups.io with SMTP id smtpd.web12.7341.1608125161683424093 for ; Wed, 16 Dec 2020 05:26:01 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DZmodUdZ/cqhvzQ2yikXrkptYmsPBYvkDBZ8J/G4gIAOnEUlkZajkjErsb8ItpQOsLJkdrbKQcONNooASGgVVmwnmyEjSbft01rnSZ2r+AatzsNPczQAPQD8PpXbG7pod0AuwFQa2QDNe3FMN8ShtxQNiUp6J3KNwa8fs9N5QMY3O0mh4BZti4PqL+id3eB6xqfCn2aO0j4ypeQqAIzDV6hzJU//SbzeaLtHLRxfMM0RkHNeJDtWjiegZLQEB4YvUCnuPdHK4fLQGY0HooNpI+R2dpfvakBZToAuUr6W91v2JlbkpMCtcTJZEqtay3t5yT+iEjx+irv+fMH8RN7DIQ== 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=/+kYVHFxjWJ8N5a14OQnCZH9C7RPpFRDLxTCUQZSAYQ=; b=XrFPZ/YXqlxPzNL45sYYPEuv3dm729ZTw18Q/GSLWIs8tr6xocNpF4RTCTVfnT7f3VQ+7EFEyEbJDHGu+zXOXUjgBGFJ1UZTRrwoXyj/Z1G5jn8Pja/JrbLjltgDJOW65EkHsD/6vcwXnS+k4ByRuRqxOLHEhp63Hx+JlP3oJPPolvRCbu/SjQZ3iNBEQ+amvoQBQcNjLpx5VkeOiKzgsHOdtEBM4oBV0t7ckzEcj/d7auZaInpg7/TtNefQy/uUcCg2ATB11JpHf/uXSI7tPb2+hE4AtQUzmGGj0uobH2da9u1HI2B0e6DsgkS+RuoYcEp9vRYd2xGlXgRMeVevWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none X-Received: from MW2PR0102MB3482.prod.exchangelabs.com (2603:10b6:302:c::32) by MW4PR01MB6321.prod.exchangelabs.com (2603:10b6:303:7b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.24; Wed, 16 Dec 2020 13:25:57 +0000 X-Received: from MW2PR0102MB3482.prod.exchangelabs.com ([fe80::e903:700a:f17:7a17]) by MW2PR0102MB3482.prod.exchangelabs.com ([fe80::e903:700a:f17:7a17%7]) with mapi id 15.20.3654.020; Wed, 16 Dec 2020 13:25:57 +0000 From: "Quan Nguyen via groups.io" To: devel@edk2.groups.io Cc: Leif Lindholm , Ard Biesheuvel , Victor Gallardo , Open Source Submission , Quan Nguyen Subject: [edk2-devel] [PATCH v2 1/2] ArmPkg/ArmGicLib: Add ArmGicSetInterruptPriority() helper function Date: Wed, 16 Dec 2020 20:25:20 +0700 Message-Id: <20201216132521.5915-2-quan@os.amperecomputing.com> In-Reply-To: <20201216132521.5915-1-quan@os.amperecomputing.com> References: <20201216132521.5915-1-quan@os.amperecomputing.com> X-Originating-IP: [118.69.219.201] X-ClientProxiedBy: HK2PR02CA0140.apcprd02.prod.outlook.com (2603:1096:202:16::24) To MW2PR0102MB3482.prod.exchangelabs.com (2603:10b6:302:c::32) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from hcm-sw-17.amperecomputing.com (118.69.219.201) by HK2PR02CA0140.apcprd02.prod.outlook.com (2603:1096:202:16::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.12 via Frontend Transport; Wed, 16 Dec 2020 13:25:55 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cffe708c-3710-43b4-11ce-08d8a1c61f7e X-MS-TrafficTypeDiagnostic: MW4PR01MB6321: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: 5sWWdehYuMvvpqEX+mqsPnOO8bCn+nTwyYEsbApN68PxIqeh13BXVjC0SEOJdqIHWOj3+a2bsOKU6zkhqy9lIeskW4bJcBIVfmwHCHPPVJYerx/0rkLa122dXAlC1NiB7VlxmHVIQZ1P+Z6gAcs+7ElSBgbSiQvdnTQDfcs3qpg7ckruVYy5bG2xxKxR7LIgx5p9wvrnRbCsvWOHcthTr75PSRxUt2my5WqpttontgtevER1MVLWB4bESn6iiNkAPwrZaRF34Wv+S8OUhUcGme2x+Eu+uWdRVogegJLNjtDzd/scMw3ErZFzU6P2GKCX4FbbVEa1VBzLM7UQ5Na4k8zdxdwynnPMU9dIl+7Q1YEcStJfAoUbqsGjnVf7HGY0t9SfbQxE0bkagvCQJ3JMv9+yVLsmJ58skIF5kpxixtshTDDn/miNF+ipUWs9z0LsPI2iVJf0B6brcF9Tcbbd/igm65p9//Kr6eLJSnSqQxgLFdyUVLYuobiZaoDpqVwhRcE58YuAhfVlAKRuJ62pIhlCqkNDT7Ml7Bzcltxb0QnLYZICg4FyHvAf7TwASJycS4q843ZtLCjbM1Ufy1deVZtHcNKOHaHmZrYxZ3xiRqbFbVwYhzPXoakXs6FuQTVxIho2irlvfhUIwMJeDqFL55TTP8qQGNLrVXzq8NaQY3Y/G3i//xjo9qvPCoh/ovcOjmTZgWRuBrhnFfkA6gFffw== X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?TGTaG5jpDdQaNSQwlG+aeoPP1YuHH3tgXMhjeCDsZnyg1i9BtyN6fcI8TYIt?= =?us-ascii?Q?0KFYkVYdUSm/8LhdkMlJ0td2EGr3ZuPyGLObLbEGfG507LCvBWSRyhMK/k+7?= =?us-ascii?Q?KHUaoSilMgbWvos9E8spZq1SRNwxV5Nnt+Dop7Cb2LvFHQ6Bc1f/jLo6Ia59?= =?us-ascii?Q?MFJjaAEzq3izCr+CsBU83WbNOpVXu4VmS6Ku6AW+cXxyQa4dNe/l878b3xo8?= =?us-ascii?Q?3JRR25xN5g7AnujgC6zQ+9Wmg688Pzzc6ChsKYudzha3lAefFR6nxUYgPgJM?= =?us-ascii?Q?Xyv0WamXzT/t4HFsQhP8Sw1Trz/i1MnhLeCgU111/VtQW5Jczqkbn0clkRdf?= =?us-ascii?Q?55gIdLYNdCXkw0rdzUMJRej1aAAWwauK+O6R7ecqO1IOJibFrxFu/IZYsnKK?= =?us-ascii?Q?ubbs5edBSu3dECFpXFok/xSdtDYaASPJMZ2bsz4/0vbNmhkNcmZ3GTwrGHl3?= =?us-ascii?Q?xNri6SqpyyHSQbxvXROZVMUK/wSuPwkctGHSWqjvbJ9UZMzB252AYWlYGWms?= =?us-ascii?Q?3i47AJtg8hozNPMuSykdl+Z/u6xSJYyAF9G3q0tdA38kYg7mLZ3TLswRjapJ?= =?us-ascii?Q?RgrVjtazyrTEgQdH+t5Vr3NCC8ePqU6DFS27OdTWPw6GJmsw0hKkMhIr28Sw?= =?us-ascii?Q?/E+RiakaXD78Pxh+tivXigJMs65IHlMx+rVbHdr1BuShrzjQXlCZRCY4p+KZ?= =?us-ascii?Q?EPnDHdNeKzdPdk3lvQ+jG1IAgovtdw1wINAwDOu0l1mcXh+sNNp8CAzxmJVW?= =?us-ascii?Q?5tm7SYvqkqqxZ1Sb7HajOqUkRWzWffM3+xFKuTxX9XEqUMo8iOgmLf4xR+X/?= =?us-ascii?Q?TluOxmdsBNEJZWxV/6S2j92gkYvy1+pBnObKqBgxUsosqrUTTbz2E8heFdwa?= =?us-ascii?Q?CAIXVZovLZkeg3TM5tAkJ+ylipTJguLS45zU6SgqnVm2buDuvDUHn6SiwRii?= =?us-ascii?Q?o1KXhUelua19gFKdxZ1XFFgwNwrTYXzNRiMhBL5mt4mdRxvmLS8dOFB9QzYs?= =?us-ascii?Q?3wty?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-AuthSource: MW2PR0102MB3482.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2020 13:25:57.5938 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-Network-Message-Id: cffe708c-3710-43b4-11ce-08d8a1c61f7e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KC0C3c7mnQqLzMzGKTWOsQdz0yhoMf3I0v4rNDpRpwjkW17SXVvaXE8TJJhjmngpFdqHfJZ03F0Oy5miXBX0ZYAU408ZUdGYa+SkTxiXwiI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR01MB6321 Precedence: Bulk List-Unsubscribe: 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,quan@os.amperecomputing.com X-Gm-Message-State: X6I5nBJeuO6GSDz14qzGKmOux1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1608125162; bh=fyOmLBZhOCHbnbLLY/o+EYE03WfeETcbkhPjzQ2Y+jg=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=VgGfWNl5Z2z28yy5jiQDxjbnclkaxVzuMr59Nhx8bSnde/nWTr9eDq+RaS1ztDiKVTd K0ji31mMQnf2LK2GRUCCLl3qvziH3TOt9qww1+P/ni/v6CRyfGf+6syWbcYzX9tsOIwQE OLailBorLXQ1Wz7VNyCFjZSEHVhSxzSqWzk= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" According to ARM IHI 0069F, section 11.9.18 GICD_IPRIORITYR, Interrupt Priority Registers, n =3D 0 - 254, when affinity routing is enabled for the Security state of an interrupt, GICR_IPRIORITYR is used instead of GICD_IPRIORITYR where n =3D 0 to 7 (that is, for SGIs and PPIs). As setting interrupt priority for SGIs and PPIs are handled using difference registers depends on the mode, this patch instroduces ArmGicSetInterruptPriority() helper function to handle the discrepancy. Cc: Leif Lindholm Cc: Ard Biesheuvel Signed-off-by: Quan Nguyen --- ArmPkg/Drivers/ArmGic/ArmGicLib.c | 44 ++++++++++++++++++++++++++++++ ArmPkg/Include/Library/ArmGicLib.h | 9 ++++++ 2 files changed, 53 insertions(+) diff --git a/ArmPkg/Drivers/ArmGic/ArmGicLib.c b/ArmPkg/Drivers/ArmGic/ArmG= icLib.c index 001e6b143104..8ef32b33a154 100644 --- a/ArmPkg/Drivers/ArmGic/ArmGicLib.c +++ b/ArmPkg/Drivers/ArmGic/ArmGicLib.c @@ -199,6 +199,50 @@ ArmGicEndOfInterrupt ( } } =20 +VOID +EFIAPI +ArmGicSetInterruptPriority ( + IN UINTN GicDistributorBase, + IN UINTN GicRedistributorBase, + IN UINTN Source, + IN UINTN Priority + ) +{ + UINT32 RegOffset; + UINTN RegShift; + ARM_GIC_ARCH_REVISION Revision; + UINTN GicCpuRedistributorBase; + + // Calculate register offset and bit position + RegOffset =3D Source / 4; + RegShift =3D (Source % 4) * 8; + + Revision =3D ArmGicGetSupportedArchRevision (); + if ((Revision =3D=3D ARM_GIC_ARCH_REVISION_2) || + FeaturePcdGet (PcdArmGicV3WithV2Legacy) || + SourceIsSpi (Source)) { + MmioAndThenOr32 ( + GicDistributorBase + ARM_GIC_ICDIPR + (4 * RegOffset), + ~(0xff << RegShift), + Priority << RegShift + ); + } else { + GicCpuRedistributorBase =3D GicGetCpuRedistributorBase ( + GicRedistributorBase, + Revision + ); + if (GicCpuRedistributorBase =3D=3D 0) { + return; + } + + MmioAndThenOr32 ( + GicCpuRedistributorBase + ARM_GIC_ICDIPR + (4 * RegOffset), + ~(0xff << RegShift), + Priority << RegShift + ); + } +} + VOID EFIAPI ArmGicEnableInterrupt ( diff --git a/ArmPkg/Include/Library/ArmGicLib.h b/ArmPkg/Include/Library/Ar= mGicLib.h index 55093189638b..7bcfc001115b 100644 --- a/ArmPkg/Include/Library/ArmGicLib.h +++ b/ArmPkg/Include/Library/ArmGicLib.h @@ -208,6 +208,15 @@ ArmGicSetPriorityMask ( IN INTN PriorityMask ); =20 +VOID +EFIAPI +ArmGicSetInterruptPriority ( + IN UINTN GicDistributorBase, + IN UINTN GicRedistributorBase, + IN UINTN Source, + IN UINTN Priority + ); + VOID EFIAPI ArmGicEnableInterrupt ( --=20 2.28.0 -=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 (#68963): https://edk2.groups.io/g/devel/message/68963 Mute This Topic: https://groups.io/mt/79000097/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-