* [PATCH v2 0/2] Imagination BXS-4-64 MC1 GPU support (DTS changes)
@ 2025-04-17 9:10 Matt Coster
2025-04-17 9:10 ` [PATCH v2 1/2] arm64: dts: ti: k3-am62: New GPU binding details Matt Coster
2025-04-17 9:10 ` [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node Matt Coster
0 siblings, 2 replies; 8+ messages in thread
From: Matt Coster @ 2025-04-17 9:10 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Frank Binns,
Alessio Belle, Alexandru Dadu, Luigi Santivetti, Randolph Sapp,
Darren Etheridge, Matt Coster
Now that the binding and driver changes to support the Imagination
BXS-4-64 [1] have landed in a DRM tree, here are the corresponding DTS
changes without the [DO NOT MERGE] tag.
This GPU is found in the TI AM68 family of SoCs, with initial support
added to the k3-j721s2 devicetree and tested on a TI SK-AM68 board.
[1]: https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-0-eda620c5865f@imgtec.com
Reviewed-by: Randolph Sapp <rs@ti.com>
Signed-off-by: Matt Coster <matt.coster@imgtec.com>
---
Changes in v2:
- Add details of the source of the interrupt index
- Add Randolph's Rb
- Link to v1: https://lore.kernel.org/r/20250415-bxs-4-64-dts-v1-0-f7d3fa06625d@imgtec.com
---
Matt Coster (2):
arm64: dts: ti: k3-am62: New GPU binding details
arm64: dts: ti: k3-j721s2: Add GPU node
arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 4 +++-
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 12 ++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
---
base-commit: d6fe216caf15d196e1bf76591440f8f17d58e7ee
change-id: 20250415-bxs-4-64-dts-c984d0876556
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH v2 1/2] arm64: dts: ti: k3-am62: New GPU binding details 2025-04-17 9:10 [PATCH v2 0/2] Imagination BXS-4-64 MC1 GPU support (DTS changes) Matt Coster @ 2025-04-17 9:10 ` Matt Coster 2025-04-17 9:10 ` [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node Matt Coster 1 sibling, 0 replies; 8+ messages in thread From: Matt Coster @ 2025-04-17 9:10 UTC (permalink / raw) To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-arm-kernel, devicetree, linux-kernel, Frank Binns, Alessio Belle, Alexandru Dadu, Luigi Santivetti, Randolph Sapp, Darren Etheridge, Matt Coster Use the new compatible string and power domain name as introduced in commit 2c01d9099859 ("dt-bindings: gpu: img: Future-proofing enhancements")[1]. [1]: https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-1-eda620c5865f@imgtec.com Reviewed-by: Randolph Sapp <rs@ti.com> Signed-off-by: Matt Coster <matt.coster@imgtec.com> --- Changes in v2: - Add Randolph's Rb - Link to v1: https://lore.kernel.org/r/20250415-bxs-4-64-dts-v1-1-f7d3fa06625d@imgtec.com This patch was previously sent as [DO NOT MERGE]: https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-17-eda620c5865f@imgtec.com --- arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi index 7d355aa73ea2116723735f70b9351cefcd8bc118..d17b25cae196b08d24adbe7c913ccaba7eed37eb 100644 --- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi @@ -691,12 +691,14 @@ ospi0: spi@fc40000 { }; gpu: gpu@fd00000 { - compatible = "ti,am62-gpu", "img,img-axe"; + compatible = "ti,am62-gpu", "img,img-axe-1-16m", "img,img-axe", + "img,img-rogue"; reg = <0x00 0x0fd00000 0x00 0x20000>; clocks = <&k3_clks 187 0>; clock-names = "core"; interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; power-domains = <&k3_pds 187 TI_SCI_PD_EXCLUSIVE>; + power-domain-names = "a"; }; cpsw3g: ethernet@8000000 { -- 2.49.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node 2025-04-17 9:10 [PATCH v2 0/2] Imagination BXS-4-64 MC1 GPU support (DTS changes) Matt Coster 2025-04-17 9:10 ` [PATCH v2 1/2] arm64: dts: ti: k3-am62: New GPU binding details Matt Coster @ 2025-04-17 9:10 ` Matt Coster 2025-04-19 16:15 ` Kumar, Udit 1 sibling, 1 reply; 8+ messages in thread From: Matt Coster @ 2025-04-17 9:10 UTC (permalink / raw) To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-arm-kernel, devicetree, linux-kernel, Frank Binns, Alessio Belle, Alexandru Dadu, Luigi Santivetti, Randolph Sapp, Darren Etheridge, Matt Coster The J721S2 binding is based on the TI downstream binding in commit 54b0f2a00d92 ("arm64: dts: ti: k3-j721s2-main: add gpu node") from [1] but with updated compatible strings. The clock[2] and power[3] indices were verified from HTML docs, while the intterupt index comes from the TRM[4] (appendix "J721S2_Appendix_20241106_Public.xlsx", "Interrupts (inputs)", "GPU_BXS464_WRAP0_GPU_SS_0_OS_IRQ_OUT_0"). [1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel [2]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html [3]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/devices.html [4]: https://www.ti.com/lit/zip/spruj28 (revision E) Reviewed-by: Randolph Sapp <rs@ti.com> Signed-off-by: Matt Coster <matt.coster@imgtec.com> --- Changes in v2: - Add interrupt reference details - Add Randolph's Rb - Link to v1: https://lore.kernel.org/r/20250415-bxs-4-64-dts-v1-2-f7d3fa06625d@imgtec.com This patch was previously sent as [DO NOT MERGE]: https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-18-eda620c5865f@imgtec.com --- arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi index 92bf48fdbeba45ecca8c854db5f72fd3666239c5..a79ac41b2c1f51b7193e6133864428bd35a5e835 100644 --- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi @@ -2048,4 +2048,16 @@ watchdog8: watchdog@23f0000 { /* reserved for MAIN_R5F1_1 */ status = "reserved"; }; + + gpu: gpu@4e20000000 { + compatible = "ti,j721s2-gpu", "img,img-bxs-4-64", "img,img-rogue"; + reg = <0x4e 0x20000000 0x00 0x80000>; + clocks = <&k3_clks 130 1>; + clock-names = "core"; + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; + power-domains = <&k3_pds 130 TI_SCI_PD_EXCLUSIVE>, + <&k3_pds 373 TI_SCI_PD_EXCLUSIVE>; + power-domain-names = "a", "b"; + dma-coherent; + }; }; -- 2.49.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node 2025-04-17 9:10 ` [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node Matt Coster @ 2025-04-19 16:15 ` Kumar, Udit 2025-04-21 23:51 ` Randolph Sapp 0 siblings, 1 reply; 8+ messages in thread From: Kumar, Udit @ 2025-04-19 16:15 UTC (permalink / raw) To: Matt Coster, Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-arm-kernel, devicetree, linux-kernel, Frank Binns, Alessio Belle, Alexandru Dadu, Luigi Santivetti, Randolph Sapp, Darren Etheridge, u-kumar1 Hello Matt, On 4/17/2025 2:40 PM, Matt Coster wrote: > The J721S2 binding is based on the TI downstream binding in commit > 54b0f2a00d92 ("arm64: dts: ti: k3-j721s2-main: add gpu node") from [1] > but with updated compatible strings. Downstream kernel[1] sha 5657fc069e8b3 ("PENDING: arm64: dts: ti: k3-j721s2-main: add gpu node") also has assigned-clock-rates. Please check if gpu node needs assigned-rate too. > The clock[2] and power[3] indices were verified from HTML docs, while > the intterupt index comes from the TRM[4] (appendix > "J721S2_Appendix_20241106_Public.xlsx", "Interrupts (inputs)", > "GPU_BXS464_WRAP0_GPU_SS_0_OS_IRQ_OUT_0"). > [1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel > [2]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html > [3]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/devices.html > [4]: https://www.ti.com/lit/zip/spruj28 (revision E) > > Reviewed-by: Randolph Sapp <rs@ti.com> > Signed-off-by: Matt Coster <matt.coster@imgtec.com> > --- > Changes in v2: > - Add interrupt reference details > - Add Randolph's Rb > - Link to v1: https://lore.kernel.org/r/20250415-bxs-4-64-dts-v1-2-f7d3fa06625d@imgtec.com > > This patch was previously sent as [DO NOT MERGE]: > https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-18-eda620c5865f@imgtec.com > --- > arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi > index 92bf48fdbeba45ecca8c854db5f72fd3666239c5..a79ac41b2c1f51b7193e6133864428bd35a5e835 100644 > --- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi > @@ -2048,4 +2048,16 @@ watchdog8: watchdog@23f0000 { > /* reserved for MAIN_R5F1_1 */ > status = "reserved"; > }; > + > + gpu: gpu@4e20000000 { > + compatible = "ti,j721s2-gpu", "img,img-bxs-4-64", "img,img-rogue"; > + reg = <0x4e 0x20000000 0x00 0x80000>; > + clocks = <&k3_clks 130 1>; > + clock-names = "core"; > + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; > + power-domains = <&k3_pds 130 TI_SCI_PD_EXCLUSIVE>, > + <&k3_pds 373 TI_SCI_PD_EXCLUSIVE>; > + power-domain-names = "a", "b"; > + dma-coherent; > + }; > }; > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node 2025-04-19 16:15 ` Kumar, Udit @ 2025-04-21 23:51 ` Randolph Sapp 2025-04-22 12:04 ` Nishanth Menon 0 siblings, 1 reply; 8+ messages in thread From: Randolph Sapp @ 2025-04-21 23:51 UTC (permalink / raw) To: Kumar, Udit, Matt Coster, Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: linux-arm-kernel, devicetree, linux-kernel, Frank Binns, Alessio Belle, Alexandru Dadu, Luigi Santivetti, Darren Etheridge On Sat Apr 19, 2025 at 11:15 AM CDT, Udit Kumar wrote: > Hello Matt, > > On 4/17/2025 2:40 PM, Matt Coster wrote: >> The J721S2 binding is based on the TI downstream binding in commit >> 54b0f2a00d92 ("arm64: dts: ti: k3-j721s2-main: add gpu node") from [1] >> but with updated compatible strings. > > Downstream kernel[1] sha 5657fc069e8b3 ("PENDING: arm64: dts: ti: > k3-j721s2-main: add gpu node") > > also has assigned-clock-rates. > > Please check if gpu node needs assigned-rate too. If I remember correctly, J721S2 was one of the few platforms that actually defaulted to 800MHz, so it may not be necessary for that platform specifically. (I don't have a board to test this right now though. This very well may have changed.) AM62 also defaults to the correct value, and that one I did manage to verify. That being said, Udit is right, it's generally a good idea to explicitly set the clock speed for our devices. I know AM62P, for example, used to default our clock to the bus speed. At one point though this driver was experimenting with a DVFS mechanism. Matt, use of assigned-clocks shouldn't interfere with that assuming there is no defined opp-table, right? May be a good idea to set our usual 800 MHz for J721S2 and 500 MHz for AM625. This shouldn't require any binding related changes. On the topic of opp tables for the GPU, I did some testing on the proprietary driver a little while back. These devices do not support voltage scaling and simple frequency scaling saw a general decrease in performance and increase in power draw for the usual utilization bursts a single application running at 60 FPS generates. I have a feeling this will carry over to the open source driver, but we can always do additional testing if you are curious. - Randolph >> The clock[2] and power[3] indices were verified from HTML docs, while >> the intterupt index comes from the TRM[4] (appendix >> "J721S2_Appendix_20241106_Public.xlsx", "Interrupts (inputs)", >> "GPU_BXS464_WRAP0_GPU_SS_0_OS_IRQ_OUT_0"). > >> [1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel >> [2]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html >> [3]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/devices.html >> [4]: https://www.ti.com/lit/zip/spruj28 (revision E) >> >> Reviewed-by: Randolph Sapp <rs@ti.com> >> Signed-off-by: Matt Coster <matt.coster@imgtec.com> >> --- >> Changes in v2: >> - Add interrupt reference details >> - Add Randolph's Rb >> - Link to v1: https://lore.kernel.org/r/20250415-bxs-4-64-dts-v1-2-f7d3fa06625d@imgtec.com >> >> This patch was previously sent as [DO NOT MERGE]: >> https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-18-eda620c5865f@imgtec.com >> --- >> arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >> index 92bf48fdbeba45ecca8c854db5f72fd3666239c5..a79ac41b2c1f51b7193e6133864428bd35a5e835 100644 >> --- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >> +++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >> @@ -2048,4 +2048,16 @@ watchdog8: watchdog@23f0000 { >> /* reserved for MAIN_R5F1_1 */ >> status = "reserved"; >> }; >> + >> + gpu: gpu@4e20000000 { >> + compatible = "ti,j721s2-gpu", "img,img-bxs-4-64", "img,img-rogue"; >> + reg = <0x4e 0x20000000 0x00 0x80000>; >> + clocks = <&k3_clks 130 1>; >> + clock-names = "core"; >> + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; >> + power-domains = <&k3_pds 130 TI_SCI_PD_EXCLUSIVE>, >> + <&k3_pds 373 TI_SCI_PD_EXCLUSIVE>; >> + power-domain-names = "a", "b"; >> + dma-coherent; >> + }; >> }; >> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node 2025-04-21 23:51 ` Randolph Sapp @ 2025-04-22 12:04 ` Nishanth Menon 2025-04-22 16:22 ` Matt Coster 0 siblings, 1 reply; 8+ messages in thread From: Nishanth Menon @ 2025-04-22 12:04 UTC (permalink / raw) To: Randolph Sapp Cc: Kumar, Udit, Matt Coster, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree, linux-kernel, Frank Binns, Alessio Belle, Alexandru Dadu, Luigi Santivetti, Darren Etheridge On 18:51-20250421, Randolph Sapp wrote: > On Sat Apr 19, 2025 at 11:15 AM CDT, Udit Kumar wrote: > > Hello Matt, > > > > On 4/17/2025 2:40 PM, Matt Coster wrote: > >> The J721S2 binding is based on the TI downstream binding in commit > >> 54b0f2a00d92 ("arm64: dts: ti: k3-j721s2-main: add gpu node") from [1] > >> but with updated compatible strings. > > > > Downstream kernel[1] sha 5657fc069e8b3 ("PENDING: arm64: dts: ti: > > k3-j721s2-main: add gpu node") > > > > also has assigned-clock-rates. > > > > Please check if gpu node needs assigned-rate too. > > If I remember correctly, J721S2 was one of the few platforms that actually > defaulted to 800MHz, so it may not be necessary for that platform specifically. > (I don't have a board to test this right now though. This very well may have > changed.) AM62 also defaults to the correct value, and that one I did manage to > verify. > > That being said, Udit is right, it's generally a good idea to explicitly set the > clock speed for our devices. I know AM62P, for example, used to default our > clock to the bus speed. > > At one point though this driver was experimenting with a DVFS mechanism. Matt, > use of assigned-clocks shouldn't interfere with that assuming there is no > defined opp-table, right? May be a good idea to set our usual 800 MHz for J721S2 > and 500 MHz for AM625. This shouldn't require any binding related changes. > > On the topic of opp tables for the GPU, I did some testing on the proprietary > driver a little while back. These devices do not support voltage scaling and > simple frequency scaling saw a general decrease in performance and increase in > power draw for the usual utilization bursts a single application running at 60 > FPS generates. I have a feeling this will carry over to the open source driver, > but we can always do additional testing if you are curious. > > - Randolph > > >> The clock[2] and power[3] indices were verified from HTML docs, while > >> the intterupt index comes from the TRM[4] (appendix > >> "J721S2_Appendix_20241106_Public.xlsx", "Interrupts (inputs)", > >> "GPU_BXS464_WRAP0_GPU_SS_0_OS_IRQ_OUT_0"). > > > >> [1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel > >> [2]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html > >> [3]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/devices.html > >> [4]: https://www.ti.com/lit/zip/spruj28 (revision E) > >> > >> Reviewed-by: Randolph Sapp <rs@ti.com> > >> Signed-off-by: Matt Coster <matt.coster@imgtec.com> > >> --- > >> Changes in v2: > >> - Add interrupt reference details > >> - Add Randolph's Rb > >> - Link to v1: https://lore.kernel.org/r/20250415-bxs-4-64-dts-v1-2-f7d3fa06625d@imgtec.com > >> > >> This patch was previously sent as [DO NOT MERGE]: > >> https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-18-eda620c5865f@imgtec.com > >> --- > >> arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 12 ++++++++++++ > >> 1 file changed, 12 insertions(+) > >> > >> diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi > >> index 92bf48fdbeba45ecca8c854db5f72fd3666239c5..a79ac41b2c1f51b7193e6133864428bd35a5e835 100644 > >> --- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi > >> +++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi > >> @@ -2048,4 +2048,16 @@ watchdog8: watchdog@23f0000 { > >> /* reserved for MAIN_R5F1_1 */ > >> status = "reserved"; > >> }; > >> + > >> + gpu: gpu@4e20000000 { > >> + compatible = "ti,j721s2-gpu", "img,img-bxs-4-64", "img,img-rogue"; > >> + reg = <0x4e 0x20000000 0x00 0x80000>; > >> + clocks = <&k3_clks 130 1>; On the basis of the above discussion, Matt, please add: assigned-clocks = <&k3_clks 130 1>; assigned-clock-rates = <800000000>; > >> + clock-names = "core"; > >> + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; > >> + power-domains = <&k3_pds 130 TI_SCI_PD_EXCLUSIVE>, > >> + <&k3_pds 373 TI_SCI_PD_EXCLUSIVE>; > >> + power-domain-names = "a", "b"; > >> + dma-coherent; > >> + }; > >> }; > >> > -- Regards, Nishanth Menon Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node 2025-04-22 12:04 ` Nishanth Menon @ 2025-04-22 16:22 ` Matt Coster 2025-04-22 17:45 ` Randolph Sapp 0 siblings, 1 reply; 8+ messages in thread From: Matt Coster @ 2025-04-22 16:22 UTC (permalink / raw) To: Nishanth Menon, Randolph Sapp Cc: Kumar, Udit, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Frank Binns, Alessio Belle, Alexandru Dadu, Luigi Santivetti, Darren Etheridge [-- Attachment #1.1: Type: text/plain, Size: 4602 bytes --] On 22/04/2025 13:04, Nishanth Menon wrote: > On 18:51-20250421, Randolph Sapp wrote: >> On Sat Apr 19, 2025 at 11:15 AM CDT, Udit Kumar wrote: >>> Hello Matt, >>> >>> On 4/17/2025 2:40 PM, Matt Coster wrote: >>>> The J721S2 binding is based on the TI downstream binding in commit >>>> 54b0f2a00d92 ("arm64: dts: ti: k3-j721s2-main: add gpu node") from [1] >>>> but with updated compatible strings. >>> >>> Downstream kernel[1] sha 5657fc069e8b3 ("PENDING: arm64: dts: ti: >>> k3-j721s2-main: add gpu node") >>> >>> also has assigned-clock-rates. >>> >>> Please check if gpu node needs assigned-rate too. >> >> If I remember correctly, J721S2 was one of the few platforms that actually >> defaulted to 800MHz, so it may not be necessary for that platform specifically. >> (I don't have a board to test this right now though. This very well may have >> changed.) AM62 also defaults to the correct value, and that one I did manage to >> verify. >> >> That being said, Udit is right, it's generally a good idea to explicitly set the >> clock speed for our devices. I know AM62P, for example, used to default our >> clock to the bus speed. >> >> At one point though this driver was experimenting with a DVFS mechanism. Matt, >> use of assigned-clocks shouldn't interfere with that assuming there is no >> defined opp-table, right? May be a good idea to set our usual 800 MHz for J721S2 >> and 500 MHz for AM625. This shouldn't require any binding related changes. >> >> On the topic of opp tables for the GPU, I did some testing on the proprietary >> driver a little while back. These devices do not support voltage scaling and >> simple frequency scaling saw a general decrease in performance and increase in >> power draw for the usual utilization bursts a single application running at 60 >> FPS generates. I have a feeling this will carry over to the open source driver, >> but we can always do additional testing if you are curious. >> >> - Randolph >> >>>> The clock[2] and power[3] indices were verified from HTML docs, while >>>> the intterupt index comes from the TRM[4] (appendix >>>> "J721S2_Appendix_20241106_Public.xlsx", "Interrupts (inputs)", >>>> "GPU_BXS464_WRAP0_GPU_SS_0_OS_IRQ_OUT_0"). >>> >>>> [1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel >>>> [2]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html >>>> [3]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/devices.html >>>> [4]: https://www.ti.com/lit/zip/spruj28 (revision E) >>>> >>>> Reviewed-by: Randolph Sapp <rs@ti.com> >>>> Signed-off-by: Matt Coster <matt.coster@imgtec.com> >>>> --- >>>> Changes in v2: >>>> - Add interrupt reference details >>>> - Add Randolph's Rb >>>> - Link to v1: https://lore.kernel.org/r/20250415-bxs-4-64-dts-v1-2-f7d3fa06625d@imgtec.com >>>> >>>> This patch was previously sent as [DO NOT MERGE]: >>>> https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-18-eda620c5865f@imgtec.com >>>> --- >>>> arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 12 ++++++++++++ >>>> 1 file changed, 12 insertions(+) >>>> >>>> diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >>>> index 92bf48fdbeba45ecca8c854db5f72fd3666239c5..a79ac41b2c1f51b7193e6133864428bd35a5e835 100644 >>>> --- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >>>> +++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >>>> @@ -2048,4 +2048,16 @@ watchdog8: watchdog@23f0000 { >>>> /* reserved for MAIN_R5F1_1 */ >>>> status = "reserved"; >>>> }; >>>> + >>>> + gpu: gpu@4e20000000 { >>>> + compatible = "ti,j721s2-gpu", "img,img-bxs-4-64", "img,img-rogue"; >>>> + reg = <0x4e 0x20000000 0x00 0x80000>; >>>> + clocks = <&k3_clks 130 1>; > > On the basis of the above discussion, Matt, > please add: > assigned-clocks = <&k3_clks 130 1>; > assigned-clock-rates = <800000000>; As requested, I've sent a v3 with these properties added. I checked using: $ make CHECK_DTBS=1 ti/k3-am68-sk-base-board.dtb Which reported no issues. Does this mean these properties are defined as globally allowed somewhere, and that we will not need to add them specifically to our bindings? Cheers, Matt > >>>> + clock-names = "core"; >>>> + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; >>>> + power-domains = <&k3_pds 130 TI_SCI_PD_EXCLUSIVE>, >>>> + <&k3_pds 373 TI_SCI_PD_EXCLUSIVE>; >>>> + power-domain-names = "a", "b"; >>>> + dma-coherent; >>>> + }; >>>> }; >>>> >> > -- Matt Coster E: matt.coster@imgtec.com [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node 2025-04-22 16:22 ` Matt Coster @ 2025-04-22 17:45 ` Randolph Sapp 0 siblings, 0 replies; 8+ messages in thread From: Randolph Sapp @ 2025-04-22 17:45 UTC (permalink / raw) To: Matt Coster, Nishanth Menon Cc: Kumar, Udit, Vignesh Raghavendra, Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Frank Binns, Alessio Belle, Alexandru Dadu, Luigi Santivetti, Darren Etheridge On Tue Apr 22, 2025 at 11:22 AM CDT, Matt Coster wrote: > On 22/04/2025 13:04, Nishanth Menon wrote: >> On 18:51-20250421, Randolph Sapp wrote: >>> On Sat Apr 19, 2025 at 11:15 AM CDT, Udit Kumar wrote: >>>> Hello Matt, >>>> >>>> On 4/17/2025 2:40 PM, Matt Coster wrote: >>>>> The J721S2 binding is based on the TI downstream binding in commit >>>>> 54b0f2a00d92 ("arm64: dts: ti: k3-j721s2-main: add gpu node") from [1] >>>>> but with updated compatible strings. >>>> >>>> Downstream kernel[1] sha 5657fc069e8b3 ("PENDING: arm64: dts: ti: >>>> k3-j721s2-main: add gpu node") >>>> >>>> also has assigned-clock-rates. >>>> >>>> Please check if gpu node needs assigned-rate too. >>> >>> If I remember correctly, J721S2 was one of the few platforms that actually >>> defaulted to 800MHz, so it may not be necessary for that platform specifically. >>> (I don't have a board to test this right now though. This very well may have >>> changed.) AM62 also defaults to the correct value, and that one I did manage to >>> verify. >>> >>> That being said, Udit is right, it's generally a good idea to explicitly set the >>> clock speed for our devices. I know AM62P, for example, used to default our >>> clock to the bus speed. >>> >>> At one point though this driver was experimenting with a DVFS mechanism. Matt, >>> use of assigned-clocks shouldn't interfere with that assuming there is no >>> defined opp-table, right? May be a good idea to set our usual 800 MHz for J721S2 >>> and 500 MHz for AM625. This shouldn't require any binding related changes. >>> >>> On the topic of opp tables for the GPU, I did some testing on the proprietary >>> driver a little while back. These devices do not support voltage scaling and >>> simple frequency scaling saw a general decrease in performance and increase in >>> power draw for the usual utilization bursts a single application running at 60 >>> FPS generates. I have a feeling this will carry over to the open source driver, >>> but we can always do additional testing if you are curious. >>> >>> - Randolph >>> >>>>> The clock[2] and power[3] indices were verified from HTML docs, while >>>>> the intterupt index comes from the TRM[4] (appendix >>>>> "J721S2_Appendix_20241106_Public.xlsx", "Interrupts (inputs)", >>>>> "GPU_BXS464_WRAP0_GPU_SS_0_OS_IRQ_OUT_0"). >>>> >>>>> [1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel >>>>> [2]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html >>>>> [3]: https://downloads.ti.com/tisci/esd/latest/5_soc_doc/j721s2/devices.html >>>>> [4]: https://www.ti.com/lit/zip/spruj28 (revision E) >>>>> >>>>> Reviewed-by: Randolph Sapp <rs@ti.com> >>>>> Signed-off-by: Matt Coster <matt.coster@imgtec.com> >>>>> --- >>>>> Changes in v2: >>>>> - Add interrupt reference details >>>>> - Add Randolph's Rb >>>>> - Link to v1: https://lore.kernel.org/r/20250415-bxs-4-64-dts-v1-2-f7d3fa06625d@imgtec.com >>>>> >>>>> This patch was previously sent as [DO NOT MERGE]: >>>>> https://lore.kernel.org/r/20250410-sets-bxs-4-64-patch-v1-v6-18-eda620c5865f@imgtec.com >>>>> --- >>>>> arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi | 12 ++++++++++++ >>>>> 1 file changed, 12 insertions(+) >>>>> >>>>> diff --git a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >>>>> index 92bf48fdbeba45ecca8c854db5f72fd3666239c5..a79ac41b2c1f51b7193e6133864428bd35a5e835 100644 >>>>> --- a/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >>>>> +++ b/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi >>>>> @@ -2048,4 +2048,16 @@ watchdog8: watchdog@23f0000 { >>>>> /* reserved for MAIN_R5F1_1 */ >>>>> status = "reserved"; >>>>> }; >>>>> + >>>>> + gpu: gpu@4e20000000 { >>>>> + compatible = "ti,j721s2-gpu", "img,img-bxs-4-64", "img,img-rogue"; >>>>> + reg = <0x4e 0x20000000 0x00 0x80000>; >>>>> + clocks = <&k3_clks 130 1>; >> >> On the basis of the above discussion, Matt, >> please add: >> assigned-clocks = <&k3_clks 130 1>; >> assigned-clock-rates = <800000000>; > > As requested, I've sent a v3 with these properties added. I checked > using: > > $ make CHECK_DTBS=1 ti/k3-am68-sk-base-board.dtb > > Which reported no issues. Does this mean these properties are defined as > globally allowed somewhere, and that we will not need to add them > specifically to our bindings? > > Cheers, > Matt Yeah, they are defined by the clock meta-schema [1] and inherited by the core meta-schema [2] that you are using. [1] https://github.com/devicetree-org/dt-schema/blob/e6ea659d2baa30df1ec0fcc4f8354208692489eb/dtschema/meta-schemas/clocks.yaml#L26 [2] https://github.com/devicetree-org/dt-schema/blob/e6ea659d2baa30df1ec0fcc4f8354208692489eb/dtschema/meta-schemas/core.yaml#L29 - Randolph >>>>> + clock-names = "core"; >>>>> + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; >>>>> + power-domains = <&k3_pds 130 TI_SCI_PD_EXCLUSIVE>, >>>>> + <&k3_pds 373 TI_SCI_PD_EXCLUSIVE>; >>>>> + power-domain-names = "a", "b"; >>>>> + dma-coherent; >>>>> + }; >>>>> }; >>>>> >>> >> ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-04-22 17:45 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-04-17 9:10 [PATCH v2 0/2] Imagination BXS-4-64 MC1 GPU support (DTS changes) Matt Coster 2025-04-17 9:10 ` [PATCH v2 1/2] arm64: dts: ti: k3-am62: New GPU binding details Matt Coster 2025-04-17 9:10 ` [PATCH v2 2/2] arm64: dts: ti: k3-j721s2: Add GPU node Matt Coster 2025-04-19 16:15 ` Kumar, Udit 2025-04-21 23:51 ` Randolph Sapp 2025-04-22 12:04 ` Nishanth Menon 2025-04-22 16:22 ` Matt Coster 2025-04-22 17:45 ` Randolph Sapp
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox