summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2025-01-27 07:49:36 +0100
committerTom Rini <trini@konsulko.com>2025-02-04 11:57:36 -0600
commit1df9cbd70f56bdbb3b8b004d51c8eea7379a28b2 (patch)
tree7eb9f3caa35990c2152c3bef7c23c6d819023e0b
parent881f0b77dc8cfc454fb99ee183717d2538013665 (diff)
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>
-rw-r--r--examples/api/Makefile23
1 files changed, 3 insertions, 20 deletions
diff --git a/examples/api/Makefile b/examples/api/Makefile
index 722c7e45904..be97b8015bd 100644
--- a/examples/api/Makefile
+++ b/examples/api/Makefile
@@ -5,26 +5,9 @@
# Provide symbol API_BUILD to signal that the API example is being built.
KBUILD_CPPFLAGS += -DAPI_BUILD
-ifeq ($(ARCH),powerpc)
-LOAD_ADDR = 0x40000
-endif
-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
+# Environment variable loadaddr is set from CONFIG_SYS_LOAD_ADDR.
+# Run the examples 4 MiB above this address.
+LOAD_ADDR:=${shell printf 0x%X $$(( $(CONFIG_SYS_LOAD_ADDR) + 0x400000 ))}
# Resulting ELF and binary exectuables will be named demo and demo.bin
extra-y = demo