Ticket #13733: 031-mtd-bcm47xxpart_detect_board_data_partition.patch

File 031-mtd-bcm47xxpart_detect_board_data_partition.patch, 1.0 KB (added by SpOeK, 4 years ago)
  • drivers/mtd/bcm47xxpart.c

    old new  
    6767        int trx_part = -1; 
    6868        int last_trx_part = -1; 
    6969        int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, }; 
    70         bool found_nvram = false; 
     70        bool found_nvram = false, found_board_data = false; 
    7171 
    7272        if (blocksize <= 0x10000) 
    7373                blocksize = 0x10000; 
     
    112112                if (buf[0x100 / 4] == BOARD_DATA_MAGIC) { 
    113113                        bcm47xxpart_add_part(&parts[curr_part++], "board_data", 
    114114                                             offset, MTD_WRITEABLE); 
     115                        found_board_data = true; 
    115116                        continue; 
    116117                } 
    117118 
     
    205206 
    206207                /* Standard NVRAM */ 
    207208                if (buf[0] == NVRAM_HEADER) { 
     209                        /* Guess "board_data" it's the previous block to NVRAM */ 
     210                        if (!found_board_data) 
     211                                bcm47xxpart_add_part(&parts[curr_part++], "board_data", 
     212                                                     master->size - (blocksize * 2), MTD_WRITEABLE); 
     213 
    208214                        bcm47xxpart_add_part(&parts[curr_part++], "nvram", 
    209215                                             master->size - blocksize, 0); 
    210216                        found_nvram = true;