MIPS architecture supports both little- and big-endian modes. It's handy to have means to determine endianness of barebox image. This patch adds necessary record into imd block. Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> --- common/Kconfig | 6 ++++++ common/imd-barebox.c | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/common/Kconfig b/common/Kconfig index 667b0a1e79..f8d99bd48c 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -730,6 +730,12 @@ config IMD select CRC32 bool "barebox metadata support" +config IMD_ENDIANNESS + bool "add endianness record to metadata" + depends on IMD + depends on SYS_SUPPORTS_LITTLE_ENDIAN && SYS_SUPPORTS_BIG_ENDIAN + default y + choice prompt "console support" default CONSOLE_FULL diff --git a/common/imd-barebox.c b/common/imd-barebox.c index e11fdca845..7877c8de39 100644 --- a/common/imd-barebox.c +++ b/common/imd-barebox.c @@ -23,6 +23,16 @@ __BAREBOX_IMD_SECTION(.barebox_imd_end) = { .type = cpu_to_le32(IMD_TYPE_END), }; +#ifdef CONFIG_IMD_ENDIANNESS +#ifdef CONFIG_CPU_LITTLE_ENDIAN +#define IMD_ENDIANNESS "little" +#else +#define IMD_ENDIANNESS "big" +#endif +BAREBOX_IMD_TAG_STRING(imd_endianness_tag, IMD_TYPE_PARAMETER, + "endianness=" IMD_ENDIANNESS, 1); +#endif /* CONFIG_IMD_ENDIANNESS */ + BAREBOX_IMD_TAG_STRING(imd_build_tag, IMD_TYPE_BUILD, UTS_VERSION, 1); BAREBOX_IMD_TAG_STRING(imd_release_tag, IMD_TYPE_RELEASE, UTS_RELEASE, 1); BAREBOX_IMD_TAG_STRING(imd_buildsystem_version_tag, IMD_TYPE_BUILDSYSTEM, BUILDSYSTEM_VERSION, 1); -- 2.33.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox