Commit 4f8aaf72287578c846ed7ac8c6114aacbf416e45

Authored by Rafał Miłecki
Committed by Brian Norris
1 parent 7f11b4d411

mtd: bcm47xxpart: find boot partition by CFE magic

Some devices have even nicer-to-recognize CFE thanks to the magic.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>

Showing 1 changed file with 5 additions and 3 deletions Side-by-side Diff

drivers/mtd/bcm47xxpart.c
... ... @@ -23,10 +23,11 @@
23 23 * Amount of bytes we read when analyzing each block of flash memory.
24 24 * Set it big enough to allow detecting partition and reading important data.
25 25 */
26   -#define BCM47XXPART_BYTES_TO_READ 0x404
  26 +#define BCM47XXPART_BYTES_TO_READ 0x4e8
27 27  
28 28 /* Magics */
29 29 #define BOARD_DATA_MAGIC 0x5246504D /* MPFR */
  30 +#define CFE_MAGIC 0x43464531 /* 1EFC */
30 31 #define FACTORY_MAGIC 0x59544346 /* FCTY */
31 32 #define POT_MAGIC1 0x54544f50 /* POTT */
32 33 #define POT_MAGIC2 0x504f /* OP */
... ... @@ -102,8 +103,9 @@
102 103 continue;
103 104 }
104 105  
105   - /* CFE has small NVRAM at 0x400 */
106   - if (buf[0x400 / 4] == NVRAM_HEADER) {
  106 + /* Magic or small NVRAM at 0x400 */
  107 + if ((buf[0x4e0 / 4] == CFE_MAGIC && buf[0x4e4 / 4] == CFE_MAGIC) ||
  108 + (buf[0x400 / 4] == NVRAM_HEADER)) {
107 109 bcm47xxpart_add_part(&parts[curr_part++], "boot",
108 110 offset, MTD_WRITEABLE);
109 111 continue;