* [PATCH 0/2] Bindings and DTS for Apple SoC GPUs
@ 2025-06-11 17:32 Sasha Finkelstein via B4 Relay
2025-06-11 17:32 ` [PATCH 1/2] dt-bindings: Add Apple SoC GPU Sasha Finkelstein via B4 Relay
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Sasha Finkelstein via B4 Relay @ 2025-06-11 17:32 UTC (permalink / raw)
To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
Sasha Finkelstein
Hi.
This patch series adds the DT bindings and tree entries for the GPU
present in Apple M-series SoCs. The driver itself is in Rust and
upstream is currently missing several prerequisite bindings, so will
be sent later.
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
---
Sasha Finkelstein (2):
dt-bindings: Add Apple SoC GPU
arm64: dts: Add Apple SoC GPU
Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MAINTAINERS | 1 +
arch/arm64/boot/dts/apple/t6000.dtsi | 4 ++++
arch/arm64/boot/dts/apple/t6001.dtsi | 4 ++++
arch/arm64/boot/dts/apple/t6002.dtsi | 4 ++++
arch/arm64/boot/dts/apple/t600x-common.dtsi | 34 ++++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t600x-die0.dtsi | 28 ++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t8103.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t8112.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
9 files changed, 294 insertions(+)
---
base-commit: aef17cb3d3c43854002956f24c24ec8e1a0e3546
change-id: 20250531-sgx-dt-4a1ba1b3b20f
Best regards,
--
Sasha Finkelstein <fnkl.kernel@gmail.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/2] dt-bindings: Add Apple SoC GPU
2025-06-11 17:32 [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Sasha Finkelstein via B4 Relay
@ 2025-06-11 17:32 ` Sasha Finkelstein via B4 Relay
2025-06-11 17:52 ` Alyssa Rosenzweig
` (2 more replies)
2025-06-11 17:32 ` [PATCH 2/2] arm64: dts: " Sasha Finkelstein via B4 Relay
2025-06-11 17:42 ` [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Alyssa Rosenzweig
2 siblings, 3 replies; 15+ messages in thread
From: Sasha Finkelstein via B4 Relay @ 2025-06-11 17:32 UTC (permalink / raw)
To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
Sasha Finkelstein
From: Sasha Finkelstein <fnkl.kernel@gmail.com>
Add bindings for the GPU present in Apple SoCs
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
---
Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MAINTAINERS | 1 +
2 files changed, 96 insertions(+)
diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..23df3ebd689b1e885eb99ca573343fe7f2d09dc4
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Apple SoC GPU
+
+maintainers:
+ - Sasha Finkelstein <fnkl.kernel@gmail.com>
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - const: apple,agx-g13g
+ - items:
+ - enum:
+ - apple,agx-g13s
+ - apple,agx-g13c
+ - apple,agx-g13d
+ - const: apple,agx-g13x
+ - items:
+ - const: apple,agx-g14g
+ reg:
+ items:
+ - description: ASC coprocessor control
+ - description: GPU block MMIO registers
+
+ reg-names:
+ items:
+ - const: asc
+ - const: sgx
+
+ power-domains:
+ maxItems: 1
+
+ mboxes:
+ maxItems: 1
+
+ memory-region:
+ items:
+ - description: Region containing GPU MMU TTBs
+ - description: Region containing GPU MMU page tables
+ - description:
+ Region containing a shared handoff structure for VM
+ management coordination
+ - description: Driver-opaque calibration blob
+ - description: Calibration blob
+ - description: Shared global variables with GPU firmware
+
+ memory-region-names:
+ items:
+ - const: ttbs
+ - const: pagetables
+ - const: handoff
+ - const: hw-cal-a
+ - const: hw-cal-b
+ - const: globals
+
+ apple,firmware-compat:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 3
+ description:
+ MacOS version the current firmware is paired with, used to pick
+ the version of firmware ABI to be used.
+ Bootloader will overwrite this
+
+required:
+ - compatible
+ - reg
+ - mboxes
+ - memory-region
+ - apple,firmware-compat
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/apple-aic.h>
+ gpu@6400000 {
+ compatible = "apple,agx-g13g";
+ reg = <0x6400000 0x40000>,
+ <0x4000000 0x1000000>;
+ reg-names = "asc", "sgx";
+ mboxes = <&agx_mbox>;
+ power-domains = <&ps_gfx>;
+ memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
+ <&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
+ memory-region-names = "ttbs", "pagetables", "handoff",
+ "hw-cal-a", "hw-cal-b", "globals";
+
+ apple,firmware-compat = <0 0 0>;
+ };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index a92290fffa163f9fe8fe3f04bf66426f9a894409..2a32c9c4ee355a1109a3e2031ea3663c39cc8c68 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2331,6 +2331,7 @@ F: Documentation/devicetree/bindings/arm/apple/*
F: Documentation/devicetree/bindings/clock/apple,nco.yaml
F: Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
F: Documentation/devicetree/bindings/dma/apple,admac.yaml
+F: Documentation/devicetree/bindings/gpu/apple,agx.yaml
F: Documentation/devicetree/bindings/i2c/apple,i2c.yaml
F: Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch.yaml
F: Documentation/devicetree/bindings/interrupt-controller/apple,*
--
2.49.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/2] arm64: dts: Add Apple SoC GPU
2025-06-11 17:32 [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Sasha Finkelstein via B4 Relay
2025-06-11 17:32 ` [PATCH 1/2] dt-bindings: Add Apple SoC GPU Sasha Finkelstein via B4 Relay
@ 2025-06-11 17:32 ` Sasha Finkelstein via B4 Relay
2025-06-11 17:53 ` Alyssa Rosenzweig
` (2 more replies)
2025-06-11 17:42 ` [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Alyssa Rosenzweig
2 siblings, 3 replies; 15+ messages in thread
From: Sasha Finkelstein via B4 Relay @ 2025-06-11 17:32 UTC (permalink / raw)
To: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel,
Sasha Finkelstein
From: Sasha Finkelstein <fnkl.kernel@gmail.com>
Add device tree entries for GPUs in M-series SoCs
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
---
arch/arm64/boot/dts/apple/t6000.dtsi | 4 ++++
arch/arm64/boot/dts/apple/t6001.dtsi | 4 ++++
arch/arm64/boot/dts/apple/t6002.dtsi | 4 ++++
arch/arm64/boot/dts/apple/t600x-common.dtsi | 34 ++++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t600x-die0.dtsi | 28 ++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t8103.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/t8112.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 198 insertions(+)
diff --git a/arch/arm64/boot/dts/apple/t6000.dtsi b/arch/arm64/boot/dts/apple/t6000.dtsi
index 89c3b211b116e96ee0a5ea0c923c3ab824008307..3b60842045d4c3277e9530a13ef2811774209697 100644
--- a/arch/arm64/boot/dts/apple/t6000.dtsi
+++ b/arch/arm64/boot/dts/apple/t6000.dtsi
@@ -16,3 +16,7 @@ / {
};
/delete-node/ &pmgr_south;
+
+&gpu {
+ compatible = "apple,agx-g13s", "apple,agx-g13x";
+};
diff --git a/arch/arm64/boot/dts/apple/t6001.dtsi b/arch/arm64/boot/dts/apple/t6001.dtsi
index d2cf81926f284ccf7627701cc82edff31d4d72d6..60c65ad8fabccc153aa98f4431dc11f7551eca77 100644
--- a/arch/arm64/boot/dts/apple/t6001.dtsi
+++ b/arch/arm64/boot/dts/apple/t6001.dtsi
@@ -62,3 +62,7 @@ p-core-pmu-affinity {
};
};
};
+
+&gpu {
+ compatible = "apple,agx-g13c", "apple,agx-g13x";
+};
diff --git a/arch/arm64/boot/dts/apple/t6002.dtsi b/arch/arm64/boot/dts/apple/t6002.dtsi
index e36f422d257d8fe3a62bfa6e0f0e0dc6c34608a4..501ca82f41827e4882683e583b6feaf25a34321d 100644
--- a/arch/arm64/boot/dts/apple/t6002.dtsi
+++ b/arch/arm64/boot/dts/apple/t6002.dtsi
@@ -300,3 +300,7 @@ &ps_gfx {
// On t6002, the die0 GPU power domain needs both AFR power domains
power-domains = <&ps_afr>, <&ps_afr_die1>;
};
+
+&gpu {
+ compatible = "apple,agx-g13d", "apple,agx-g13x";
+};
diff --git a/arch/arm64/boot/dts/apple/t600x-common.dtsi b/arch/arm64/boot/dts/apple/t600x-common.dtsi
index 87dfc13d74171f62bf3087401918d9d41eaac560..329bd084b63e3688547166a8d0c3d9ace5d6d937 100644
--- a/arch/arm64/boot/dts/apple/t600x-common.dtsi
+++ b/arch/arm64/boot/dts/apple/t600x-common.dtsi
@@ -11,6 +11,10 @@ / {
#address-cells = <2>;
#size-cells = <2>;
+ aliases {
+ gpu = &gpu;
+ };
+
cpus {
#address-cells = <2>;
#size-cells = <0>;
@@ -378,4 +382,34 @@ nco_clkref: clock-ref-nco {
#clock-cells = <0>;
clock-output-names = "nco_ref";
};
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ gpu_globals: globals {
+ reg = <0x0 0 0 0>;
+ };
+
+ gpu_hw_cal_a: hw-cal-a {
+ reg = <0x0 0 0 0>;
+ };
+
+ gpu_hw_cal_b: hw-cal-b {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_handoff: uat-handoff {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_pagetables: uat-pagetables {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_ttbs: uat-ttbs {
+ reg = <0x0 0 0 0>;
+ };
+ };
};
diff --git a/arch/arm64/boot/dts/apple/t600x-die0.dtsi b/arch/arm64/boot/dts/apple/t600x-die0.dtsi
index 110bc6719512e334e04b496fb157cb4368679957..140e0ebc0421881899f276b81f3d747ae67a8871 100644
--- a/arch/arm64/boot/dts/apple/t600x-die0.dtsi
+++ b/arch/arm64/boot/dts/apple/t600x-die0.dtsi
@@ -302,6 +302,34 @@ mca: mca@39b600000 {
#sound-dai-cells = <1>;
};
+ gpu: gpu@406400000 {
+ compatible = "apple,agx-g13x";
+ reg = <0x4 0x6400000 0 0x40000>,
+ <0x4 0x4000000 0 0x1000000>;
+ reg-names = "asc", "sgx";
+ mboxes = <&agx_mbox>;
+ power-domains = <&ps_gfx>;
+ memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
+ <&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
+ memory-region-names = "ttbs", "pagetables", "handoff",
+ "hw-cal-a", "hw-cal-b", "globals";
+
+ apple,firmware-compat = <0 0 0>;
+ };
+
+ agx_mbox: mbox@406408000 {
+ compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4";
+ reg = <0x4 0x6408000 0x0 0x4000>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 0 1059 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 1060 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 1061 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 0 1062 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "send-empty", "send-not-empty",
+ "recv-empty", "recv-not-empty";
+ #mbox-cells = <0>;
+ };
+
pcie0_dart_0: iommu@581008000 {
compatible = "apple,t6000-dart";
reg = <0x5 0x81008000 0x0 0x4000>;
diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi
index 20faf0c0d80927b2e18dd966a61b5507b322c72f..eeaea35a89e2f2c7f8e04d95e22ed6cc0ec3d5c9 100644
--- a/arch/arm64/boot/dts/apple/t8103.dtsi
+++ b/arch/arm64/boot/dts/apple/t8103.dtsi
@@ -19,6 +19,10 @@ / {
#address-cells = <2>;
#size-cells = <2>;
+ aliases {
+ gpu = &gpu;
+ };
+
cpus {
#address-cells = <2>;
#size-cells = <0>;
@@ -351,6 +355,36 @@ nco_clkref: clock-ref-nco {
clock-output-names = "nco_ref";
};
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ gpu_globals: globals {
+ reg = <0x0 0 0 0>;
+ };
+
+ gpu_hw_cal_a: hw-cal-a {
+ reg = <0x0 0 0 0>;
+ };
+
+ gpu_hw_cal_b: hw-cal-b {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_handoff: uat-handoff {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_pagetables: uat-pagetables {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_ttbs: uat-ttbs {
+ reg = <0x0 0 0 0>;
+ };
+ };
+
soc {
compatible = "simple-bus";
#address-cells = <2>;
@@ -359,6 +393,34 @@ soc {
ranges;
nonposted-mmio;
+ gpu: gpu@206400000 {
+ compatible = "apple,agx-g13g";
+ reg = <0x2 0x6400000 0 0x40000>,
+ <0x2 0x4000000 0 0x1000000>;
+ reg-names = "asc", "sgx";
+ mboxes = <&agx_mbox>;
+ power-domains = <&ps_gfx>;
+ memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
+ <&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
+ memory-region-names = "ttbs", "pagetables", "handoff",
+ "hw-cal-a", "hw-cal-b", "globals";
+
+ apple,firmware-compat = <0 0 0>;
+ };
+
+ agx_mbox: mbox@206408000 {
+ compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
+ reg = <0x2 0x6408000 0x0 0x4000>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 575 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 576 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 577 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 578 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "send-empty", "send-not-empty",
+ "recv-empty", "recv-not-empty";
+ #mbox-cells = <0>;
+ };
+
cpufreq_e: performance-controller@210e20000 {
compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq";
reg = <0x2 0x10e20000 0 0x1000>;
diff --git a/arch/arm64/boot/dts/apple/t8112.dtsi b/arch/arm64/boot/dts/apple/t8112.dtsi
index e95711d8337f6cea898e88a3d564caf2c4f94404..b8fcfb6d93b27d4e314e706eb1f10eb58b15462b 100644
--- a/arch/arm64/boot/dts/apple/t8112.dtsi
+++ b/arch/arm64/boot/dts/apple/t8112.dtsi
@@ -19,6 +19,10 @@ / {
#address-cells = <2>;
#size-cells = <2>;
+ aliases {
+ gpu = &gpu;
+ };
+
cpus {
#address-cells = <2>;
#size-cells = <0>;
@@ -366,6 +370,36 @@ nco_clkref: clock-ref-nco {
clock-output-names = "nco_ref";
};
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ gpu_globals: globals {
+ reg = <0x0 0 0 0>;
+ };
+
+ gpu_hw_cal_a: hw-cal-a {
+ reg = <0x0 0 0 0>;
+ };
+
+ gpu_hw_cal_b: hw-cal-b {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_handoff: uat-handoff {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_pagetables: uat-pagetables {
+ reg = <0x0 0 0 0>;
+ };
+
+ uat_ttbs: uat-ttbs {
+ reg = <0x0 0 0 0>;
+ };
+ };
+
soc {
compatible = "simple-bus";
#address-cells = <2>;
@@ -374,6 +408,34 @@ soc {
ranges;
nonposted-mmio;
+ gpu: gpu@206400000 {
+ compatible = "apple,agx-g14g";
+ reg = <0x2 0x6400000 0 0x40000>,
+ <0x2 0x4000000 0 0x1000000>;
+ reg-names = "asc", "sgx";
+ mboxes = <&agx_mbox>;
+ power-domains = <&ps_gfx>;
+ memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
+ <&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
+ memory-region-names = "ttbs", "pagetables", "handoff",
+ "hw-cal-a", "hw-cal-b", "globals";
+
+ apple,firmware-compat = <0 0 0>;
+ };
+
+ agx_mbox: mbox@206408000 {
+ compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
+ reg = <0x2 0x6408000 0x0 0x4000>;
+ interrupt-parent = <&aic>;
+ interrupts = <AIC_IRQ 709 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 710 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 711 IRQ_TYPE_LEVEL_HIGH>,
+ <AIC_IRQ 712 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "send-empty", "send-not-empty",
+ "recv-empty", "recv-not-empty";
+ #mbox-cells = <0>;
+ };
+
cpufreq_e: cpufreq@210e20000 {
compatible = "apple,t8112-cluster-cpufreq", "apple,cluster-cpufreq";
reg = <0x2 0x10e20000 0 0x1000>;
--
2.49.0
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 0/2] Bindings and DTS for Apple SoC GPUs
2025-06-11 17:32 [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Sasha Finkelstein via B4 Relay
2025-06-11 17:32 ` [PATCH 1/2] dt-bindings: Add Apple SoC GPU Sasha Finkelstein via B4 Relay
2025-06-11 17:32 ` [PATCH 2/2] arm64: dts: " Sasha Finkelstein via B4 Relay
@ 2025-06-11 17:42 ` Alyssa Rosenzweig
2025-06-11 17:48 ` Sasha Finkelstein
2 siblings, 1 reply; 15+ messages in thread
From: Alyssa Rosenzweig @ 2025-06-11 17:42 UTC (permalink / raw)
To: fnkl.kernel
Cc: Sven Peter, Janne Grunau, Neal Gompa, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, asahi, linux-arm-kernel,
dri-devel, devicetree, linux-kernel
>
> This patch series adds the DT bindings and tree entries for the GPU
> present in Apple M-series SoCs. The driver itself is in Rust and
> upstream is currently missing several prerequisite bindings, so will
> be sent later.
It would be good to include links to the kernel + m1n1 branches that
support this binding, since it's not what downstream ships.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/2] Bindings and DTS for Apple SoC GPUs
2025-06-11 17:42 ` [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Alyssa Rosenzweig
@ 2025-06-11 17:48 ` Sasha Finkelstein
0 siblings, 0 replies; 15+ messages in thread
From: Sasha Finkelstein @ 2025-06-11 17:48 UTC (permalink / raw)
To: Alyssa Rosenzweig
Cc: Sven Peter, Janne Grunau, Neal Gompa, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, asahi, linux-arm-kernel,
dri-devel, devicetree, linux-kernel
On Wed, 11 Jun 2025 at 19:42, Alyssa Rosenzweig <alyssa@rosenzweig.io> wrote:
>
> It would be good to include links to the kernel + m1n1 branches that
> support this binding, since it's not what downstream ships.
Right, will add to cover message on v2.
Kernel: https://github.com/WhatAmISupposedToPutHere/linux/tree/starlight
m1n1 (the bootloader):
https://github.com/WhatAmISupposedToPutHere/m1n1/tree/bootloader-cal-blobs
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
2025-06-11 17:32 ` [PATCH 1/2] dt-bindings: Add Apple SoC GPU Sasha Finkelstein via B4 Relay
@ 2025-06-11 17:52 ` Alyssa Rosenzweig
2025-06-11 18:44 ` Sven Peter
2025-06-11 18:46 ` Rob Herring
2 siblings, 0 replies; 15+ messages in thread
From: Alyssa Rosenzweig @ 2025-06-11 17:52 UTC (permalink / raw)
To: fnkl.kernel
Cc: Sven Peter, Janne Grunau, Neal Gompa, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, asahi, linux-arm-kernel,
dri-devel, devicetree, linux-kernel
> + - description: Driver-opaque calibration blob
> + - description: Calibration blob
...
> + - const: hw-cal-a
> + - const: hw-cal-b
For me these descriptions raise more questions than what they're meant
to describe... Maybe "First hardware calibration blob" and "Second
hardware calibration blob" or something. I don't fully get why A is
opaque and B is not, I don't think there's really such a distinction in
reality.
> + description:
> + MacOS version the current firmware is paired with, used to pick
macOS
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
2025-06-11 17:32 ` [PATCH 2/2] arm64: dts: " Sasha Finkelstein via B4 Relay
@ 2025-06-11 17:53 ` Alyssa Rosenzweig
2025-06-11 19:12 ` Sven Peter
2025-06-11 19:59 ` Janne Grunau
2 siblings, 0 replies; 15+ messages in thread
From: Alyssa Rosenzweig @ 2025-06-11 17:53 UTC (permalink / raw)
To: fnkl.kernel
Cc: Sven Peter, Janne Grunau, Neal Gompa, David Airlie, Simona Vetter,
Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, asahi, linux-arm-kernel,
dri-devel, devicetree, linux-kernel
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
2025-06-11 17:32 ` [PATCH 1/2] dt-bindings: Add Apple SoC GPU Sasha Finkelstein via B4 Relay
2025-06-11 17:52 ` Alyssa Rosenzweig
@ 2025-06-11 18:44 ` Sven Peter
2025-06-11 19:06 ` Sasha Finkelstein
2025-06-11 18:46 ` Rob Herring
2 siblings, 1 reply; 15+ messages in thread
From: Sven Peter @ 2025-06-11 18:44 UTC (permalink / raw)
To: fnkl.kernel
Cc: asahi, Maarten Lankhorst, Simona Vetter, David Airlie, Neal Gompa,
Maxime Ripard, Conor Dooley, Krzysztof Kozlowski, Rob Herring,
Thomas Zimmermann, Alyssa Rosenzweig, Janne Grunau,
linux-arm-kernel, dri-devel, devicetree, linux-kernel
Hi,
I think there's a "gpu: " missing in the subject.
On 11.06.25 19:32, Sasha Finkelstein via B4 Relay wrote:
> From: Sasha Finkelstein <fnkl.kernel@gmail.com>
>
> Add bindings for the GPU present in Apple SoCs
>
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
> ---
> Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 96 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..23df3ebd689b1e885eb99ca573343fe7f2d09dc4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Apple SoC GPU
> +
> +maintainers:
> + - Sasha Finkelstein <fnkl.kernel@gmail.com>
> +
> +properties:
> + compatible:
> + oneOf:
> + - items:
> + - const: apple,agx-g13g
> + - items:
> + - enum:
> + - apple,agx-g13s
> + - apple,agx-g13c
> + - apple,agx-g13d
> + - const: apple,agx-g13x
> + - items:
> + - const: apple,agx-g14g
> + reg:
> + items:
> + - description: ASC coprocessor control
Apple calls these co-processors ASC but I'm not sure that's really
helpful to describe them. Maybe just "GPU coprocessor control registers"?
> + - description: GPU block MMIO registers
> +
> + reg-names:
> + items:
> + - const: asc
> + - const: sgx
> +
> + power-domains:
> + maxItems: 1
> +
> + mboxes:
> + maxItems: 1
> +
> + memory-region:
> + items:
> + - description: Region containing GPU MMU TTBs
> + - description: Region containing GPU MMU page tables
> + - description:
> + Region containing a shared handoff structure for VM
> + management coordination
> + - description: Driver-opaque calibration blob
> + - description: Calibration blob
Like Alyssa mentioned, this description also raises more questions than
it answers for me. Do we know what these two blobs contain or why they
are two separate blobs?
> + - description: Shared global variables with GPU firmware
> +
> + memory-region-names:
> + items:
> + - const: ttbs
> + - const: pagetables
> + - const: handoff
> + - const: hw-cal-a
> + - const: hw-cal-b
> + - const: globals
> +
> + apple,firmware-compat:
Nit: I'd prefer something like apple,firmware-abi here.
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + minItems: 3
> + description:
> + MacOS version the current firmware is paired with, used to pick
> + the version of firmware ABI to be used.
> + Bootloader will overwrite this
> +
> +required:
> + - compatible
> + - reg
> + - mboxes
> + - memory-region
> + - apple,firmware-compat
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/apple-aic.h>
No need for the include for this example.
> + gpu@6400000 {
> + compatible = "apple,agx-g13g";
> + reg = <0x6400000 0x40000>,
> + <0x4000000 0x1000000>;
> + reg-names = "asc", "sgx";
> + mboxes = <&agx_mbox>;
> + power-domains = <&ps_gfx>;
> + memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
> + <&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
> + memory-region-names = "ttbs", "pagetables", "handoff",
> + "hw-cal-a", "hw-cal-b", "globals";
> +
> + apple,firmware-compat = <0 0 0>;
> + };
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index a92290fffa163f9fe8fe3f04bf66426f9a894409..2a32c9c4ee355a1109a3e2031ea3663c39cc8c68 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2331,6 +2331,7 @@ F: Documentation/devicetree/bindings/arm/apple/*
> F: Documentation/devicetree/bindings/clock/apple,nco.yaml
> F: Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
> F: Documentation/devicetree/bindings/dma/apple,admac.yaml
> +F: Documentation/devicetree/bindings/gpu/apple,agx.yaml
> F: Documentation/devicetree/bindings/i2c/apple,i2c.yaml
> F: Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch.yaml
> F: Documentation/devicetree/bindings/interrupt-controller/apple,*
>
Best,
Sven
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
2025-06-11 17:32 ` [PATCH 1/2] dt-bindings: Add Apple SoC GPU Sasha Finkelstein via B4 Relay
2025-06-11 17:52 ` Alyssa Rosenzweig
2025-06-11 18:44 ` Sven Peter
@ 2025-06-11 18:46 ` Rob Herring
2025-06-11 19:18 ` Alyssa Rosenzweig
2 siblings, 1 reply; 15+ messages in thread
From: Rob Herring @ 2025-06-11 18:46 UTC (permalink / raw)
To: fnkl.kernel
Cc: Sven Peter, Janne Grunau, Alyssa Rosenzweig, Neal Gompa,
David Airlie, Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Krzysztof Kozlowski, Conor Dooley, asahi,
linux-arm-kernel, dri-devel, devicetree, linux-kernel
On Wed, Jun 11, 2025 at 12:32 PM Sasha Finkelstein via B4 Relay
<devnull+fnkl.kernel.gmail.com@kernel.org> wrote:
>
> From: Sasha Finkelstein <fnkl.kernel@gmail.com>
>
> Add bindings for the GPU present in Apple SoCs
>
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
> ---
> Documentation/devicetree/bindings/gpu/apple,agx.yaml | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 96 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..23df3ebd689b1e885eb99ca573343fe7f2d09dc4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/gpu/apple,agx.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Apple SoC GPU
> +
> +maintainers:
> + - Sasha Finkelstein <fnkl.kernel@gmail.com>
> +
> +properties:
> + compatible:
> + oneOf:
> + - items:
> + - const: apple,agx-g13g
> + - items:
> + - enum:
> + - apple,agx-g13s
> + - apple,agx-g13c
> + - apple,agx-g13d
> + - const: apple,agx-g13x
I'm assuming the 'x' is a wildcard. The preferred thing to do make one
of the 3 actual devices the fallback. Typically, the oldest one is
used.
> + - items:
> + - const: apple,agx-g14g
This and the 1st entry can be a single enum.
> + reg:
> + items:
> + - description: ASC coprocessor control
> + - description: GPU block MMIO registers
Seems odd that the main GPU registers are not first in the list, but
either way is fine.
> +
> + reg-names:
> + items:
> + - const: asc
> + - const: sgx
> +
> + power-domains:
> + maxItems: 1
> +
> + mboxes:
> + maxItems: 1
> +
> + memory-region:
> + items:
> + - description: Region containing GPU MMU TTBs
> + - description: Region containing GPU MMU page tables
> + - description:
> + Region containing a shared handoff structure for VM
> + management coordination
> + - description: Driver-opaque calibration blob
> + - description: Calibration blob
> + - description: Shared global variables with GPU firmware
> +
> + memory-region-names:
> + items:
> + - const: ttbs
> + - const: pagetables
> + - const: handoff
> + - const: hw-cal-a
> + - const: hw-cal-b
> + - const: globals
> +
> + apple,firmware-compat:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + minItems: 3
> + description:
> + MacOS version the current firmware is paired with, used to pick
> + the version of firmware ABI to be used.
> + Bootloader will overwrite this
> +
> +required:
> + - compatible
> + - reg
> + - mboxes
> + - memory-region
> + - apple,firmware-compat
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/apple-aic.h>
> + gpu@6400000 {
> + compatible = "apple,agx-g13g";
> + reg = <0x6400000 0x40000>,
> + <0x4000000 0x1000000>;
> + reg-names = "asc", "sgx";
> + mboxes = <&agx_mbox>;
> + power-domains = <&ps_gfx>;
> + memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
> + <&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
> + memory-region-names = "ttbs", "pagetables", "handoff",
> + "hw-cal-a", "hw-cal-b", "globals";
> +
> + apple,firmware-compat = <0 0 0>;
> + };
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index a92290fffa163f9fe8fe3f04bf66426f9a894409..2a32c9c4ee355a1109a3e2031ea3663c39cc8c68 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2331,6 +2331,7 @@ F: Documentation/devicetree/bindings/arm/apple/*
> F: Documentation/devicetree/bindings/clock/apple,nco.yaml
> F: Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
> F: Documentation/devicetree/bindings/dma/apple,admac.yaml
> +F: Documentation/devicetree/bindings/gpu/apple,agx.yaml
> F: Documentation/devicetree/bindings/i2c/apple,i2c.yaml
> F: Documentation/devicetree/bindings/input/touchscreen/apple,z2-multitouch.yaml
> F: Documentation/devicetree/bindings/interrupt-controller/apple,*
>
> --
> 2.49.0
>
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
2025-06-11 18:44 ` Sven Peter
@ 2025-06-11 19:06 ` Sasha Finkelstein
2025-06-11 19:17 ` Sven Peter
0 siblings, 1 reply; 15+ messages in thread
From: Sasha Finkelstein @ 2025-06-11 19:06 UTC (permalink / raw)
To: Sven Peter
Cc: asahi, Maarten Lankhorst, Simona Vetter, David Airlie, Neal Gompa,
Maxime Ripard, Conor Dooley, Krzysztof Kozlowski, Rob Herring,
Thomas Zimmermann, Alyssa Rosenzweig, Janne Grunau,
linux-arm-kernel, dri-devel, devicetree, linux-kernel
On Wed, 11 Jun 2025 at 20:44, Sven Peter <sven@kernel.org> wrote:
> > + - description: Driver-opaque calibration blob
> > + - description: Calibration blob
>
> Like Alyssa mentioned, this description also raises more questions than
> it answers for me. Do we know what these two blobs contain or why they
> are two separate blobs?
At some point in the gpu initialization process we give the firmware a bag
of pointers to various stuff it needs. HwCalA and HwCalB are separate
pointers, and they use separate gpu allocations. We do not fully know
what is in there, but we know what some of the fields do and how to
create the blobs based on data from apple device tree.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
2025-06-11 17:32 ` [PATCH 2/2] arm64: dts: " Sasha Finkelstein via B4 Relay
2025-06-11 17:53 ` Alyssa Rosenzweig
@ 2025-06-11 19:12 ` Sven Peter
2025-06-11 20:10 ` Janne Grunau
2025-06-11 19:59 ` Janne Grunau
2 siblings, 1 reply; 15+ messages in thread
From: Sven Peter @ 2025-06-11 19:12 UTC (permalink / raw)
To: fnkl.kernel
Cc: asahi, Maarten Lankhorst, Neal Gompa, Alyssa Rosenzweig,
Janne Grunau, linux-arm-kernel, Conor Dooley, Rob Herring,
Maxime Ripard, dri-devel, Simona Vetter, David Airlie, devicetree,
linux-kernel, Thomas Zimmermann, Krzysztof Kozlowski
Hi,
On 11.06.25 19:32, Sasha Finkelstein via B4 Relay wrote:
> From: Sasha Finkelstein <fnkl.kernel@gmail.com>
>
> Add device tree entries for GPUs in M-series SoCs
>
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
> ---
> arch/arm64/boot/dts/apple/t6000.dtsi | 4 ++++
> arch/arm64/boot/dts/apple/t6001.dtsi | 4 ++++
> arch/arm64/boot/dts/apple/t6002.dtsi | 4 ++++
> arch/arm64/boot/dts/apple/t600x-common.dtsi | 34 ++++++++++++++++++++++++++++++++++
> arch/arm64/boot/dts/apple/t600x-die0.dtsi | 28 ++++++++++++++++++++++++++++
> arch/arm64/boot/dts/apple/t8103.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> arch/arm64/boot/dts/apple/t8112.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 7 files changed, 198 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/apple/t6000.dtsi b/arch/arm64/boot/dts/apple/t6000.dtsi
> index 89c3b211b116e96ee0a5ea0c923c3ab824008307..3b60842045d4c3277e9530a13ef2811774209697 100644
> --- a/arch/arm64/boot/dts/apple/t6000.dtsi
> +++ b/arch/arm64/boot/dts/apple/t6000.dtsi
> @@ -16,3 +16,7 @@ / {
> };
>
[....]
> };
> +
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + gpu_globals: globals {
> + reg = <0x0 0 0 0>;
> + };
> +
> + gpu_hw_cal_a: hw-cal-a {
> + reg = <0x0 0 0 0>;
> + };
> +
> + gpu_hw_cal_b: hw-cal-b {
> + reg = <0x0 0 0 0>;
> + };
> +
> + uat_handoff: uat-handoff {
> + reg = <0x0 0 0 0>;
> + };
> +
> + uat_pagetables: uat-pagetables {
> + reg = <0x0 0 0 0>;
> + };
> +
> + uat_ttbs: uat-ttbs {
> + reg = <0x0 0 0 0>;
> + };
With W=1 this results in a bunch of new warnings like
arch/arm64/boot/dts/apple/t600x-common.dtsi:391.24-394.5: Warning
(unit_address_vs_reg): /reserved-memory/globals: node has a reg or
ranges property, but no unit name
but I'm not sure it's possible to fix that without making up fake
addresses that then get overwritten here. Would be nice to fix this some
other way but I'm not sure how and so far we don't enforce "no
additional W=1 warnings", so:
Reviewed-by: Sven Peter <sven@kernel.org>
Best,
Sven
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
2025-06-11 19:06 ` Sasha Finkelstein
@ 2025-06-11 19:17 ` Sven Peter
0 siblings, 0 replies; 15+ messages in thread
From: Sven Peter @ 2025-06-11 19:17 UTC (permalink / raw)
To: Sasha Finkelstein
Cc: asahi, Maarten Lankhorst, Simona Vetter, David Airlie, Neal Gompa,
Maxime Ripard, Conor Dooley, Krzysztof Kozlowski, Rob Herring,
Thomas Zimmermann, Alyssa Rosenzweig, Janne Grunau,
linux-arm-kernel, dri-devel, devicetree, linux-kernel
On 11.06.25 21:06, Sasha Finkelstein wrote:
> On Wed, 11 Jun 2025 at 20:44, Sven Peter <sven@kernel.org> wrote:
>>> + - description: Driver-opaque calibration blob
>>> + - description: Calibration blob
>>
>> Like Alyssa mentioned, this description also raises more questions than
>> it answers for me. Do we know what these two blobs contain or why they
>> are two separate blobs?
>
> At some point in the gpu initialization process we give the firmware a bag
> of pointers to various stuff it needs. HwCalA and HwCalB are separate
> pointers, and they use separate gpu allocations. We do not fully know
> what is in there, but we know what some of the fields do and how to
> create the blobs based on data from apple device tree.
I looked at the driver itself and there are two comments related to
these:
HwDataA: This mostly contains power-related configuration.
HwDataB: This mostly contains GPU-related configuration.
Are they still accurate our just outdated leftovers from an early
version? If they're accurate I'd include them in the description here as
well.
Best,
Sven
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/2] dt-bindings: Add Apple SoC GPU
2025-06-11 18:46 ` Rob Herring
@ 2025-06-11 19:18 ` Alyssa Rosenzweig
0 siblings, 0 replies; 15+ messages in thread
From: Alyssa Rosenzweig @ 2025-06-11 19:18 UTC (permalink / raw)
To: Rob Herring
Cc: fnkl.kernel, Sven Peter, Janne Grunau, Neal Gompa, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Krzysztof Kozlowski, Conor Dooley, asahi,
linux-arm-kernel, dri-devel, devicetree, linux-kernel
> > + - apple,agx-g13s
> > + - apple,agx-g13c
> > + - apple,agx-g13d
> > + - const: apple,agx-g13x
>
> I'm assuming the 'x' is a wildcard. The preferred thing to do make one
> of the 3 actual devices the fallback. Typically, the oldest one is
> used.
Yeah, it's something of a family. G13X is an apple codename for these
three chips.
We can do `apple,agx-g13d, apple,agx-g13s` as the compatible list and
omit the g13x compatible. I'm not sure if that's actually better since
we'd continue to use the G13X naming in the driver itself but it's a
minor point either way.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
2025-06-11 17:32 ` [PATCH 2/2] arm64: dts: " Sasha Finkelstein via B4 Relay
2025-06-11 17:53 ` Alyssa Rosenzweig
2025-06-11 19:12 ` Sven Peter
@ 2025-06-11 19:59 ` Janne Grunau
2 siblings, 0 replies; 15+ messages in thread
From: Janne Grunau @ 2025-06-11 19:59 UTC (permalink / raw)
To: fnkl.kernel
Cc: Sven Peter, Alyssa Rosenzweig, Neal Gompa, David Airlie,
Simona Vetter, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
asahi, linux-arm-kernel, dri-devel, devicetree, linux-kernel
On Wed, Jun 11, 2025 at 07:32:17PM +0200, Sasha Finkelstein via B4 Relay wrote:
> From: Sasha Finkelstein <fnkl.kernel@gmail.com>
>
> Add device tree entries for GPUs in M-series SoCs
>
> Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
> ---
> arch/arm64/boot/dts/apple/t6000.dtsi | 4 ++++
> arch/arm64/boot/dts/apple/t6001.dtsi | 4 ++++
> arch/arm64/boot/dts/apple/t6002.dtsi | 4 ++++
> arch/arm64/boot/dts/apple/t600x-common.dtsi | 34 ++++++++++++++++++++++++++++++++++
> arch/arm64/boot/dts/apple/t600x-die0.dtsi | 28 ++++++++++++++++++++++++++++
> arch/arm64/boot/dts/apple/t8103.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> arch/arm64/boot/dts/apple/t8112.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 7 files changed, 198 insertions(+)
...
> diff --git a/arch/arm64/boot/dts/apple/t600x-common.dtsi b/arch/arm64/boot/dts/apple/t600x-common.dtsi
> index 87dfc13d74171f62bf3087401918d9d41eaac560..329bd084b63e3688547166a8d0c3d9ace5d6d937 100644
> --- a/arch/arm64/boot/dts/apple/t600x-common.dtsi
> +++ b/arch/arm64/boot/dts/apple/t600x-common.dtsi
> @@ -11,6 +11,10 @@ / {
> #address-cells = <2>;
> #size-cells = <2>;
>
> + aliases {
> + gpu = &gpu;
> + };
> +
> cpus {
> #address-cells = <2>;
> #size-cells = <0>;
> @@ -378,4 +382,34 @@ nco_clkref: clock-ref-nco {
> #clock-cells = <0>;
> clock-output-names = "nco_ref";
> };
> +
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + gpu_globals: globals {
> + reg = <0x0 0 0 0>;
all memory-regions with invalid address should be disabled. iirc the
kernel and/or u-boot will try to map those which does not end well.
Janne
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/2] arm64: dts: Add Apple SoC GPU
2025-06-11 19:12 ` Sven Peter
@ 2025-06-11 20:10 ` Janne Grunau
0 siblings, 0 replies; 15+ messages in thread
From: Janne Grunau @ 2025-06-11 20:10 UTC (permalink / raw)
To: Sven Peter
Cc: fnkl.kernel, asahi, Maarten Lankhorst, Neal Gompa,
Alyssa Rosenzweig, linux-arm-kernel, Conor Dooley, Rob Herring,
Maxime Ripard, dri-devel, Simona Vetter, David Airlie, devicetree,
linux-kernel, Thomas Zimmermann, Krzysztof Kozlowski
On Wed, Jun 11, 2025 at 09:12:35PM +0200, Sven Peter wrote:
> Hi,
>
> On 11.06.25 19:32, Sasha Finkelstein via B4 Relay wrote:
> > From: Sasha Finkelstein <fnkl.kernel@gmail.com>
> >
> > Add device tree entries for GPUs in M-series SoCs
> >
> > Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
> > ---
> > arch/arm64/boot/dts/apple/t6000.dtsi | 4 ++++
> > arch/arm64/boot/dts/apple/t6001.dtsi | 4 ++++
> > arch/arm64/boot/dts/apple/t6002.dtsi | 4 ++++
> > arch/arm64/boot/dts/apple/t600x-common.dtsi | 34 ++++++++++++++++++++++++++++++++++
> > arch/arm64/boot/dts/apple/t600x-die0.dtsi | 28 ++++++++++++++++++++++++++++
> > arch/arm64/boot/dts/apple/t8103.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> > arch/arm64/boot/dts/apple/t8112.dtsi | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> > 7 files changed, 198 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/apple/t6000.dtsi b/arch/arm64/boot/dts/apple/t6000.dtsi
> > index 89c3b211b116e96ee0a5ea0c923c3ab824008307..3b60842045d4c3277e9530a13ef2811774209697 100644
> > --- a/arch/arm64/boot/dts/apple/t6000.dtsi
> > +++ b/arch/arm64/boot/dts/apple/t6000.dtsi
> > @@ -16,3 +16,7 @@ / {
> > };
> >
>
> [....]
>
> > };
> > +
> > + reserved-memory {
> > + #address-cells = <2>;
> > + #size-cells = <2>;
> > + ranges;
> > +
> > + gpu_globals: globals {
> > + reg = <0x0 0 0 0>;
> > + };
> > +
> > + gpu_hw_cal_a: hw-cal-a {
> > + reg = <0x0 0 0 0>;
> > + };
> > +
> > + gpu_hw_cal_b: hw-cal-b {
> > + reg = <0x0 0 0 0>;
> > + };
> > +
> > + uat_handoff: uat-handoff {
> > + reg = <0x0 0 0 0>;
> > + };
> > +
> > + uat_pagetables: uat-pagetables {
> > + reg = <0x0 0 0 0>;
> > + };
> > +
> > + uat_ttbs: uat-ttbs {
> > + reg = <0x0 0 0 0>;
> > + };
>
> With W=1 this results in a bunch of new warnings like
>
> arch/arm64/boot/dts/apple/t600x-common.dtsi:391.24-394.5: Warning
> (unit_address_vs_reg): /reserved-memory/globals: node has a reg or
> ranges property, but no unit name
>
> but I'm not sure it's possible to fix that without making up fake
> addresses that then get overwritten here. Would be nice to fix this some
> other way but I'm not sure how and so far we don't enforce "no
> additional W=1 warnings", so:
warnings go away if the "uninitialized" reg property is removed. Since
it will be filled by the bootloader fills those anyway we could use:
| gpu_globals: globals {
| /* bootloader static allocation */
| status = "disabled";
| }
Janne
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-06-11 20:10 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-11 17:32 [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Sasha Finkelstein via B4 Relay
2025-06-11 17:32 ` [PATCH 1/2] dt-bindings: Add Apple SoC GPU Sasha Finkelstein via B4 Relay
2025-06-11 17:52 ` Alyssa Rosenzweig
2025-06-11 18:44 ` Sven Peter
2025-06-11 19:06 ` Sasha Finkelstein
2025-06-11 19:17 ` Sven Peter
2025-06-11 18:46 ` Rob Herring
2025-06-11 19:18 ` Alyssa Rosenzweig
2025-06-11 17:32 ` [PATCH 2/2] arm64: dts: " Sasha Finkelstein via B4 Relay
2025-06-11 17:53 ` Alyssa Rosenzweig
2025-06-11 19:12 ` Sven Peter
2025-06-11 20:10 ` Janne Grunau
2025-06-11 19:59 ` Janne Grunau
2025-06-11 17:42 ` [PATCH 0/2] Bindings and DTS for Apple SoC GPUs Alyssa Rosenzweig
2025-06-11 17:48 ` Sasha Finkelstein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).