* [PATCH v3 0/2] Exynos850 GPU support
@ 2026-09-05 17:09 Thomas Turner
2026-09-05 17:09 ` [PATCH v3 1/2] dt-bindings: gpu: arm,mali-bifrost: add exynos850-mali compatible Thomas Turner
2026-09-05 17:09 ` [PATCH v3 2/2] arm64: dts: exynos: Add GPU/Mali Bifrost node to Exynos850 Thomas Turner
0 siblings, 2 replies; 5+ messages in thread
From: Thomas Turner @ 2026-09-05 17:09 UTC (permalink / raw)
To: semen.protsenko, robh, krzk+dt, conor+dt, peter.griffin
Cc: alim.akhtar, linux-arm-kernel, linux-samsung-soc, devicetree,
linux-kernel, thomas_turner
This patch series documents and provides basic GPU support for the
Exynos850 SoC, making use of the Mali G52 GPU through the panfrost
driver. Only basic support is provided here and as such lots of features
are missing. This series only adds the GPU node for the Exynos850 SoC
dtsi, but keeps it disabled, so it stays disabled currently on E850-96
board (The only user of the Exynos850 SoC dtsi upstream).
Thomas Turner (2):
dt-bindings: gpu: arm,mali-bifrost: add exynos850-mali compatible
arm64: dts: exynos: Add GPU/Mali Bifrost node to Exynos850
.../devicetree/bindings/gpu/arm,mali-bifrost.yaml | 1 +
arch/arm64/boot/dts/exynos/exynos850.dtsi | 13 +++++++++++++
2 files changed, 14 insertions(+)
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/2] dt-bindings: gpu: arm,mali-bifrost: add exynos850-mali compatible
2026-09-05 17:09 [PATCH v3 0/2] Exynos850 GPU support Thomas Turner
@ 2026-09-05 17:09 ` Thomas Turner
2026-09-05 17:09 ` [PATCH v3 2/2] arm64: dts: exynos: Add GPU/Mali Bifrost node to Exynos850 Thomas Turner
1 sibling, 0 replies; 5+ messages in thread
From: Thomas Turner @ 2026-09-05 17:09 UTC (permalink / raw)
To: semen.protsenko, robh, krzk+dt, conor+dt, peter.griffin
Cc: alim.akhtar, linux-arm-kernel, linux-samsung-soc, devicetree,
linux-kernel, thomas_turner
Exynos850 SoC uses the ARM Mali G52 GPU, document its compatible
string with the appropriate fallback.
Signed-off-by: Thomas Turner <tturner@lineageos.org>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
---
Changes in v3:
- Add Acked-by tag
Changes in v2:
- Introduce this patch
Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index 9db9f84ad964..ece2b637cd41 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -34,6 +34,7 @@ properties:
- rockchip,rk3562-mali
- rockchip,rk3568-mali
- rockchip,rk3576-mali
+ - samsung,exynos850-mali
- const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully discoverable
- items:
- enum:
--
2.47.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] arm64: dts: exynos: Add GPU/Mali Bifrost node to Exynos850
2026-09-05 17:09 [PATCH v3 0/2] Exynos850 GPU support Thomas Turner
2026-09-05 17:09 ` [PATCH v3 1/2] dt-bindings: gpu: arm,mali-bifrost: add exynos850-mali compatible Thomas Turner
@ 2026-09-05 17:09 ` Thomas Turner
2026-09-07 0:28 ` Alexey Klimov
1 sibling, 1 reply; 5+ messages in thread
From: Thomas Turner @ 2026-09-05 17:09 UTC (permalink / raw)
To: semen.protsenko, robh, krzk+dt, conor+dt, peter.griffin
Cc: alim.akhtar, linux-arm-kernel, linux-samsung-soc, devicetree,
linux-kernel, thomas_turner
Add nodes for GPU (Mali Bifrost) to Exynos850. Does not provide support
for temperature throttling, DVFS, power domains, governor support,
boosting and voltage control. Once PMIC is properly implemented, support
will hopefully increase. However, the panfrost driver probes, the
Mali-G52 GPU initializes and the core clock is set-up.
Testing for this patch was done on a device not currently supported by
linux, the Galaxy A21s. After enabling this node for that device
locally, I was able to test and confirm basic GPU functionality. As of
now, this patch has no users which have tested GPU capabilities and so
the node has been set to "disabled".
Here are some logs I pulled:
panfrost 11500000.gpu: clock rate = 377000000
panfrost 11500000.gpu: mali-g52 id 0x7212 major 0x0 minor 0x0 status 0x0
panfrost 11500000.gpu: features: 00000000,00000df7, issues: 00000000,00000400
panfrost 11500000.gpu: Features: L2:0x07100206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7
panfrost 11500000.gpu: shader_present=0x1 l2_present=0x1
panfrost 11500000.gpu: [drm] Using Transparent Hugepage
[drm] Initialized panfrost 1.6.0 for 11500000.gpu on minor 0
OpenGL core profile vendor: Mesa
OpenGL core profile renderer: Mali-G52 MC1 (Panfrost)
OpenGL core profile version: 3.1 (Core Profile) Mesa 26.1.6
OpenGL core profile shading language version: 1.40
OpenGL compatibility profile vendor: Mesa
OpenGL compatibility profile renderer: Mali-G52 MC1 (Panfrost)
OpenGL compatibility profile version: 3.1 (Core Profile) Mesa 26.1.6
OpenGL compatibility profile shading language version: 1.40
OpenGL ES profile vendor: Mesa
OpenGL ES profile renderer: Mali-G52 MC1 (Panfrost)
OpenGL ES profile version: OpenGL ES 3.1 Mesa 26.1.6
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.10
Signed-off-by: Thomas Turner <tturner@lineageos.org>
---
Changes in v3:
- Re-word commit message to be less ambiguous
- Provide some logs in the commit message
- Add a blank line before status property
Changes in v2:
- Add a patch addressing the samsung,exynos850-mali compatible string
arch/arm64/boot/dts/exynos/exynos850.dtsi | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/arch/arm64/boot/dts/exynos/exynos850.dtsi b/arch/arm64/boot/dts/exynos/exynos850.dtsi
index 911643008b9f..721b2b2c4ffb 100644
--- a/arch/arm64/boot/dts/exynos/exynos850.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos850.dtsi
@@ -310,6 +310,19 @@ cmu_g3d: clock-controller@11400000 {
clock-names = "oscclk", "dout_g3d_switch";
};
+ gpu: gpu@11500000 {
+ compatible = "samsung,exynos850-mali", "arm,mali-bifrost";
+ reg = <0x11500000 0x5000>;
+ interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "job", "mmu", "gpu";
+ clocks = <&cmu_g3d CLK_GOUT_G3D_GPU_CLK>;
+ clock-names = "core";
+
+ status = "disabled";
+ };
+
cmu_apm: clock-controller@11800000 {
compatible = "samsung,exynos850-cmu-apm";
reg = <0x11800000 0x8000>;
--
2.47.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: exynos: Add GPU/Mali Bifrost node to Exynos850
2026-09-05 17:09 ` [PATCH v3 2/2] arm64: dts: exynos: Add GPU/Mali Bifrost node to Exynos850 Thomas Turner
@ 2026-09-07 0:28 ` Alexey Klimov
2026-09-07 17:47 ` Thomas Turner
0 siblings, 1 reply; 5+ messages in thread
From: Alexey Klimov @ 2026-09-07 0:28 UTC (permalink / raw)
To: Thomas Turner, semen.protsenko, robh, krzk+dt, conor+dt,
peter.griffin
Cc: alim.akhtar, linux-arm-kernel, linux-samsung-soc, devicetree,
linux-kernel, thomas_turner
On Sat Sep 5, 2026 at 6:09 PM BST, Thomas Turner wrote:
> Add nodes for GPU (Mali Bifrost) to Exynos850. Does not provide support
> for temperature throttling, DVFS, power domains, governor support,
One of the sensors exposed via ACPM is "linked" to the GPU/G3D as far as
I know. The driver part was sent already and three sensors work there
(two cpu clusters and GPU).
I've never tested yet the DVFS of G3D via ACPM. Maybe it is worth a try
on A21s. But it should work the same way as clusters clocks.
> boosting and voltage control. Once PMIC is properly implemented, support
> will hopefully increase. However, the panfrost driver probes, the
> Mali-G52 GPU initializes and the core clock is set-up.
>
> Testing for this patch was done on a device not currently supported by
> linux, the Galaxy A21s. After enabling this node for that device
> locally, I was able to test and confirm basic GPU functionality. As of
> now, this patch has no users which have tested GPU capabilities and so
> the node has been set to "disabled".
>
> Here are some logs I pulled:
>
> panfrost 11500000.gpu: clock rate = 377000000
> panfrost 11500000.gpu: mali-g52 id 0x7212 major 0x0 minor 0x0 status 0x0
> panfrost 11500000.gpu: features: 00000000,00000df7, issues: 00000000,00000400
> panfrost 11500000.gpu: Features: L2:0x07100206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7
> panfrost 11500000.gpu: shader_present=0x1 l2_present=0x1
> panfrost 11500000.gpu: [drm] Using Transparent Hugepage
> [drm] Initialized panfrost 1.6.0 for 11500000.gpu on minor 0
>
> OpenGL core profile vendor: Mesa
> OpenGL core profile renderer: Mali-G52 MC1 (Panfrost)
> OpenGL core profile version: 3.1 (Core Profile) Mesa 26.1.6
> OpenGL core profile shading language version: 1.40
> OpenGL compatibility profile vendor: Mesa
> OpenGL compatibility profile renderer: Mali-G52 MC1 (Panfrost)
> OpenGL compatibility profile version: 3.1 (Core Profile) Mesa 26.1.6
> OpenGL compatibility profile shading language version: 1.40
> OpenGL ES profile vendor: Mesa
> OpenGL ES profile renderer: Mali-G52 MC1 (Panfrost)
> OpenGL ES profile version: OpenGL ES 3.1 Mesa 26.1.6
> OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.10
>
> Signed-off-by: Thomas Turner <tturner@lineageos.org>
So, I've got A21s and installed pmOS to test all that.
My logs are slightly different but graphics is definitely alive:
[ 0.200787] [drm] Initialized simpledrm 1.0.0 for fa000000.framebuffer on minor 0
[ 0.215130] Console: switching to colour frame buffer device 90x100
[ 0.225540] simple-framebuffer fa000000.framebuffer: [drm] fb0: simpledrmdrmfb frame buffer device
[ 0.226134] panfrost 11500000.gpu: clock rate = 377000000
[ 0.230960] panfrost 11500000.gpu: mali-g52 id 0x7212 major 0x0 minor 0x0 status 0x0
[ 0.230981] panfrost 11500000.gpu: features: 00000000,00000df7, issues: 00000000,00000400
[ 0.230991] panfrost 11500000.gpu: Features: L2:0x07100206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7
[ 0.231002] panfrost 11500000.gpu: shader_present=0x1 l2_present=0x1
[ 0.232329] panfrost 11500000.gpu: [drm] Using Transparent Hugepage
[ 0.232726] [drm] Initialized panfrost 1.6.0 for 11500000.gpu on minor 1
Also, when this is applied with status="okay" on Winlink board then
panfrost itself seems to be alive and drm initialises despite missing
regulator as indicated in my other email in v2 of this series, hence:
Reviewed-and-tested-by: Alexey Klimov <alexey.klimov@linaro.org>
Thanks for working on this.
Best regareds,
Alexey
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: exynos: Add GPU/Mali Bifrost node to Exynos850
2026-09-07 0:28 ` Alexey Klimov
@ 2026-09-07 17:47 ` Thomas Turner
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Turner @ 2026-09-07 17:47 UTC (permalink / raw)
To: Alexey Klimov, semen.protsenko, robh, krzk+dt, conor+dt,
peter.griffin
Cc: alim.akhtar, linux-arm-kernel, linux-samsung-soc, devicetree,
linux-kernel, thomas_turner
Hi Alexey,
On 07/09/2026 01:28, Alexey Klimov wrote:
> On Sat Sep 5, 2026 at 6:09 PM BST, Thomas Turner wrote:
>> Add nodes for GPU (Mali Bifrost) to Exynos850. Does not provide support
>> for temperature throttling, DVFS, power domains, governor support,
>
> One of the sensors exposed via ACPM is "linked" to the GPU/G3D as far as
> I know. The driver part was sent already and three sensors work there
> (two cpu clusters and GPU).
>
> I've never tested yet the DVFS of G3D via ACPM. Maybe it is worth a try
> on A21s. But it should work the same way as clusters clocks.
>
I have had a little look at your ACPM stuff currently staged, looks like
some really good work, would be cool to see if we could get dvfs working
via acpm at some point :D.
>> boosting and voltage control. Once PMIC is properly implemented, support
>> will hopefully increase. However, the panfrost driver probes, the
>> Mali-G52 GPU initializes and the core clock is set-up.
>>
>> Testing for this patch was done on a device not currently supported by
>> linux, the Galaxy A21s. After enabling this node for that device
>> locally, I was able to test and confirm basic GPU functionality. As of
>> now, this patch has no users which have tested GPU capabilities and so
>> the node has been set to "disabled".
>>
>> Here are some logs I pulled:
>>
>> panfrost 11500000.gpu: clock rate = 377000000
>> panfrost 11500000.gpu: mali-g52 id 0x7212 major 0x0 minor 0x0 status 0x0
>> panfrost 11500000.gpu: features: 00000000,00000df7, issues: 00000000,00000400
>> panfrost 11500000.gpu: Features: L2:0x07100206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7
>> panfrost 11500000.gpu: shader_present=0x1 l2_present=0x1
>> panfrost 11500000.gpu: [drm] Using Transparent Hugepage
>> [drm] Initialized panfrost 1.6.0 for 11500000.gpu on minor 0
>>
>> OpenGL core profile vendor: Mesa
>> OpenGL core profile renderer: Mali-G52 MC1 (Panfrost)
>> OpenGL core profile version: 3.1 (Core Profile) Mesa 26.1.6
>> OpenGL core profile shading language version: 1.40
>> OpenGL compatibility profile vendor: Mesa
>> OpenGL compatibility profile renderer: Mali-G52 MC1 (Panfrost)
>> OpenGL compatibility profile version: 3.1 (Core Profile) Mesa 26.1.6
>> OpenGL compatibility profile shading language version: 1.40
>> OpenGL ES profile vendor: Mesa
>> OpenGL ES profile renderer: Mali-G52 MC1 (Panfrost)
>> OpenGL ES profile version: OpenGL ES 3.1 Mesa 26.1.6
>> OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.10
>>
>> Signed-off-by: Thomas Turner <tturner@lineageos.org>
>
> So, I've got A21s and installed pmOS to test all that.
> My logs are slightly different but graphics is definitely alive:
> [ 0.200787] [drm] Initialized simpledrm 1.0.0 for fa000000.framebuffer on minor 0
> [ 0.215130] Console: switching to colour frame buffer device 90x100
> [ 0.225540] simple-framebuffer fa000000.framebuffer: [drm] fb0: simpledrmdrmfb frame buffer device
> [ 0.226134] panfrost 11500000.gpu: clock rate = 377000000
> [ 0.230960] panfrost 11500000.gpu: mali-g52 id 0x7212 major 0x0 minor 0x0 status 0x0
> [ 0.230981] panfrost 11500000.gpu: features: 00000000,00000df7, issues: 00000000,00000400
> [ 0.230991] panfrost 11500000.gpu: Features: L2:0x07100206 Shader:0x00000000 Tiler:0x00000809 Mem:0x1 MMU:0x00002830 AS:0xff JS:0x7
> [ 0.231002] panfrost 11500000.gpu: shader_present=0x1 l2_present=0x1
> [ 0.232329] panfrost 11500000.gpu: [drm] Using Transparent Hugepage
> [ 0.232726] [drm] Initialized panfrost 1.6.0 for 11500000.gpu on minor 1
>
> Also, when this is applied with status="okay" on Winlink board then
> panfrost itself seems to be alive and drm initialises despite missing
> regulator as indicated in my other email in v2 of this series, hence:
Alright cool, just for the records we have tested this series on the
A21s both with and without proper regulators and GPU seems to work fine
with dummy regs.
> Reviewed-and-tested-by: Alexey Klimov <alexey.klimov@linaro.org>
>
Cheers, will give this version a few days to stew then I will add this
onto v4.
> Thanks for working on this.
> Best regareds,
> Alexey
I really appreciate all of the testing and insight you have provided in
the last few messages, now that we have Samsung E850s booting I hope to
expand support across the whole SoC :D.
Cheers,
Tom
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-07 17:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-05 17:09 [PATCH v3 0/2] Exynos850 GPU support Thomas Turner
2026-09-05 17:09 ` [PATCH v3 1/2] dt-bindings: gpu: arm,mali-bifrost: add exynos850-mali compatible Thomas Turner
2026-09-05 17:09 ` [PATCH v3 2/2] arm64: dts: exynos: Add GPU/Mali Bifrost node to Exynos850 Thomas Turner
2026-09-07 0:28 ` Alexey Klimov
2026-09-07 17:47 ` Thomas Turner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox