Skip to content

Commit

Permalink
build: Revive and update LDR format support
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Nathan Barrett-Morrison <[email protected]>
Signed-off-by: Ian Roberts <[email protected]>
Signed-off-by: Greg Malysa <[email protected]>
  • Loading branch information
gmalysa authored and trini committed Apr 10, 2024
1 parent e8ff287 commit bcdd023
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
14 changes: 14 additions & 0 deletions Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions scripts/Makefile.spl
Original file line number Diff line number Diff line change
Expand Up @@ -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)) $< $@

Expand Down

0 comments on commit bcdd023

Please sign in to comment.