target/linux/*: kmod-fs-ext{2,3} RIP
[openwrt/svn-archive/archive.git] / target / linux / brcm47xx / patches-3.10 / 023-mtd-bcm47xxpart-find-boot-partition-by-CFE-magic.patch
1 From 4f8aaf72287578c846ed7ac8c6114aacbf416e45 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
3 Date: Sat, 21 Dec 2013 19:39:11 +0100
4 Subject: [PATCH] mtd: bcm47xxpart: find boot partition by CFE magic
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 Some devices have even nicer-to-recognize CFE thanks to the magic.
10
11 Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
12 Signed-off-by: Brian Norris <computersforpeace@gmail.com>
13 ---
14 drivers/mtd/bcm47xxpart.c | 8 +++++---
15 1 file changed, 5 insertions(+), 3 deletions(-)
16
17 --- a/drivers/mtd/bcm47xxpart.c
18 +++ b/drivers/mtd/bcm47xxpart.c
19 @@ -23,10 +23,11 @@
20 * Amount of bytes we read when analyzing each block of flash memory.
21 * Set it big enough to allow detecting partition and reading important data.
22 */
23 -#define BCM47XXPART_BYTES_TO_READ 0x404
24 +#define BCM47XXPART_BYTES_TO_READ 0x4e8
25
26 /* Magics */
27 #define BOARD_DATA_MAGIC 0x5246504D /* MPFR */
28 +#define CFE_MAGIC 0x43464531 /* 1EFC */
29 #define FACTORY_MAGIC 0x59544346 /* FCTY */
30 #define POT_MAGIC1 0x54544f50 /* POTT */
31 #define POT_MAGIC2 0x504f /* OP */
32 @@ -102,8 +103,9 @@ static int bcm47xxpart_parse(struct mtd_
33 continue;
34 }
35
36 - /* CFE has small NVRAM at 0x400 */
37 - if (buf[0x400 / 4] == NVRAM_HEADER) {
38 + /* Magic or small NVRAM at 0x400 */
39 + if ((buf[0x4e0 / 4] == CFE_MAGIC && buf[0x4e4 / 4] == CFE_MAGIC) ||
40 + (buf[0x400 / 4] == NVRAM_HEADER)) {
41 bcm47xxpart_add_part(&parts[curr_part++], "boot",
42 offset, MTD_WRITEABLE);
43 continue;