* [PATCH RFC 0/2] riscv: dts: spacemit: Enable PowerVR GPU on OrangePi RV2
@ 2026-10-15 18:56 Iker Pedrosa
2026-10-15 18:56 ` [PATCH RFC 1/2] riscv: dts: spacemit: k1: add PowerVR GPU device node Iker Pedrosa
2026-10-15 18:56 ` [PATCH RFC 2/2] riscv: dts: spacemit: k1-orangepi-rv2: enable GPU Iker Pedrosa
0 siblings, 2 replies; 3+ messages in thread
From: Iker Pedrosa @ 2026-10-15 18:56 UTC (permalink / raw)
To: Alessio Belle, Luigi Santivetti, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: imagination, dri-devel, devicetree, linux-kernel, linux-riscv,
spacemit, Iker Pedrosa
Enable the Imagination PowerVR Rogue GPU (BXE-2-32) on the SpacemiT K1
SoC for the OrangePi RV2 board.
This series depends on:
- Yixun Lan's power domain series [1], which provides the genpd-based
GPU power domain driver required for proper power sequencing.
- Baihui Liang's dt-bindings patch [2], which adds the spacemit,k1-gpu
compatible string to the img,powervr-rogue binding.
The GPU firmware is not yet available upstream. A copy can be found
at [3].
With this series applied on top of [1] and [2], the full GPU bring-up
path works end-to-end on hardware:
- Power domain: GPU power island on/off via APMU
- Clock: GPU clock enabled/gated through CCU
- Reset: GPU reset line deasserted
- Firmware: PowerVR RISC-V firmware loads and signals ready
- DMA: dma-ranges correctly maps CPU-to-GPU physical addresses
- DRM: kernel exposes /dev/dri/card0 and /dev/dri/renderD128
- IRQ: GPU interrupt registered, firmware watchdog running
Userspace rendering requires Mesa's PowerVR Vulkan driver
(imagination-experimental).
[1] https://lore.kernel.org/linux-riscv/20261008-04-k3-pm-support-v2-0-6f778a53dd2d@kernel.org/
[2] https://lore.kernel.org/linux-riscv/20261015-spacemit-gpu-binding-v1-1-a7a23c7e7788@linux.spacemit.com/
[2] https://gitlab.freedesktop.org/imagination/linux-firmware/-/blob/powervr/powervr/rogue_36.29.52.182_v1.fw
Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
---
Iker Pedrosa (2):
riscv: dts: spacemit: k1: add PowerVR GPU device node
riscv: dts: spacemit: k1-orangepi-rv2: enable GPU
arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts | 4 ++++
arch/riscv/boot/dts/spacemit/k1.dtsi | 12 ++++++++++++
2 files changed, 16 insertions(+)
---
base-commit: 7e986b457d43edf8dd3eb3f6c34e55e92cd545f3
change-id: 20260413-orangepi-gpu-02d839d6506f
Best regards,
--
Iker Pedrosa <ikerpedrosam@gmail.com>
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH RFC 1/2] riscv: dts: spacemit: k1: add PowerVR GPU device node
2026-10-15 18:56 [PATCH RFC 0/2] riscv: dts: spacemit: Enable PowerVR GPU on OrangePi RV2 Iker Pedrosa
@ 2026-10-15 18:56 ` Iker Pedrosa
2026-10-15 18:56 ` [PATCH RFC 2/2] riscv: dts: spacemit: k1-orangepi-rv2: enable GPU Iker Pedrosa
1 sibling, 0 replies; 3+ messages in thread
From: Iker Pedrosa @ 2026-10-15 18:56 UTC (permalink / raw)
To: Alessio Belle, Luigi Santivetti, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: imagination, dri-devel, devicetree, linux-kernel, linux-riscv,
spacemit, Iker Pedrosa
Add device tree node for the Imagination Technologies PowerVR Rogue GPU
(BVNC 36.29.52.182 / BXE-2-32) found in the Spacemit K1 SoC.
The GPU is located at address 0xcac00000 and uses:
- CLK_GPU for core clock from APMU controller
- RESET_GPU for reset control from APMU controller
- K1_PMDOMAIN_GPU for power management from syscon_apmu provider
- IRQ 75 for interrupt handling
Disabled by default; boards enable it individually.
Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
---
arch/riscv/boot/dts/spacemit/k1.dtsi | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spacemit/k1.dtsi
index 3fabfd34114b..82cade2f76fe 100644
--- a/arch/riscv/boot/dts/spacemit/k1.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k1.dtsi
@@ -5,6 +5,7 @@
#include <dt-bindings/clock/spacemit,k1-syscon.h>
#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/power/spacemit,k1-power.h>
#include "k1-pdma.h"
@@ -1119,6 +1120,17 @@ multimedia-bus {
#size-cells = <2>;
dma-ranges = <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>,
<0x0 0x80000000 0x1 0x00000000 0x3 0x80000000>;
+
+ gpu: gpu@cac00000 {
+ compatible = "spacemit,k1-gpu", "img,img-bxe-2-32", "img,img-rogue";
+ reg = <0x0 0xcac00000 0x0 0x80000>;
+ interrupts = <75>;
+ clocks = <&syscon_apmu CLK_GPU>;
+ clock-names = "core";
+ resets = <&syscon_apmu RESET_GPU>;
+ power-domains = <&syscon_apmu K1_PMDOMAIN_GPU>;
+ status = "disabled";
+ };
};
network-bus {
--
2.56.0
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH RFC 2/2] riscv: dts: spacemit: k1-orangepi-rv2: enable GPU
2026-10-15 18:56 [PATCH RFC 0/2] riscv: dts: spacemit: Enable PowerVR GPU on OrangePi RV2 Iker Pedrosa
2026-10-15 18:56 ` [PATCH RFC 1/2] riscv: dts: spacemit: k1: add PowerVR GPU device node Iker Pedrosa
@ 2026-10-15 18:56 ` Iker Pedrosa
1 sibling, 0 replies; 3+ messages in thread
From: Iker Pedrosa @ 2026-10-15 18:56 UTC (permalink / raw)
To: Alessio Belle, Luigi Santivetti, Maarten Lankhorst,
Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: imagination, dri-devel, devicetree, linux-kernel, linux-riscv,
spacemit, Iker Pedrosa
Enable the PowerVR Rogue GPU on the OrangePi RV2 board by setting the
GPU device node status to "okay".
The GPU will use the clock, reset, and power management resources
defined in the k1.dtsi SoC device tree.
Signed-off-by: Iker Pedrosa <ikerpedrosam@gmail.com>
---
arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts b/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
index b907a1396b21..cc375dd1a77d 100644
--- a/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
@@ -384,3 +384,7 @@ &sdhci0 {
sd-uhs-sdr104;
status = "okay";
};
+
+&gpu {
+ status = "okay";
+};
--
2.56.0
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-15 18:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-15 18:56 [PATCH RFC 0/2] riscv: dts: spacemit: Enable PowerVR GPU on OrangePi RV2 Iker Pedrosa
2026-10-15 18:56 ` [PATCH RFC 1/2] riscv: dts: spacemit: k1: add PowerVR GPU device node Iker Pedrosa
2026-10-15 18:56 ` [PATCH RFC 2/2] riscv: dts: spacemit: k1-orangepi-rv2: enable GPU Iker Pedrosa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®