[PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags

Bryan Brattlof posted 2 patches 5 months, 1 week ago
There is a newer version of this series
[PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags
Posted by Bryan Brattlof 5 months, 1 week ago
The 'bootph-all' tag was added to the dt-schema to describe the various
nodes used during the different phases of bootup with DT. Add the
bootph-all tag to all required nodes for all AM65x platforms.

Mark the mailbox and ring accelerators needed to communicate the with
various vendor firmware and the power, clock and reset nodes along with
the MMR for the chip-id to facilitate detecting the SoC and which
silicon version during the early stages of bootup with 'bootph-all' as
they are used during all phases of bootup

Signed-off-by: Bryan Brattlof <bb@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am65-main.dtsi   | 1 +
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi    | 2 ++
 arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi | 5 +++++
 3 files changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
index b085e736111660ed0dad5f127ef0c3d79c52fe1d..61c11dc92d9c27fc9e47123698c17118cd522be1 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -655,6 +655,7 @@ secure_proxy_main: mailbox@32c00000 {
 			      <0x00 0x32800000 0x00 0x100000>;
 			interrupt-names = "rx_011";
 			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+			bootph-all;
 		};
 
 		hwspinlock: spinlock@30e00000 {
diff --git a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
index 7cf1f646500a16c1d1bac6dfb37fb285218063b3..5bbd817bc51464f6605c5b2dc9cb544a109a695d 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
@@ -211,6 +211,7 @@ mcu_ringacc: ringacc@2b800000 {
 			ti,sci = <&dmsc>;
 			ti,sci-dev-id = <195>;
 			msi-parent = <&inta_main_udmass>;
+			bootph-all;
 		};
 
 		mcu_udmap: dma-controller@285c0000 {
@@ -235,6 +236,7 @@ mcu_udmap: dma-controller@285c0000 {
 			ti,sci-rm-range-rchan = <0xb>, /* RX_HCHAN */
 						<0xa>; /* RX_CHAN */
 			ti,sci-rm-range-rflow = <0x0>; /* GP RFLOW */
+			bootph-all;
 		};
 	};
 
diff --git a/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
index eee072e44a42f5f66423200975016447d22bdc46..d62a0be767c814706e146bcf95ee4ff84461a515 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
@@ -21,16 +21,19 @@ dmsc: system-controller@44083000 {
 		k3_pds: power-controller {
 			compatible = "ti,sci-pm-domain";
 			#power-domain-cells = <2>;
+			bootph-all;
 		};
 
 		k3_clks: clock-controller {
 			compatible = "ti,k2g-sci-clk";
 			#clock-cells = <2>;
+			bootph-all;
 		};
 
 		k3_reset: reset-controller {
 			compatible = "ti,sci-reset";
 			#reset-cells = <2>;
+			bootph-all;
 		};
 	};
 
@@ -43,6 +46,7 @@ wkup_conf: bus@43000000 {
 		chipid: chipid@14 {
 			compatible = "ti,am654-chipid";
 			reg = <0x14 0x4>;
+			bootph-all;
 		};
 	};
 
@@ -107,5 +111,6 @@ wkup_vtm0: temperature-sensor@42050000 {
 		reg = <0x42050000 0x25c>;
 		power-domains = <&k3_pds 80 TI_SCI_PD_EXCLUSIVE>;
 		#thermal-sensor-cells = <1>;
+		bootph-all;
 	};
 };

-- 
2.49.0
Re: [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags
Posted by Vignesh Raghavendra 5 months, 1 week ago

On 10/07/25 04:05, Bryan Brattlof wrote:

[...]

> diff --git a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
> index 7cf1f646500a16c1d1bac6dfb37fb285218063b3..5bbd817bc51464f6605c5b2dc9cb544a109a695d 100644
> --- a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
> @@ -211,6 +211,7 @@ mcu_ringacc: ringacc@2b800000 {
>  			ti,sci = <&dmsc>;
>  			ti,sci-dev-id = <195>;
>  			msi-parent = <&inta_main_udmass>;
> +			bootph-all;
>  		};
>  
>  		mcu_udmap: dma-controller@285c0000 {
> @@ -235,6 +236,7 @@ mcu_udmap: dma-controller@285c0000 {
>  			ti,sci-rm-range-rchan = <0xb>, /* RX_HCHAN */
>  						<0xa>; /* RX_CHAN */
>  			ti,sci-rm-range-rflow = <0x0>; /* GP RFLOW */
> +			bootph-all;
>  		};
>  	};

Should this be board specific property? Does every user of AM65x need
DMA at boot stage?

[...]

> @@ -107,5 +111,6 @@ wkup_vtm0: temperature-sensor@42050000 {
>  		reg = <0x42050000 0x25c>;
>  		power-domains = <&k3_pds 80 TI_SCI_PD_EXCLUSIVE>;
>  		#thermal-sensor-cells = <1>;
> +		bootph-all;

Same here..

>  	};
>  };

-- 
Regards
Vignesh
https://ti.com/opensource
Re: [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags
Posted by Bryan Brattlof 5 months, 1 week ago
On July 10, 2025 thus sayeth Vignesh Raghavendra:
> 
> 
> On 10/07/25 04:05, Bryan Brattlof wrote:
> 
> [...]
> 
> > diff --git a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
> > index 7cf1f646500a16c1d1bac6dfb37fb285218063b3..5bbd817bc51464f6605c5b2dc9cb544a109a695d 100644
> > --- a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
> > +++ b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
> > @@ -211,6 +211,7 @@ mcu_ringacc: ringacc@2b800000 {
> >  			ti,sci = <&dmsc>;
> >  			ti,sci-dev-id = <195>;
> >  			msi-parent = <&inta_main_udmass>;
> > +			bootph-all;
> >  		};
> >  
> >  		mcu_udmap: dma-controller@285c0000 {
> > @@ -235,6 +236,7 @@ mcu_udmap: dma-controller@285c0000 {
> >  			ti,sci-rm-range-rchan = <0xb>, /* RX_HCHAN */
> >  						<0xa>; /* RX_CHAN */
> >  			ti,sci-rm-range-rflow = <0x0>; /* GP RFLOW */
> > +			bootph-all;
> >  		};
> >  	};
> 
> Should this be board specific property? Does every user of AM65x need
> DMA at boot stage?
> 

Yeah. I'm not too sure how we want to handle this. Some boot modes will 
require DMA up and running, but if a board only uses eMMC then we won't 
need DMA during the early phases of boot.

I saw we already do this for the AM62P so I decided to keep moving in 
that direction even though it's not a perfect and it seemed like a 
better solution than dragging the DMA node up to the board level.

I'll drop it for now until I can think of a better idea.

> [...]
> 
> > @@ -107,5 +111,6 @@ wkup_vtm0: temperature-sensor@42050000 {
> >  		reg = <0x42050000 0x25c>;
> >  		power-domains = <&k3_pds 80 TI_SCI_PD_EXCLUSIVE>;
> >  		#thermal-sensor-cells = <1>;
> > +		bootph-all;
> 
> Same here..
> 

Yeah I'm assuming this is one of those weird things being in the middle 
of the Jacinto and Sitara class causes. It's used, much like the rest of 
the Jacinto parts, by the bootloaders to get at the voltage domain info 
to configure the OPP data before the bootloader starts the A53s.

All AM65x boards will need this node to prevent an overclocking situation 
if the voltage isn't high enough.

~Bryan