mtd: bcm47xxpart: detect "factory" partition
authorRafał Miłecki <zajec5@gmail.com>
Mon, 21 Oct 2013 20:35:34 +0000 (22:35 +0200)
committerBrian Norris <computersforpeace@gmail.com>
Thu, 7 Nov 2013 07:32:58 +0000 (23:32 -0800)
A new type of partition with magic FCTY was found on Huawei E970:
46 43 54 59 4b 51 37 4e  41 42 31 38 41 32 39 30  |FCTYKQ7NAB18A290|

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/bcm47xxpart.c

index a737450826eca55e4e283963a9c14bac9ec67450..7a6384b0962a9de2c92dffb81f1fc45d6d89a490 100644 (file)
@@ -27,6 +27,7 @@
 
 /* Magics */
 #define BOARD_DATA_MAGIC               0x5246504D      /* MPFR */
+#define FACTORY_MAGIC                  0x59544346      /* FCTY */
 #define POT_MAGIC1                     0x54544f50      /* POTT */
 #define POT_MAGIC2                     0x504f          /* OP */
 #define ML_MAGIC1                      0x39685a42
@@ -118,6 +119,13 @@ static int bcm47xxpart_parse(struct mtd_info *master,
                        continue;
                }
 
+               /* Found on Huawei E970 */
+               if (buf[0x000 / 4] == FACTORY_MAGIC) {
+                       bcm47xxpart_add_part(&parts[curr_part++], "factory",
+                                            offset, MTD_WRITEABLE);
+                       continue;
+               }
+
                /* POT(TOP) */
                if (buf[0x000 / 4] == POT_MAGIC1 &&
                    (buf[0x004 / 4] & 0xFFFF) == POT_MAGIC2) {