The phyCORE AM62x, AM62Ax and AM64x u-boot FIT images carry four
devicetree overlays (som-no-rtc, som-no-spi, som-no-eth, som-qspi)
that SPL loads simultaneously as loadables of the same configuration.
Their load addresses are spaced only 4 KiB apart, but each packaged
image is larger than that. Measured on a phycore_am62x build, every
overlay is between 6035 and 6163 bytes including the prepended
ti-secure certificate, and the raw dtbo that remains in memory after
the certificate is stripped is still around 4.2 to 4.4 KiB.

Loading the images back to back therefore overwrites the tail of the
previously loaded overlay, so by the time the board code applies the
overlays from the recorded /fit-images addresses the earlier ones are
already corrupted.

Space the overlay slots 16 KiB apart so each image has comfortable
headroom. The addresses are only consumed through the /fit-images
records that SPL writes while loading the images, so no other code
needs to change. This also allows the upcoming mkimage load address
overlap check to pass for these boards.

Signed-off-by: Aristo Chen <[email protected]>
Tested-by: Wadim Egorov <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
---
 arch/arm/dts/k3-am625-phycore-som-binman.dtsi | 6 +++---
 arch/arm/dts/k3-am62a-phycore-som-binman.dtsi | 6 +++---
 arch/arm/dts/k3-am642-phycore-som-binman.dtsi | 6 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/arch/arm/dts/k3-am625-phycore-som-binman.dtsi 
b/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
index 6d57a5d9ffa..d0eaa7dd992 100644
--- a/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
+++ b/arch/arm/dts/k3-am625-phycore-som-binman.dtsi
@@ -368,7 +368,7 @@
                                        description = 
"k3-am6xx-phycore-disable-spi-nor";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F001000>;
+                                       load = <0x8F004000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_spi_not_dtbo>;
@@ -383,7 +383,7 @@
                                        description = 
"k3-am6xx-phycore-disable-eth-phy";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F002000>;
+                                       load = <0x8F008000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_eth_phy_dtbo>;
@@ -398,7 +398,7 @@
                                        description = 
"k3-am6xx-phycore-qspi-nor";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F003000>;
+                                       load = <0x8F00C000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_qspi_nor_dtbo>;
diff --git a/arch/arm/dts/k3-am62a-phycore-som-binman.dtsi 
b/arch/arm/dts/k3-am62a-phycore-som-binman.dtsi
index cdc9a100a04..2c98e16b00b 100644
--- a/arch/arm/dts/k3-am62a-phycore-som-binman.dtsi
+++ b/arch/arm/dts/k3-am62a-phycore-som-binman.dtsi
@@ -295,7 +295,7 @@
                                        description = 
"k3-am6xx-phycore-disable-spi-nor";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F001000>;
+                                       load = <0x8F004000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_spi_not_dtbo>;
@@ -310,7 +310,7 @@
                                        description = 
"k3-am6xx-phycore-disable-eth-phy";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F002000>;
+                                       load = <0x8F008000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_eth_phy_dtbo>;
@@ -325,7 +325,7 @@
                                        description = 
"k3-am6xx-phycore-qspi-nor";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F003000>;
+                                       load = <0x8F00C000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_qspi_nor_dtbo>;
diff --git a/arch/arm/dts/k3-am642-phycore-som-binman.dtsi 
b/arch/arm/dts/k3-am642-phycore-som-binman.dtsi
index 07cb79fd04a..64679195e72 100644
--- a/arch/arm/dts/k3-am642-phycore-som-binman.dtsi
+++ b/arch/arm/dts/k3-am642-phycore-som-binman.dtsi
@@ -402,7 +402,7 @@
                                        description = 
"k3-am6xx-phycore-disable-spi-nor";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F001000>;
+                                       load = <0x8F004000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_spi_not_dtbo>;
@@ -417,7 +417,7 @@
                                        description = 
"k3-am6xx-phycore-disable-eth-phy";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F002000>;
+                                       load = <0x8F008000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_eth_phy_dtbo>;
@@ -432,7 +432,7 @@
                                        description = 
"k3-am6xx-phycore-qspi-nor";
                                        type = "flat_dt";
                                        compression = "none";
-                                       load = <0x8F003000>;
+                                       load = <0x8F00C000>;
                                        arch = "arm";
                                        ti-secure {
                                                content = 
<&am6xx_phycore_disable_qspi_nor_dtbo>;
-- 
2.43.0

Reply via email to