diff options
author | Antony Pavlov <antonynpavlov@gmail.com> | 2022-02-10 16:46:39 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2022-02-11 11:35:22 +0100 |
commit | 149932efdf368adb4abb2594e3d33899315449a1 (patch) | |
tree | 381fca05f29621db2f2cbb02fdfb554cdd885ebc | |
parent | 3a99d7573a7bc7669f6bf035824e8be772c43061 (diff) | |
download | barebox-149932efdf368adb4abb2594e3d33899315449a1.tar.gz barebox-149932efdf368adb4abb2594e3d33899315449a1.tar.xz |
imd: add optional endianness= parameter for bi-endian systems
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@gmail.com>
Link: https://lore.barebox.org/20220210134639.341801-1-antonynpavlov@gmail.com
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | common/Kconfig | 6 | ||||
-rw-r--r-- | common/imd-barebox.c | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/common/Kconfig b/common/Kconfig index dba6aa43fd..f7a6a96e87 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); |