examples/api: improve determination of LOAD_ADDR

The current load address for the 'demo' binary does not work for
qemu_arm_defconfig.

The suitability of an address to load an ELF binary and run it does
not only depend on the architecture but also on the memory layout of
the board.

On most boards we can assume that 8 MiB of memory is available above
$loadaddr. So $loadaddr + 0x400000 should work there.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
Heinrich Schuchardt
2025-01-27 07:49:36 +01:00
committed by Tom Rini
parent 881f0b77dc
commit 1df9cbd70f

View File

@@ -5,26 +5,9 @@
# Provide symbol API_BUILD to signal that the API example is being built. # Provide symbol API_BUILD to signal that the API example is being built.
KBUILD_CPPFLAGS += -DAPI_BUILD KBUILD_CPPFLAGS += -DAPI_BUILD
ifeq ($(ARCH),powerpc) # Environment variable loadaddr is set from CONFIG_SYS_LOAD_ADDR.
LOAD_ADDR = 0x40000 # Run the examples 4 MiB above this address.
endif LOAD_ADDR:=${shell printf 0x%X $$(( $(CONFIG_SYS_LOAD_ADDR) + 0x400000 ))}
ifeq ($(ARCH),arm)
ifdef CONFIG_64BIT
LOAD_ADDR = 0x40400000
else
LOAD_ADDR = 0x1000000
endif
endif
ifeq ($(ARCH),mips)
ifdef CONFIG_64BIT
LOAD_ADDR = 0xffffffff80200000
else
LOAD_ADDR = 0x80200000
endif
endif
ifeq ($(ARCH),riscv)
LOAD_ADDR = 0x84000000
endif
# Resulting ELF and binary exectuables will be named demo and demo.bin # Resulting ELF and binary exectuables will be named demo and demo.bin
extra-y = demo extra-y = demo