public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Adam Ford <aford173@gmail.com>
To: u-boot@lists.denx.de
Cc: Adam Ford <aford173@gmail.com>, Fabio Estevam <festevam@denx.de>,
	Stefano Babic <sbabic@denx.de>,
	Fabio Estevam <festevam@gmail.com>,
	"NXP i.MX U-Boot Team" <uboot-imx@nxp.com>,
	"Ariel D'Alessandro" <ariel.dalessandro@collabora.com>,
	Michael Trimarchi <michael@amarulasolutions.com>,
	Tim Harvey <tharvey@gateworks.com>
Subject: [PATCH V2 1/7] arm: dts: imx8mn-u-boot: Create common imx8mn-u-boot.dtsi
Date: Fri, 21 Oct 2022 19:58:31 -0500	[thread overview]
Message-ID: <20221022005837.170357-2-aford173@gmail.com> (raw)
In-Reply-To: <20221022005837.170357-1-aford173@gmail.com>

Multiple boards create duplicate entries in their respective
-u-boot.dtsi files which all basically do the same thing.
To consolidate these and make it easier to make improvements
going forward, consolidate them all into one place.

This file creates a flash.bin image using binman, and supports
LPDDR4, DDR4 and DDR3.  Since individual boards use different
peripherals and different UART ports, those entries were kept
in their respective board files, but the spba1 node was addded
which contains all UART1-3 to help facilitate SPL_DM_SERIAL.
Individual users will still need to include their respective
UART and pinctrl nodes for those UARTS.

This consolidated file also supports generating a flash.bin file
which can boot from flexSPI if CONFIG_FSPI_CONF_HEADER is
enabled.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>

