From: Lorenzo Pieralisi <lpieralisi@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>,
linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org,
acpica-devel@lists.linux.dev, Mark Rutland <mark.rutland@arm.com>,
Robin Murphy <robin.murphy@arm.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Fang Xiang <fangxiang3@xiaomi.com>, Marc Zyngier <maz@kernel.org>,
Robert Moore <robert.moore@intel.com>
Subject: [PATCH v5 0/1] irqchip/gic-v3: Enable non-coherent GIC designs probing
Date: Tue, 23 Jan 2024 12:03:31 +0100 [thread overview]
Message-ID: <20240123110332.112797-1-lpieralisi@kernel.org> (raw)
This series is v5 of previous series:
v4: https://lore.kernel.org/all/20231227110038.55453-1-lpieralisi@kernel.org
v3: https://lore.kernel.org/all/20231006125929.48591-1-lpieralisi@kernel.org
v2: https://lore.kernel.org/all/20230906094139.16032-1-lpieralisi@kernel.org
v1: https://lore.kernel.org/all/20230905104721.52199-1-lpieralisi@kernel.org
v4 -> v5
- ACPICA patches merged for v6.8
- Refactored ACPI parsing code according to review
- Rebased against v6.8-rc1
v3 -> v4:
- Dropped patches [1-3], already merged
- Added Linuxized ACPICA changes accepted upstream
- Rebased against v6.7-rc3
v2 -> v3:
- Added ACPICA temporary changes and ACPI changes to implement
ECR https://bugzilla.tianocore.org/show_bug.cgi?id=4557
- ACPI changes are for testing purposes - subject to ECR code
first approval
v1 -> v2:
- Updated DT bindings as per feedback
- Updated patch[2] to use GIC quirks infrastructure
Original cover letter
---
The GICv3 architecture specifications provide a means for the
system programmer to set the shareability and cacheability
attributes the GIC components (redistributors and ITSes) use
to drive memory transactions.
Albeit the architecture give control over shareability/cacheability
memory transactions attributes (and barriers), it is allowed to
connect the GIC interconnect ports to non-coherent memory ports
on the interconnect, basically tying off shareability/cacheability
"wires" and de-facto making the redistributors and ITSes non-coherent
memory observers.
This series aims at starting a discussion over a possible solution
to this problem, by adding to the GIC device tree bindings the
standard dma-noncoherent property. The GIC driver uses the property
to force the redistributors and ITSes shareability attributes to
non-shareable, which consequently forces the driver to use CMOs
on GIC memory tables.
On ARM DT DMA is default non-coherent, so the GIC driver can't rely
on the generic DT dma-coherent/non-coherent property management layer
(of_dma_is_coherent()) which would default all GIC designs in the field
as non-coherent; it has to rely on ad-hoc dma-noncoherent property handling.
When a consistent approach is agreed upon for DT an equivalent binding will
be put forward for ACPI based systems.
Lorenzo Pieralisi (1):
irqchip/gic-v3: Enable non-coherent redistributors/ITSes ACPI probing
drivers/acpi/processor_core.c | 15 +++++++++++++++
drivers/irqchip/irq-gic-v3-its.c | 4 ++++
drivers/irqchip/irq-gic-v3.c | 9 +++++++++
include/linux/acpi.h | 3 +++
4 files changed, 31 insertions(+)
--
2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: Lorenzo Pieralisi <lpieralisi@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>,
linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org,
acpica-devel@lists.linux.dev, Mark Rutland <mark.rutland@arm.com>,
Robin Murphy <robin.murphy@arm.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Fang Xiang <fangxiang3@xiaomi.com>, Marc Zyngier <maz@kernel.org>,
Robert Moore <robert.moore@intel.com>
Subject: [PATCH v5 0/1] irqchip/gic-v3: Enable non-coherent GIC designs probing
Date: Tue, 23 Jan 2024 12:03:31 +0100 [thread overview]
Message-ID: <20240123110332.112797-1-lpieralisi@kernel.org> (raw)
This series is v5 of previous series:
v4: https://lore.kernel.org/all/20231227110038.55453-1-lpieralisi@kernel.org
v3: https://lore.kernel.org/all/20231006125929.48591-1-lpieralisi@kernel.org
v2: https://lore.kernel.org/all/20230906094139.16032-1-lpieralisi@kernel.org
v1: https://lore.kernel.org/all/20230905104721.52199-1-lpieralisi@kernel.org
v4 -> v5
- ACPICA patches merged for v6.8
- Refactored ACPI parsing code according to review
- Rebased against v6.8-rc1
v3 -> v4:
- Dropped patches [1-3], already merged
- Added Linuxized ACPICA changes accepted upstream
- Rebased against v6.7-rc3
v2 -> v3:
- Added ACPICA temporary changes and ACPI changes to implement
ECR https://bugzilla.tianocore.org/show_bug.cgi?id=4557
- ACPI changes are for testing purposes - subject to ECR code
first approval
v1 -> v2:
- Updated DT bindings as per feedback
- Updated patch[2] to use GIC quirks infrastructure
Original cover letter
---
The GICv3 architecture specifications provide a means for the
system programmer to set the shareability and cacheability
attributes the GIC components (redistributors and ITSes) use
to drive memory transactions.
Albeit the architecture give control over shareability/cacheability
memory transactions attributes (and barriers), it is allowed to
connect the GIC interconnect ports to non-coherent memory ports
on the interconnect, basically tying off shareability/cacheability
"wires" and de-facto making the redistributors and ITSes non-coherent
memory observers.
This series aims at starting a discussion over a possible solution
to this problem, by adding to the GIC device tree bindings the
standard dma-noncoherent property. The GIC driver uses the property
to force the redistributors and ITSes shareability attributes to
non-shareable, which consequently forces the driver to use CMOs
on GIC memory tables.
On ARM DT DMA is default non-coherent, so the GIC driver can't rely
on the generic DT dma-coherent/non-coherent property management layer
(of_dma_is_coherent()) which would default all GIC designs in the field
as non-coherent; it has to rely on ad-hoc dma-noncoherent property handling.
When a consistent approach is agreed upon for DT an equivalent binding will
be put forward for ACPI based systems.
Lorenzo Pieralisi (1):
irqchip/gic-v3: Enable non-coherent redistributors/ITSes ACPI probing
drivers/acpi/processor_core.c | 15 +++++++++++++++
drivers/irqchip/irq-gic-v3-its.c | 4 ++++
drivers/irqchip/irq-gic-v3.c | 9 +++++++++
include/linux/acpi.h | 3 +++
4 files changed, 31 insertions(+)
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2024-01-23 11:03 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-23 11:03 Lorenzo Pieralisi [this message]
2024-01-23 11:03 ` [PATCH v5 0/1] irqchip/gic-v3: Enable non-coherent GIC designs probing Lorenzo Pieralisi
2024-01-23 11:03 ` [PATCH v5 1/1] irqchip/gic-v3: Enable non-coherent redistributors/ITSes ACPI probing Lorenzo Pieralisi
2024-01-23 11:03 ` Lorenzo Pieralisi
2024-01-23 13:36 ` Robin Murphy
2024-01-23 13:36 ` Robin Murphy
2024-04-22 8:42 ` Lorenzo Pieralisi
2024-04-22 8:42 ` Lorenzo Pieralisi
2024-06-05 7:14 ` Lorenzo Pieralisi
2024-06-05 7:14 ` Lorenzo Pieralisi
2024-06-05 8:40 ` Marc Zyngier
2024-06-05 8:40 ` Marc Zyngier
2024-03-06 14:43 ` [PATCH v5 0/1] irqchip/gic-v3: Enable non-coherent GIC designs probing Lorenzo Pieralisi
2024-03-06 14:43 ` Lorenzo Pieralisi
2024-04-08 14:54 ` Lorenzo Pieralisi
2024-04-08 14:54 ` Lorenzo Pieralisi
2024-06-06 9:42 ` [PATCH v6 " Lorenzo Pieralisi
2024-06-06 9:42 ` Lorenzo Pieralisi
2024-06-06 9:42 ` [PATCH v6 1/1] irqchip/gic-v3: Enable non-coherent redistributors/ITSes ACPI probing Lorenzo Pieralisi
2024-06-06 9:42 ` Lorenzo Pieralisi
2024-06-06 14:40 ` [tip: irq/core] " tip-bot2 for Lorenzo Pieralisi
2024-06-06 18:51 ` [PATCH v6 1/1] " Amit Singh Tomar
2024-06-06 18:51 ` Amit Singh Tomar
2024-06-07 7:39 ` Lorenzo Pieralisi
2024-06-07 7:39 ` Lorenzo Pieralisi
2024-06-07 7:53 ` Amit Singh Tomar
2024-06-07 7:53 ` Amit Singh Tomar
2024-06-07 9:10 ` Robin Murphy
2024-06-07 9:10 ` Robin Murphy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240123110332.112797-1-lpieralisi@kernel.org \
--to=lpieralisi@kernel.org \
--cc=acpica-devel@lists.linux.dev \
--cc=fangxiang3@xiaomi.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=rafael@kernel.org \
--cc=robert.moore@intel.com \
--cc=robin.murphy@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.