[PATCH 02/10] mach-sc5xx: Add binman support
Greg Malysa
malysagreg at gmail.com
Mon Jun 2 21:44:40 CEST 2025
From: Utsav Agarwal <utsav.agarwal at analog.com>
Binman is optionally supported for Analog Devices sc5xx if Yocto is not
being used to create and assemble system images. The spl LDR is
generated locally but other artifacts such as kernel FIT image, stage 2
bootloader LDR, and root file system are built externally and must be
supplied to binman if used.
Binman is enabled by selecting the SC5XX_USE_BINMAN config symbol and
the image structure is included in the shared sc5xx device tree.
Signed-off-by: Greg Malysa <malysagreg at gmail.com>
Signed-off-by: Utsav Agarwal <utsav.agarwal at analog.com>
---
arch/arm/dts/sc5xx.dtsi | 52 +++++++++++++++++++++++++++++++++++++
arch/arm/mach-sc5xx/Kconfig | 33 +++++++++++++++++++++++
2 files changed, 85 insertions(+)
diff --git a/arch/arm/dts/sc5xx.dtsi b/arch/arm/dts/sc5xx.dtsi
index 3f440dac29f..b4de1b51bb9 100644
--- a/arch/arm/dts/sc5xx.dtsi
+++ b/arch/arm/dts/sc5xx.dtsi
@@ -10,6 +10,58 @@
#address-cells = <1>;
#size-cells = <1>;
+ chosen {
+ stdout-path = "serial0:115200";
+ bootph-pre-ram;
+ };
+
+ aliases {
+ spi2 = "/spi2";
+ serial0 = &uart0;
+ bootph-pre-ram;
+ };
+
+#ifdef CONFIG_SC5XX_USE_BINMAN
+ binman {
+ filename = CONFIG_SC5XX_BINMAN_FILENAME;
+ stage1-boot {
+ offset = <CONFIG_SC5XX_UBOOT_SPL_OFFSET>;
+ type = "blob-ext";
+ filename = "spl/u-boot-spl.ldr";
+ };
+
+ /* since falcon mode can jump from SPL to OS directly
+ * full u-boot is optional
+ *
+ * @todo: review if we can say this given support has
+ * not yet been upstreamed. Otherwise we might have to
+ * invoke binman only for full u-boot.
+ */
+ stage2-boot {
+ offset = <CONFIG_SC5XX_UBOOT_OFFSET>;
+ type = "blob-ext";
+ filename = "u-boot.ldr";
+ optional;
+ };
+
+#ifdef CONFIG_SC5XX_FITIMAGE_NAME
+ fitImage {
+ offset = <CONFIG_SC5XX_FITIMAGE_OFFSET>;
+ type = "blob-ext";
+ filename = CONFIG_SC5XX_FITIMAGE_NAME;
+ };
+#endif
+
+#ifdef CONFIG_SC5XX_ROOTFS_NAME
+ rfs {
+ offset = <CONFIG_SC5XX_ROOTFS_OFFSET>;
+ type = "blob-ext";
+ filename = CONFIG_SC5XX_ROOTFS_NAME;
+ };
+#endif
+ };
+#endif
+
clocks {
sys_clkin0: sys_clkin0 {
compatible = "fixed-clock";
diff --git a/arch/arm/mach-sc5xx/Kconfig b/arch/arm/mach-sc5xx/Kconfig
index 70c7e5e0631..a75c4207f52 100644
--- a/arch/arm/mach-sc5xx/Kconfig
+++ b/arch/arm/mach-sc5xx/Kconfig
@@ -147,6 +147,39 @@ config SC5XX_LOADADDR
help
The default load address for u-boot.
+menu "Binman configuration"
+config SC5XX_USE_BINMAN
+ bool "Use binman for final image"
+ select BINMAN
+ help
+ If you wish to use binman to assemble an image, say 'Y' here.
+ This will enable binman-specific sections in the device tree.
+
+config SC5XX_BINMAN_FILENAME
+ string "Image name"
+ default "sc5xx-image.img"
+ depends on SC5XX_USE_BINMAN
+ help
+ The name of the image that will be created by binman.
+ This is used to create the final image.
+
+config SC5XX_FITIMAGE_NAME
+ string "FitImage name"
+ default "fitImage"
+ depends on SC5XX_USE_BINMAN
+ help
+ The name of the fitImage to be packed by binman.
+ This is used to create the final image.
+
+config SC5XX_ROOTFS_NAME
+ string "RootFS name"
+ default "rootfs"
+ depends on SC5XX_USE_BINMAN
+ help
+ The name of the rootfs to be packed by binman.
+ This is used to create the final image.
+endmenu
+
config ADI_IMAGE
string "ADI fitImage type"
help
--
2.45.2
More information about the U-Boot
mailing list