From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 696CE32C33E; Sun, 18 Jan 2026 11:00:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768734040; cv=none; b=iAhr1GdreQeibEAri/vjW86tXZ8S7vY22uO2lUl2YQj25st8eH6eJAME1b7K/nuYsexYYgdnmvVlM1/VpD+pLHpcY2UsRd3jJsINa+J/GsbXI2mQ82mcbP+w2+w9R8j05YmU6cHmQHaiSj09FY5GP6XS5KIfjVRMaGVjaKacSsI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768734040; c=relaxed/simple; bh=ckRbPlV/dNYcRGTMbUnR2/FtLqhLVon9hSop/7dGzKw=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=af80+q9QISqxkcrw7BIQ6hDSowCEVlWd9kjwrhP6HDTS+flPW2LEROujj14/0AqK4aoTra+9ZIL9OzI3Qz+03jJavUIG8cS2xFlchy15iXzjQ19DqtpsnrOf85UCosU8ZEM3XTAD/IVlpFbeYEXAqMYC1z29RD3AdOprW1oUKOU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gLfpnukQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gLfpnukQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9D2DDC2BC86; Sun, 18 Jan 2026 11:00:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1768734038; bh=ckRbPlV/dNYcRGTMbUnR2/FtLqhLVon9hSop/7dGzKw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gLfpnukQteg9gXxZAA5U22BLRPHRZf5n1G0LRszlaEIYFLLcBeZ5LBU4FTmlgpcc5 e81VAkSqwpQdfLeIG2dYmoQRP1Bv2/dhin0F6HdhXKwV4RL8gfqCBKlLKI8xqOcLnr GseLEL1A3gdCjXBQA04tP2Rz+1pcDha+sNdp364A24ii9zzEaYG3byU+MojhKEchAP rOPjDP6tt97QuesvpZBqs99r2pxqH4n2BD9h118jHjq4m5Wsp2QtaIvNLH6MkyzcTU ZsIdYcp6sdoPyH1FfbVn/MxQ8tNTLw9H836ZWNsOk0/DCl9/KDv+tWRvVhkJjLvcSx FWxtauzLnWHBw== Date: Sun, 18 Jan 2026 12:00:31 +0100 From: Lorenzo Pieralisi To: "Rafael J. Wysocki" , Len Brown , Robert Moore , Hanjun Guo , Sudeep Holla , Marc Zyngier , Bjorn Helgaas , Thomas Gleixner , Jonathan Cameron Cc: linux-acpi@vger.kernel.org, acpica-devel@lists.linux.dev, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org Subject: Re: [PATCH v3 0/6] irqchip/gic-v5: Code first ACPI boot support Message-ID: References: <20260115-gicv5-host-acpi-v3-0-c13a9a150388@kernel.org> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260115-gicv5-host-acpi-v3-0-c13a9a150388@kernel.org> On Thu, Jan 15, 2026 at 10:50:46AM +0100, Lorenzo Pieralisi wrote: > The ACPI and ACPI IORT specifications were updated to support bindings > required to describe GICv5 based systems. > > The ACPI specification GICv5 bindings ECR [1] were approved and the > required changes merged in the ACPICA upstream repository[5]. > > The Arm IORT specification [2] has been updated to include GICv5 IWB > specific bindings in revision E.g. > > Implement kernel code that - based on the aforementioned bindings - adds > support for GICv5 ACPI probing. > > ACPICA changes supporting the bindings were posted [6] - this series > depends on [6] to work and should not be merged stand alone. Hi Thomas, Rafael, I have noticed you pulled this seris into tip (thanks !) - there is a strict dependency on ACPICA patches in [6] though as I tried to convey with the paragraph above and dependencies below: prerequisite-message-id: <12822121.O9o76ZdvQC@rafael.j.wysocki> I don't know what's best/easier to handle this dependency but it is there, I don't want it to cause you any trouble so I reported it as soon as I noticed. Thanks ! Lorenzo > The ACPI bindings were prototyped in edk2 - code available in these > branches [3][4]. > > =========================== > Kernel implementation notes > =========================== > > IRS and ITS probing is triggered using the standard irqchip ACPI probing > mechanism - there is no significant difference compared to previous GIC > versions other. > > The only difference that is worth noting is that GICv3/4 systems include a > single MADT component describing the interrupt controller (ie GIC distributor) > whereas GICv5 systems include one or more IRSes. The probing code is > implemented so that an MADT IRS detection triggers probing for all IRSes > in one go. > > The IWB driver probes like any other ACPI device. IORT code is updated so > that a deviceID for the IWB can be detected. > > The only major change compared to GICv3/4 systems is the GSI namespace that > is split between PPI/SPI IRQs and IWB backed IRQs. > > The main GSI handle - to map an IRQ - has to detect whether to look-up > using the top level GSI domain or an IWB domain in that the two IRQ > namespaces are decoupled. > > IORT code implements the logic to retrieve an IWB domain by looking up its > IWB frame id, as described in [1]. > > Most important implementation detail worth noting is that - at this stage - > ACPI code is not capable of handling devices probe order IRQ dependency on > the interrupt controller driver their IRQ is routed to. > > This is not an issue on GICv3/4 systems in that the full GIC hierarchy > probes earlier than any other device, so by the time IRQs mappings have to > be carried out (ie acpi_register_gsi()) the GIC drivers have already > probed. > > On GICv5 systems, the IWB is modelled as a device and its device driver > probes at device_initcall time. That's when the IWB IRQ domain is actually > registered - which poses problems for devices whose IRQs are IWB routed and > require to resolve the IRQ mapping before the IWB driver has a chance to > probe. > > Work on resolving devices<->IWB probe order dependency has started in > parallel with this series and will be posted shortly. > > For PPI/SPI/LPI backed IRQs the probe dependency is not a problem because > in GICv5 systems the IRSes and ITSes probe early so their IRQ domain are > set in place before devices require IRQ mappings. > > [1] https://github.com/tianocore/edk2/issues/11148 > [2] https://developer.arm.com/documentation/den0049/eg > [3] https://github.com/LeviYeoReum/edk2/tree/levi/gicv5_patch > [4] https://github.com/LeviYeoReum/edk2-platforms/tree/levi/gicv5_patch > [5] https://github.com/acpica/acpica/commits/master/ > [6] https://lore.kernel.org/linux-acpi/12822121.O9o76ZdvQC@rafael.j.wysocki/ > > Signed-off-by: Lorenzo Pieralisi > --- > Changes in v3: > - Dropped ACPICA patches > - Split IRS OF refactoring into a separate patch > - Renamed new fwnode interface according to review > - Applied minor review comments > - Rebased on v6.19-rc5 > - Link to v2: https://lore.kernel.org/r/20251218-gicv5-host-acpi-v2-0-eec76cd1d40b@kernel.org > > Changes in v2: > - Cherry-picked ACPICA upstream changes > - Minor editorial changes > - Removed the "not for merging" tag because now ACPI specs are approved > - Rebased against v6.19-rc1 > - Link to v1: https://lore.kernel.org/r/20251028-gicv5-host-acpi-v1-0-01a862feb5ca@kernel.org > > --- > Lorenzo Pieralisi (6): > irqdomain: Add parent field to struct irqchip_fwid > PCI/MSI: Make the pci_msi_map_rid_ctlr_node() interface firmware agnostic > irqchip/gic-v5: Split IRS probing into OF and generic portions > irqchip/gic-v5: Add ACPI IRS probing > irqchip/gic-v5: Add ACPI ITS probing > irqchip/gic-v5: Add ACPI IWB probing > > drivers/acpi/arm64/iort.c | 193 +++++++++++++++++++----- > drivers/acpi/bus.c | 3 + > drivers/irqchip/irq-gic-its-msi-parent.c | 43 +++--- > drivers/irqchip/irq-gic-v5-irs.c | 247 ++++++++++++++++++++++++------- > drivers/irqchip/irq-gic-v5-its.c | 132 ++++++++++++++++- > drivers/irqchip/irq-gic-v5-iwb.c | 42 ++++-- > drivers/irqchip/irq-gic-v5.c | 138 ++++++++++++++--- > drivers/pci/msi/irqdomain.c | 23 ++- > include/linux/acpi.h | 1 + > include/linux/acpi_iort.h | 11 +- > include/linux/irqchip/arm-gic-v5.h | 8 + > include/linux/irqdomain.h | 30 +++- > include/linux/msi.h | 3 +- > kernel/irq/irqdomain.c | 14 +- > 14 files changed, 734 insertions(+), 154 deletions(-) > --- > base-commit: d0e305301e82474223bf26185e86e7dc2eb85350 > change-id: 20251022-gicv5-host-acpi-d59d6c1d3d07 > prerequisite-message-id: <12822121.O9o76ZdvQC@rafael.j.wysocki> > prerequisite-patch-id: 9f722bfc7e4861af40637017a83826401b3958e4 > prerequisite-patch-id: f619b4724a25a5c2b95032ef4c6d0b53dde45142 > prerequisite-patch-id: 3738d015d93d77b3d381ba8de056be533df48794 > prerequisite-patch-id: 50b1ee01b2ee63f6db21276ec24dadd645f8931e > prerequisite-patch-id: 6671f1c96dc89d5e375196e545c9750c2378f010 > prerequisite-patch-id: b5d91dce8f61ab75796ba6a766d499d7321c0231 > prerequisite-patch-id: 1f433eeb8848ce51c2b2fe601813939a042c6c0e > prerequisite-patch-id: 4f9aab64e4f4a75c18ae692bd903266069100d34 > prerequisite-patch-id: 793a7b3fab40b903ffa0855e0db5336acb69505b > prerequisite-patch-id: 3eeebe1df8abadc1606cc6dadd15031ad46ff64f > prerequisite-patch-id: 3477bb220e91c9cdb4d778ce15e44babbefddf23 > prerequisite-patch-id: 153be22f930d0c05bc04b37006bdb1e286883a92 > prerequisite-patch-id: 1a7dcfd7e1317aeec52c772f3150c115e965af52 > prerequisite-patch-id: 43a604c0109163e51a892d888c728794bca8a0a3 > prerequisite-patch-id: 580debc0f26b7c301160504e2360de6765e7a179 > prerequisite-patch-id: 15f2c86c557c835e4aed0cb914c23e04da1392ed > prerequisite-patch-id: 00986721db8da2e52c733971b482b9cf0c32910e > prerequisite-patch-id: 9d0607df90015bac8768549cbb0a19580f0b2661 > prerequisite-patch-id: f478f56f3ded4d0ce43254418deb5e10f49555ef > prerequisite-patch-id: 6f9563683e92392564935f24cc5e8be23301790c > prerequisite-patch-id: 4d701f77a597391e0d04c5da3d6f1cb24d1e40d0 > prerequisite-patch-id: d70577c2355648acbc7c857c5512df21280e917f > prerequisite-patch-id: 8c6408293baa1a758b0b0b4f078eaf7dbe1404e0 > prerequisite-patch-id: 84008a72aa67b54af8a294a0fc07d2b6eaede597 > prerequisite-patch-id: 97acab35d513bc6b091efa4185a9826262d5ed79 > prerequisite-patch-id: 04652a3bfdf9f4fa2ba829631c899ea3569f11a2 > > Best regards, > -- > Lorenzo Pieralisi >