]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
build: Revive and update LDR format support
authorGreg Malysa <greg.malysa@timesys.com>
Wed, 20 Mar 2024 02:16:07 +0000 (22:16 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 10 Apr 2024 15:34:53 +0000 (09:34 -0600)
LDR format files are used primarily by Analog Devices processors but may
be of interest to other vendors. Previously support existed for this
format as part of the U-Boot build, but it has been unmaintained and
unused for a long time. In preparation for adding support for modern ADI
processors that use LDR, modernize the LDR support:

- Introduce CONFIG_LDR_CPU as the CPU string recognized by the LDR tool
  may not be the same as CONFIG_CPU
- Add an SPL target that repackages u-boot-spl inside an LDR file

An almost identical target for packaging u-boot into an LDR file already
exists and did not need to be created.

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Ian Roberts <ian.roberts@timesys.com>
Signed-off-by: Greg Malysa <greg.malysa@timesys.com>
Kconfig
Makefile
scripts/Makefile.spl

diff --git a/Kconfig b/Kconfig
index 75f9563ce6c617ac3ded956f347e49a2ad0abceb..82df59f176ec5d73f851558d1d8a50d7838568c9 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -715,6 +715,20 @@ config SYS_CLK_FREQ
          A static value for the CPU frequency.  Note that if not required
          for a given SoC, this can be left at 0.
 
+config HAS_LDR
+       bool
+       help
+         Enables building .ldr targets for U-Boot and SPL. This does not
+         automatically build any additional targets with make or buildman.
+
+config LDR_CPU
+       string "CPU name to be passed to LDR utility."
+       depends on HAS_LDR
+       help
+         Set the CPU name for the -T parameter in the LDR utility.  This is
+         generally used on processors from Analog Devices, but may be also
+         be useful for other vendors.
+
 source "api/Kconfig"
 
 endmenu                # General setup
index 1069adca91e45b256df9d180385a728b22f96061..7321fe1499e6cc50d10e184b770e84c54c413f03 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1360,7 +1360,7 @@ u-boot-nodtb.bin: u-boot FORCE
 
 u-boot.ldr:    u-boot
                $(CREATE_LDR_ENV)
-               $(LDR) -T $(CONFIG_CPU) -c $@ $< $(LDR_FLAGS)
+               $(LDR) -T $(CONFIG_LDR_CPU) -c $@ $< $(LDR_FLAGS)
                $(BOARD_SIZE_CHECK)
 
 # binman
index 60db38d5bdddf7c23c498e060fc11f9f6792ce3e..1868f1beef66986e5a03318ce6020d44ef1b46a3 100644 (file)
@@ -381,6 +381,11 @@ $(obj)/$(BOARD)-spl.bin: $(obj)/u-boot-spl.bin
        $(objtree)/tools/mkexynosspl) $(VAR_SIZE_PARAM) $< $@
 endif
 
+$(obj)/u-boot-spl.ldr: $(obj)/u-boot-spl
+       $(CREATE_LDR_ENV)
+       $(LDR) -T $(CONFIG_LDR_CPU) -c $@ $< $(LDR_FLAGS)
+       $(BOARD_SIZE_CHECK)
+
 quiet_cmd_objcopy = OBJCOPY $@
 cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@