The global.endianness variable makes it possible to determine current endian mode from command line or from script on bi-endian capable system. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> --- common/globalvar.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/common/globalvar.c b/common/globalvar.c index a55b38b00f..8bb5015ce4 100644 --- a/common/globalvar.c +++ b/common/globalvar.c @@ -641,6 +641,8 @@ int globalvar_add_simple_ip(const char *name, IPaddr_t *ip) static int globalvar_init(void) { + const char *endianness; + register_device(&global_device); if (IS_ENABLED(CONFIG_NVVAR)) @@ -651,6 +653,16 @@ static int globalvar_init(void) if (strlen(buildsystem_version_string) > 0) globalvar_add_simple("buildsystem.version", buildsystem_version_string); +#ifdef __BIG_ENDIAN + endianness = "big"; +#elif defined(__LITTLE_ENDIAN) + endianness = "little"; +#else +#error "could not determine byte order" +#endif + + globalvar_add_simple("endianness", endianness); + return 0; } pure_initcall(globalvar_init); @@ -658,6 +670,7 @@ pure_initcall(globalvar_init); BAREBOX_MAGICVAR(global.version, "The barebox version"); BAREBOX_MAGICVAR(global.buildsystem.version, "version of buildsystem barebox was built with"); +BAREBOX_MAGICVAR(global.endianness, "The barebox endianness"); /** * nvvar_save - save NV variables to persistent environment -- 2.31.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox