[PATCH V2 1/4] mtd: bcm47xxpart.c: NVRAM partition handling
Rafał Miłecki
zajec5 at gmail.com
Sun Jul 26 00:01:50 PDT 2015
On 25 July 2015 at 16:37, Joseph East <eastyjr at gmail.com> wrote:
> ---
You didn't describe your change, you didn't signed off the patch.
> drivers/mtd/bcm47xxpart.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c
> index c0720c1..55a1462 100644
> --- a/drivers/mtd/bcm47xxpart.c
> +++ b/drivers/mtd/bcm47xxpart.c
> @@ -95,6 +95,7 @@ static int bcm47xxpart_parse(struct mtd_info *master,
> int trx_part = -1;
> int last_trx_part = -1;
> int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, };
> + bool found_nvram = false;
>
> /*
> * Some really old flashes (like AT45DB*) had smaller erasesize-s, but
> @@ -288,12 +289,23 @@ static int bcm47xxpart_parse(struct mtd_info *master,
> if (buf[0] == NVRAM_HEADER) {
> bcm47xxpart_add_part(&parts[curr_part++], "nvram",
> master->size - blocksize, 0);
> + found_nvram = true;
> break;
> }
> }
>
> kfree(buf);
>
> + if (!found_nvram) {
> + pr_warning("Cannot find a nvram partition, reserving last two blocks\n");
> + bcm47xxpart_add_part(&parts[curr_part++], "nvram_guess",
> + master->size - blocksize * 2, MTD_WRITEABLE);
> + for (i = 0; i < curr_part; i++) {
> + if (parts[i].size + parts[i].offset == master->size)
> + parts[i].offset -= blocksize * 2;
> + }
> + }
> +
I'm not asking "what for", because it should be in a commit message.
Waiting for it.
One problem I can see: it won't work well on devices with multiple
flashes. Is it expected for NVRAM to be located only on a one flash
memory.
--
Rafał
More information about the linux-mtd
mailing list