From 0c0407178e0f768de17a6c71dbb3057cdd270490 Mon Sep 17 00:00:00 2001 From: nbd Date: Tue, 15 May 2007 18:41:48 +0000 Subject: Fix broadcom squashfs images: We switched over to appending the jffs2 eof mark to the squashfs images, but since the squashfs is not always aligned to eraseblocksize, the eof mark landed in the wrong place. This commit adds an extra flag to the trx utility that can append extra data to a partition with alignment. This is used to place the jffs2 eof mark at the right offset. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7253 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- tools/firmware-utils/src/trx.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/firmware-utils/src/trx.c b/tools/firmware-utils/src/trx.c index 787ffa894..1131238a4 100644 --- a/tools/firmware-utils/src/trx.c +++ b/tools/firmware-utils/src/trx.c @@ -88,7 +88,7 @@ int main(int argc, char **argv) char *ofn = NULL; char *buf; char *e; - int c, i; + int c, i, append; size_t n; uint32_t cur_len; unsigned long maxlen = TRX_MAX_LEN; @@ -110,11 +110,15 @@ int main(int argc, char **argv) in = NULL; i = 0; - while ((c = getopt(argc, argv, "-:o:m:a:b:f:")) != -1) { + while ((c = getopt(argc, argv, "-:o:m:a:b:f:A:")) != -1) { switch (c) { + case 'A': + append = 1; + /* fall through */ case 'f': case 1: - p->offsets[i++] = STORE32_LE(cur_len); + if (!append) + p->offsets[i++] = STORE32_LE(cur_len); if (!(in = fopen(optarg, "r"))) { fprintf(stderr, "can not open \"%s\" for reading\n", optarg); @@ -134,6 +138,7 @@ int main(int argc, char **argv) n += ROUND - (n & (ROUND-1)); } cur_len += n; + append = 0; break; case 'o': -- cgit v1.2.3