diff --git a/arch/arm/dts/imx8mn-u-boot.dtsi b/arch/arm/dts/imx8mn-u-boot.dtsi
new file mode 100644
index 0000000000..327d4070fc
--- /dev/null
+++ b/arch/arm/dts/imx8mn-u-boot.dtsi
@@ -0,0 +1,248 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2022 Logic PD, Inc dba Beacon EmbeddedWorks
+ */
+
+/ {
+	binman: binman {
+		multiple-images;
+	};
+
+	firmware {
+		optee {
+			compatible = "linaro,optee-tz";
+			method = "smc";
+		};
+	};
+
+	wdt-reboot {
+		compatible = "wdt-reboot";
+		wdt = <&wdog1>;
+		u-boot,dm-spl;
+	};
+};
+
+&{/soc@0} {
+	u-boot,dm-pre-reloc;
+	u-boot,dm-spl;
+};
+
+&aips1 {
+	u-boot,dm-spl;
+	u-boot,dm-pre-reloc;
+};
+
+&aips2 {
+	u-boot,dm-spl;
+};
+
+&aips3 {
+	u-boot,dm-spl;
+};
+
+&aips4 {
+	u-boot,dm-spl;
+};
+
+&clk {
+	u-boot,dm-spl;
+	u-boot,dm-pre-reloc;
+	/delete-property/ assigned-clocks;
+	/delete-property/ assigned-clock-parents;
+	/delete-property/ assigned-clock-rates;
+};
+
+&iomuxc {
+	u-boot,dm-spl;
+};
+
+&osc_24m {
+	u-boot,dm-spl;
+	u-boot,dm-pre-reloc;
+};
+
+&spba1 {
+	u-boot,dm-spl;
+};
+
+&wdog1 {
+	u-boot,dm-spl;
+};
+
+&binman {
+	 u-boot-spl-ddr {
+		filename = "u-boot-spl-ddr.bin";
+		pad-byte = <0xff>;
+		align-size = <4>;
+		align = <4>;
+
+		u-boot-spl {
+			align-end = <4>;
+			filename = "u-boot-spl.bin";
+		};
+
+		ddr-1d-imem-fw {
+#ifdef CONFIG_IMX8M_LPDDR4
+			filename = "lpddr4_pmu_train_1d_imem.bin";
+#elif CONFIG_IMX8M_DDR4
+			filename = "ddr4_imem_1d.bin";
+#else
+			filename = "ddr3_imem_1d.bin";
+#endif
+			type = "blob-ext";
+			align-end = <4>;
+		};
+
+		ddr-1d-dmem-fw {
+#ifdef CONFIG_IMX8M_LPDDR4
+			filename = "lpddr4_pmu_train_1d_dmem.bin";
+#elif CONFIG_IMX8M_DDR4
+			filename = "ddr4_dmem_1d.bin";
+#else
+			filename = "ddr3_dmem_1d.bin";
+#endif
+			type = "blob-ext";
+			align-end = <4>;
+		};
+
+		ddr-2d-imem-fw {
+#ifdef CONFIG_IMX8M_LPDDR4
+			filename = "lpddr4_pmu_train_2d_imem.bin";
+#elif CONFIG_IMX8M_DDR4
+			filename = "ddr4_imem_2d.bin";
+#endif
+			type = "blob-ext";
+			align-end = <4>;
+		};
+
+		ddr-2d-dmem-fw {
+#ifdef CONFIG_IMX8M_LPDDR4
+			filename = "lpddr4_pmu_train_2d_dmem.bin";
+#elif CONFIG_IMX8M_DDR4
+			filename = "ddr4_dmem_2d.bin";
+#endif
+			type = "blob-ext";
+			align-end = <4>;
+		};
+	};
+
+	spl {
+		filename = "spl.bin";
+
+		mkimage {
+			args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x912000";
+
+			blob {
+				filename = "u-boot-spl-ddr.bin";
+			};
+		};
+	};
+
+	itb {
+		filename = "u-boot.itb";
+
+		fit {
+			description = "Configuration to load ATF before U-Boot";
+			fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
+			fit,fdt-list = "of-list";
+			#address-cells = <1>;
+
+			images {
+				uboot {
+					arch = "arm64";
+					compression = "none";
+					description = "U-Boot (64-bit)";
+					load = <CONFIG_SYS_TEXT_BASE>;
+					type = "standalone";
+
+					uboot-blob {
+						filename = "u-boot-nodtb.bin";
+						type = "blob-ext";
+					};
+				};
+
+				atf {
+					arch = "arm64";
+					compression = "none";
+					description = "ARM Trusted Firmware";
+					entry = <0x960000>;
+					load = <0x960000>;
+					type = "firmware";
+
+					atf-blob {
+						filename = "bl31.bin";
+						type = "atf-bl31";
+					};
+				};
+
+				binman_fip: fip {
+					arch = "arm64";
+					compression = "none";
+					description = "Trusted Firmware FIP";
+					load = <0x40310000>;
+					type = "firmware";
+				};
+
+				@fdt-SEQ {
+					compression = "none";
+					description = "NAME";
+					type = "flat_dt";
+
+					uboot-fdt-blob {
+						filename = "u-boot.dtb";
+						type = "blob-ext";
+					};
+				};
+			};
+
+			configurations {
+				default = "@config-DEFAULT-SEQ";
+
+				binman_configuration: @config-SEQ {
+					description = "NAME";
+					fdt = "fdt-SEQ";
+					firmware = "uboot";
+					loadables = "atf";
+				};
+			};
+		};
+	};
+
+	imx-boot {
+		filename = "flash.bin";
+		pad-byte = <0x00>;
+
+#ifdef CONFIG_FSPI_CONF_HEADER
+		fspi_conf_block {
+			filename = CONFIG_FSPI_CONF_FILE;
+			type = "blob-ext";
+			offset = <0x400>;
+		};
+
+		spl {
+			filename = "spl.bin";
+			offset = <0x1000>;
+			type = "blob-ext";
+		};
+
+		binman_uboot: uboot {
+			filename = "u-boot.itb";
+			offset = <0x59000>;
+			type = "blob-ext";
+		};
+#else
+
+		spl {
+			offset = <0x0>;
+			filename = "spl.bin";
+			type = "blob-ext";
+		};
+
+		binman_uboot: uboot {
+			offset = <0x58000>;
+			filename = "u-boot.itb";
+			type = "blob-ext";
+		};
+#endif
+	};
+};
-- 
2.34.1


  reply	other threads:[~2022-10-22  0:59 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-22  0:58 [PATCH V2 0/7] arm: dts: Create common imx8mn-u-boot Adam Ford
2022-10-22  0:58 ` Adam Ford [this message]
2022-10-24 13:56   ` [PATCH V2 1/7] arm: dts: imx8mn-u-boot: Create common imx8mn-u-boot.dtsi sbabic
2022-10-22  0:58 ` [PATCH V2 2/7] arm: dts: imx8mn-beacon-kit: Consolidate with imx8mn-u-boot Adam Ford
2022-10-24 13:55   ` sbabic
2022-10-22  0:58 ` [PATCH V2 3/7] arm: dts: imx8mn-bsh-smm-s2: " Adam Ford
2022-10-24 13:55   ` sbabic
2022-10-22  0:58 ` [PATCH V2 4/7] arm: dts: imx8mn-ddr4-evk: " Adam Ford
2022-10-24 13:55   ` sbabic
2022-10-22  0:58 ` [PATCH V2 5/7] arm: dts: imx8mn-evk: " Adam Ford
2022-10-24 13:54   ` sbabic
2022-10-22  0:58 ` [PATCH V2 6/7] arm: dts: imx8mn-var-som-symphony: " Adam Ford
2022-10-24 13:54   ` sbabic
2022-10-22  0:58 ` [PATCH V2 7/7] arm: dts: imx8mn-venice: " Adam Ford
2022-10-24 13:56   ` sbabic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221022005837.170357-2-aford173@gmail.com \
    --to=aford173@gmail.com \
    --cc=ariel.dalessandro@collabora.com \
    --cc=festevam@denx.de \
    --cc=festevam@gmail.com \
    --cc=michael@amarulasolutions.com \
    --cc=sbabic@denx.de \
    --cc=tharvey@gateworks.com \
    --cc=u-boot@lists.denx.de \
    --cc=uboot-imx@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox