There is a common imx8mm-u-boot.dtsi that generates images for
booting from MMC, but when booting FlexSPI, the image needs
to be created differently.  To facilitate this, the new
dtsi file includes the old one, deletes the node that
packages the  SPL + U-Boot.itb, and replaces it with a node that
packages the FlexSPI Config Block + SPL + U-Boot.itb and puts
them to their proper respective locations for FlexSPI booting.

Signed-off-by: Adam Ford <aford...@gmail.com>

diff --git a/arch/arm/dts/imx8mm-flexspi-u-boot-dtsi 
b/arch/arm/dts/imx8mm-flexspi-u-boot-dtsi
new file mode 100644
index 0000000000..1b889afa0c
--- /dev/null
+++ b/arch/arm/dts/imx8mm-flexspi-u-boot-dtsi
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-2.0+
+
+#include "imx8mm-u-boot.dtsi"
+
+/*
+ * According to the TRM, the FlexSPI Configuration block exists at
+ * offset 0.  This pushes SPL and U-Boot proper to different addresses
+ * To facilicate this, we'll delete the previous node and create a new
+ * one specific to the FlexSPI booting.
+ */
+
+ &binman {
+       /delete-node/ imx-boot;
+
+       imx-fspi-boot {
+               filename = "flash.bin";
+               pad-byte = <0x00>;
+
+               fcfb {
+                       filename = "arch/arm/mach-imx/imx8m/fcfb.bin";
+                       offset = <0x00>;
+                       type = "blob-ext";
+               };
+
+               spl {
+                       filename = "spl.bin";
+                       offset = <0x1000>;
+                       type = "blob-ext";
+               };
+
+               binman_uboot: uboot {
+                       filename = "u-boot.itb";
+                       offset = <0x600000>;
+                       type = "blob-ext";
+               };
+       };
+ };
-- 
2.32.0

Reply via email to