summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2017-02-23 09:21:54 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2017-03-02 14:03:43 +0100
commit0da84a9fe46ec562d800a2d82e8d85d4545ee86e (patch)
tree0ebc8d3e564a316eff8cade286fa3c82784f329c
parentf15bb506aa7d5d17c299fa8ef7330996a7393fce (diff)
downloadbarebox-0da84a9fe46ec562d800a2d82e8d85d4545ee86e.tar.gz
barebox-0da84a9fe46ec562d800a2d82e8d85d4545ee86e.tar.xz
filetype: Add image type for boot images used on Armada 370 and XP
-rw-r--r--common/filetype.c8
-rw-r--r--include/filetype.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/common/filetype.c b/common/filetype.c
index 8d7293347a..323da026af 100644
--- a/common/filetype.c
+++ b/common/filetype.c
@@ -63,6 +63,7 @@ static const struct filetype_str filetype_str[] = {
[filetype_exe] = { "MS-DOS executable", "exe" },
[filetype_mxs_bootstream] = { "Freescale MXS bootstream", "mxsbs" },
[filetype_socfpga_xload] = { "SoCFPGA prebootloader image", "socfpga-xload" },
+ [filetype_kwbimage_v1] = { "MVEBU kwbimage (v1)", "kwb" },
};
const char *file_type_to_string(enum filetype f)
@@ -292,6 +293,13 @@ enum filetype file_detect_type(const void *_buf, size_t bufsize)
return filetype_mips_barebox;
if (buf[0] == be32_to_cpu(0x534F4659))
return filetype_bpk;
+ if ((buf8[0] == 0x5a || buf8[0] == 0x69 || buf8[0] == 0x78 ||
+ buf8[0] == 0x8b || buf8[0] == 0x9c) &&
+ buf8[0x1] == 0 && buf8[0x2] == 0 && buf8[0x3] == 0 &&
+ buf8[0x8] == 1 && buf8[0x18] == 0 && buf8[0x1b] == 0 &&
+ buf8[0x1c] == 0 && buf8[0x1d] == 0 &&
+ (buf8[0x1e] == 0 || buf8[0x1e] == 1))
+ return filetype_kwbimage_v1;
if (bufsize < 64)
return filetype_unknown;
diff --git a/include/filetype.h b/include/filetype.h
index 65bd6efb7b..709c1869f7 100644
--- a/include/filetype.h
+++ b/include/filetype.h
@@ -38,6 +38,7 @@ enum filetype {
filetype_xz_compressed,
filetype_mxs_bootstream,
filetype_socfpga_xload,
+ filetype_kwbimage_v1,
filetype_max,
};