[U-Boot] [PATCH v2 0/2] improve hello_world standalone application for arm

Max Krummenacher max.oss.09 at gmail.com
Mon Aug 14 16:27:18 UTC 2017

This series addresses
- hardcoded load address, use LOADADDR if available as the entry point
- fix thumb build, jumping with 'go' to the entry point expects arm code

Note that in addition to the two fixes I've seen random freezes
or 'random' printed stuff when using an early linaro gcc 6 compiler.
Adding an initialized variable helped in that case
static int dummy_var_in_text = 1;
I assume that this forces alignment of some linker sections.
(e.g. I see that __bss_start points to 0x1201027e, with the variable
this moves to 0x12010280)

However with the current linaro compilers this does not happen so I
don't propose a patch for this issue.
Linaro GCC 5.4-2017.05 5.4.1 20170404
Linaro GCC 6.3-2017.05 6.3.1 20170404
Linaro GCC 7.1-2017.05 7.1.1 20170510

This series is available at http://git.toradex.com/cgit/u-boot-toradex.git/log/?h=for-next

Changes in v2:
- Don't confuse loadaddr with entry point as reported by Wolfgang.
- Change the assembly magic to a C function and use __attribute__
  to force arm instruction set.
- Keep the entry point name hello_world as reported by Wolfgang.

Max Krummenacher (2):
  arm: use LOADADDR as the default for STANDALONE_LOAD_ADDR
  hello_world.c: fix entry point in case of arm thumb binary

 arch/arm/config.mk                |  4 ++++
 doc/README.standalone             |  2 +-
 examples/standalone/hello_world.c | 18 ++++++++++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)


More information about the U-Boot mailing list