[flashrom] [PATCH] Always read chip before writing, avoid emergency messages

David Hendricks dhendrix at google.com
Tue Oct 19 02:59:04 CEST 2010


Overall the patch looks good and didn't cause any failures with some testing
when I ran thru a basic set of read / erase / write / partial write tests.

On Fri, Oct 15, 2010 at 6:22 AM, Carl-Daniel Hailfinger <
c-d.hailfinger.devel.2006 at gmx.net> wrote:

> Always read the flash chip before writing. This will allow flashrom to
> skip erase of already-erased blocks and to skip write of blocks which
> already have the wanted contents.
>

Good idea in general IMHO, however as you mention a config option would be
nice.

Also, perhaps oldcontents should be written out if verification fails. That
could wait for a follow-up patch.

On Fri, Oct 15, 2010 at 6:22 AM, Carl-Daniel Hailfinger <
c-d.hailfinger.devel.2006 at gmx.net> wrote:

> -int handle_romentries(uint8_t *buffer, struct flashchip *flash)
> +int handle_romentries(struct flashchip *flash, uint8_t *oldcontents,
> uint8_t *newcontents)
>  {
>        int i;
>
> @@ -225,13 +225,12 @@
>        // normal will be updated and the rest will be kept.
>
>        for (i = 0; i < romimages; i++) {
> -
>                if (rom_entries[i].included)
>                        continue;
>
> -               flash->read(flash, buffer + rom_entries[i].start,
> -                           rom_entries[i].start,
> -                           rom_entries[i].end - rom_entries[i].start + 1);
> +               memcpy(newcontents + rom_entries[i].start,
> +                      oldcontents + rom_entries[i].start,
> +                      rom_entries[i].end - rom_entries[i].start + 1);
>        }
>

As discussed on IRC, this function can probably use a better name and
comments... in another patch :-)

On Fri, Oct 15, 2010 at 6:22 AM, Carl-Daniel Hailfinger <
c-d.hailfinger.devel.2006 at gmx.net> wrote:

> @@ -1634,33 +1651,71 @@
>                }
>        }
>
> +       newcontents = (uint8_t *) calloc(size, sizeof(char));
>

+1 on Stefan's comment here... malloc / memset is probably considered better
form by some. But that's just a matter of preference.

-- 
David Hendricks (dhendrix)
Systems Software Engineer, Google Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.flashrom.org/pipermail/flashrom/attachments/20101018/cf83b2c4/attachment.html>


More information about the flashrom mailing list