Ver Fonte

brcm47xx: check for .ELF header in partition parser

The image format for the wgt634u is different from the normal format.
Without this patch the partition parser detects a 128kb bigger
partition after every update.

This closes #11420

Thank you b.sander for the patch.

SVN-Revision: 33935
Hauke Mehrtens há 13 anos atrás
pai
commit
6a699a8ae8

+ 8 - 2
target/linux/brcm47xx/patches-3.3/050-mtd-add-bcm47xx-part-parser.patch

@@ -26,7 +26,7 @@
  obj-$(CONFIG_MTD_CHAR)		+= mtdchar.o
 --- /dev/null
 +++ b/drivers/mtd/bcm47xxpart.c
-@@ -0,0 +1,542 @@
+@@ -0,0 +1,548 @@
 +/*
 + *  Copyright (C) 2006 Felix Fietkau <[email protected]>
 + *  Copyright (C) 2005 Waldemar Brodkorb <[email protected]>
@@ -96,6 +96,11 @@
 +	u32 offsets[TRX_MAX_OFFSET];	/* Offsets of partitions from start of header */
 +};
 +
++/* for WGT634U search the ELF-header of
++ * the kernel decompressor instead of TRX
++ */
++#define WGT634U_ELF_MAGIC	0x464c457f /*  ".ELF"  */
++
 +/* for Edimax Print servers which use an additional header
 + * then the firmware on flash looks like :
 + * EDIMAX HEADER | TRX HEADER
@@ -149,7 +154,8 @@
 +		}
 +
 +		/* found a TRX header */
-+		if (le32_to_cpu(trx->magic) == TRX_MAGIC)
++		if (le32_to_cpu(trx->magic) == TRX_MAGIC ||
++		    le32_to_cpu(trx->magic) == WGT634U_ELF_MAGIC)
 +			goto found;
 +	}
 +