diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2016-01-28 22:38:30 +0000 |
---|---|---|
committer | Rafał Miłecki <zajec5@gmail.com> | 2016-01-28 22:38:30 +0000 |
commit | b4468a0d61b3370625a7b0a905e0f4cd72bba7f0 (patch) | |
tree | cd87a1d6f1140318d338a5c698325cc4302cf677 /package/system | |
parent | 92443f7041bddae0a6af54f924370a16f0472e7c (diff) | |
download | upstream-b4468a0d61b3370625a7b0a905e0f4cd72bba7f0.tar.gz upstream-b4468a0d61b3370625a7b0a905e0f4cd72bba7f0.tar.bz2 upstream-b4468a0d61b3370625a7b0a905e0f4cd72bba7f0.zip |
mtd: allow writing Seama files to "firmware" on Broadcom targets
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 48534
Diffstat (limited to 'package/system')
-rw-r--r-- | package/system/mtd/src/trx.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/package/system/mtd/src/trx.c b/package/system/mtd/src/trx.c index 245ee7630a..5763917827 100644 --- a/package/system/mtd/src/trx.c +++ b/package/system/mtd/src/trx.c @@ -44,6 +44,8 @@ struct trx_header { uint32_t offsets[3]; /* Offsets of partitions from start of header */ }; +#define SEAMA_MAGIC 0x17a4a35e + #if __BYTE_ORDER == __BIG_ENDIAN #define STORE32_LE(X) ((((X) & 0x000000FF) << 24) | (((X) & 0x0000FF00) << 8) | (((X) & 0x00FF0000) >> 8) | (((X) & 0xFF000000) >> 24)) #elif __BYTE_ORDER == __LITTLE_ENDIAN @@ -118,6 +120,10 @@ trx_check(int imagefd, const char *mtd, char *buf, int *len) return 0; } + /* Allow writing Seama files to firmware without an extra validation */ + if (trx->magic == SEAMA_MAGIC) + return 1; + if (trx->magic != TRX_MAGIC || trx->len < sizeof(struct trx_header)) { if (quiet < 2) { fprintf(stderr, "Bad trx header\n"); |