From: Utsav Agarwal <utsav.agar...@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 <malysag...@gmail.com> Signed-off-by: Utsav Agarwal <utsav.agar...@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