* [PATCH 0/2] arm64: dts: ti: k3-am65: add boot phases to critical nodes
@ 2025-07-09 22:35 Bryan Brattlof
2025-07-09 22:35 ` [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags Bryan Brattlof
2025-07-09 22:35 ` [PATCH 2/2] arm64: dts: ti: k3-am654-base-board: " Bryan Brattlof
0 siblings, 2 replies; 5+ messages in thread
From: Bryan Brattlof @ 2025-07-09 22:35 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Bryan Brattlof
Hello everyone!
To save precious on chip RAM space during bootup 'bootph-*' flags was
added to the dt-schema to describe which nodes need to be present during
each phase of the bootup process and which can be pruned to recover RAM
space that would otherwise be wasted.
This small series adds the bootph-all flags to all the boot critical
nodes for all boards that utilize the AM65x as well as to the AM65's
reference board.
Happy Hacking
~Bryan
Signed-off-by: Bryan Brattlof <bb@ti.com>
---
Bryan Brattlof (2):
arm64: dts: ti: k3-am65: add boot phase tags
arm64: dts: ti: k3-am654-base-board: add boot phase tags
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 +++++
arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 17 +++++++++++++++++
arch/arm64/boot/dts/ti/k3-am654-pcie-usb2.dtso | 1 +
arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso | 1 +
6 files changed, 27 insertions(+)
---
base-commit: 036cc33070b35754f45da50d81f8c3c85191c8b7
change-id: 20250709-65-boot-phases-aaf3aa6db782
Best regards,
--
Bryan Brattlof <bb@ti.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags
2025-07-09 22:35 [PATCH 0/2] arm64: dts: ti: k3-am65: add boot phases to critical nodes Bryan Brattlof
@ 2025-07-09 22:35 ` Bryan Brattlof
2025-07-10 6:29 ` Vignesh Raghavendra
2025-07-09 22:35 ` [PATCH 2/2] arm64: dts: ti: k3-am654-base-board: " Bryan Brattlof
1 sibling, 1 reply; 5+ messages in thread
From: Bryan Brattlof @ 2025-07-09 22:35 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Bryan Brattlof
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
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] arm64: dts: ti: k3-am654-base-board: add boot phase tags
2025-07-09 22:35 [PATCH 0/2] arm64: dts: ti: k3-am65: add boot phases to critical nodes Bryan Brattlof
2025-07-09 22:35 ` [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags Bryan Brattlof
@ 2025-07-09 22:35 ` Bryan Brattlof
1 sibling, 0 replies; 5+ messages in thread
From: Bryan Brattlof @ 2025-07-09 22:35 UTC (permalink / raw)
To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel, Bryan Brattlof
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 nodes that are used in the bootloader for the
AM654 reference board.
UARTs used as a console, the SD and eMMC nodes along with the needed
regulators for UHS modes, and the needed nodes for OSPI boot are all
marked with 'bootph-all' to handle the various boot modes the board is
capable of
Signed-off-by: Bryan Brattlof <bb@ti.com>
---
arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 17 +++++++++++++++++
arch/arm64/boot/dts/ti/k3-am654-pcie-usb2.dtso | 1 +
arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso | 1 +
3 files changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
index c30425960398ebb75ebda44726ed90cd78947d58..e589690c7c8213d5e4989942735fa53825e610f5 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
@@ -144,6 +144,7 @@ vtt_supply: regulator-3 {
regulator-boot-on;
vin-supply = <&vcc3v3_io>;
gpio = <&wkup_gpio0 28 GPIO_ACTIVE_HIGH>;
+ bootph-all;
};
};
@@ -155,12 +156,14 @@ AM65X_WKUP_IOPAD(0x00a4, PIN_OUTPUT, 0) /* (AB5) WKUP_UART0_TXD */
AM65X_WKUP_IOPAD(0x00c8, PIN_INPUT, 1) /* (AC2) WKUP_GPIO0_6.WKUP_UART0_CTSn */
AM65X_WKUP_IOPAD(0x00cc, PIN_OUTPUT, 1) /* (AC1) WKUP_GPIO0_7.WKUP_UART0_RTSn */
>;
+ bootph-all;
};
ddr_vtt_pins_default: ddr-vtt-default-pins {
pinctrl-single,pins = <
AM65X_WKUP_IOPAD(0x0040, PIN_OUTPUT_PULLUP, 7) /* WKUP_GPIO0_28 */
>;
+ bootph-all;
};
wkup_i2c0_pins_default: wkup-i2c0-default-pins {
@@ -168,6 +171,7 @@ wkup_i2c0_pins_default: wkup-i2c0-default-pins {
AM65X_WKUP_IOPAD(0x00e0, PIN_INPUT, 0) /* (AC7) WKUP_I2C0_SCL */
AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */
>;
+ bootph-all;
};
push_button_pins_default: push-button-default-pins {
@@ -191,6 +195,7 @@ AM65X_WKUP_IOPAD(0x0024, PIN_INPUT, 0) /* (R2) MCU_OSPI0_D6 */
AM65X_WKUP_IOPAD(0x0028, PIN_INPUT, 0) /* (R3) MCU_OSPI0_D7 */
AM65X_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* (R4) MCU_OSPI0_CSn0 */
>;
+ bootph-all;
};
wkup_pca554_default: wkup-pca554-default-pins {
@@ -206,6 +211,7 @@ AM65X_WKUP_IOPAD(0x0048, PIN_OUTPUT, 4) /* (P5) MCU_OSPI1_D2.MCU_UART0_TXD */
AM65X_WKUP_IOPAD(0x004C, PIN_INPUT, 4) /* (P1) MCU_OSPI1_D3.MCU_UART0_CTSn */
AM65X_WKUP_IOPAD(0x0054, PIN_OUTPUT, 4) /* (N3) MCU_OSPI1_CSn1.MCU_UART0_RTSn */
>;
+ bootph-all;
};
mcu_cpsw_pins_default: mcu-cpsw-default-pins {
@@ -248,6 +254,7 @@ AM65X_IOPAD(0x01e8, PIN_OUTPUT, 0) /* (AE11) UART0_TXD */
AM65X_IOPAD(0x01ec, PIN_INPUT, 0) /* (AG11) UART0_CTSn */
AM65X_IOPAD(0x01f0, PIN_OUTPUT, 0) /* (AD11) UART0_RTSn */
>;
+ bootph-all;
};
main_i2c2_pins_default: main-i2c2-default-pins {
@@ -281,6 +288,7 @@ AM65X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0) /* (D25) MMC0_DAT7 */
AM65X_IOPAD(0x01b4, PIN_INPUT_PULLUP, 0) /* (A23) MMC0_SDCD */
AM65X_IOPAD(0x01b0, PIN_INPUT, 0) /* (C25) MMC0_DS */
>;
+ bootph-all;
};
main_mmc1_pins_default: main-mmc1-default-pins {
@@ -294,6 +302,7 @@ AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP, 0) /* (D27) MMC1_DAT3 */
AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP, 0) /* (B24) MMC1_SDCD */
AM65X_IOPAD(0x02e0, PIN_INPUT, 0) /* (C24) MMC1_SDWP */
>;
+ bootph-all;
};
usb1_pins_default: usb1-default-pins {
@@ -343,6 +352,7 @@ &main_uart0 {
pinctrl-names = "default";
pinctrl-0 = <&main_uart0_pins_default>;
power-domains = <&k3_pds 146 TI_SCI_PD_SHARED>;
+ bootph-all;
};
&wkup_i2c0 {
@@ -368,6 +378,7 @@ vdd_mpu: regulator@60 {
ti,vsel0-state-high;
ti,vsel1-state-high;
ti,enable-vout-discharge;
+ bootph-all;
};
gpio@38 {
@@ -456,6 +467,7 @@ &sdhci0 {
bus-width = <8>;
non-removable;
ti,driver-strength-ohm = <50>;
+ bootph-all;
};
/*
@@ -470,6 +482,7 @@ &sdhci1 {
pinctrl-0 = <&main_mmc1_pins_default>;
ti,driver-strength-ohm = <50>;
disable-wp;
+ bootph-all;
};
&usb1 {
@@ -630,3 +643,7 @@ &cpsw_port1 {
&dss {
status = "disabled";
};
+
+&wkup_gpio0 {
+ bootph-all;
+};
diff --git a/arch/arm64/boot/dts/ti/k3-am654-pcie-usb2.dtso b/arch/arm64/boot/dts/ti/k3-am654-pcie-usb2.dtso
index c3cb752f8cd79459d6d321dfdf0644748514a48d..d04dd7a44008205301ea3fb3d0a883b6a6a2562b 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-pcie-usb2.dtso
+++ b/arch/arm64/boot/dts/ti/k3-am654-pcie-usb2.dtso
@@ -46,6 +46,7 @@ AM65X_IOPAD(0x02bc, PIN_OUTPUT, 0) /* (AD9) USB0_DRVVBUS */
&dwc3_0 {
status = "okay";
+ bootph-all;
};
&usb0_phy {
diff --git a/arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso b/arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso
index 333e423e8bb6b033f5f45c782ef0095d29983158..04393f21d712ebd95ce1a411e2ac13a56e63e57b 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso
+++ b/arch/arm64/boot/dts/ti/k3-am654-pcie-usb3.dtso
@@ -45,6 +45,7 @@ &dwc3_0 {
<&k3_clks 151 8>; /* set PIPE3_TXB_CLK to WIZ8B2M4VSB */
phys = <&serdes0 PHY_TYPE_USB3 0>;
phy-names = "usb3-phy";
+ bootph-all;
};
&usb0 {
--
2.49.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags
2025-07-09 22:35 ` [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags Bryan Brattlof
@ 2025-07-10 6:29 ` Vignesh Raghavendra
2025-07-10 12:33 ` Bryan Brattlof
0 siblings, 1 reply; 5+ messages in thread
From: Vignesh Raghavendra @ 2025-07-10 6:29 UTC (permalink / raw)
To: Bryan Brattlof, Nishanth Menon, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags
2025-07-10 6:29 ` Vignesh Raghavendra
@ 2025-07-10 12:33 ` Bryan Brattlof
0 siblings, 0 replies; 5+ messages in thread
From: Bryan Brattlof @ 2025-07-10 12:33 UTC (permalink / raw)
To: Vignesh Raghavendra
Cc: Nishanth Menon, Tero Kristo, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-kernel, devicetree, linux-kernel
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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-07-10 12:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-09 22:35 [PATCH 0/2] arm64: dts: ti: k3-am65: add boot phases to critical nodes Bryan Brattlof
2025-07-09 22:35 ` [PATCH 1/2] arm64: dts: ti: k3-am65: add boot phase tags Bryan Brattlof
2025-07-10 6:29 ` Vignesh Raghavendra
2025-07-10 12:33 ` Bryan Brattlof
2025-07-09 22:35 ` [PATCH 2/2] arm64: dts: ti: k3-am654-base-board: " Bryan Brattlof
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).