[flashrom] [PATCH] Check if an erase is needed to write
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Thu Sep 17 12:41:57 CEST 2009
On 16.09.2009 23:40, Stefan Reinauer wrote:
> Carl-Daniel Hailfinger wrote:
>
>> On 16.09.2009 19:07, Stefan Reinauer wrote:
>>
>>
>>> Carl-Daniel Hailfinger wrote:
>>>
>>>
>>>
>>>> For optimal partial reflashing, we have to find out which parts of the
>>>> chip can be written without erase. For that, the only criterion (except
>>>> a limit on the number of writes for very old chips) is whether the write
>>>> will only clear bits (set them to 0).
>>>> If (current&new==new) we can skip the erase.
>>>> If any bit would have to be set to 1, we need to erase.
>>>>
>>>>
>>>>
>>>>
>>>>
>>> Is that sufficient? Ie is it always ok to skip an erase if we're only
>>> clearing bits?
>>>
>>>
>>>
>> It depends on the chip, but given that the following appears in the ICH7
>> and all later datasheets as absolute flash requirement, I'm positive
>> most current flash chips support it.
>>
>> -----------------
>> The system BIOS and Intel® Active Management Technology firmware usage
>> models
>> require that the serial flash device support multiple writes (minimum of
>> 512 writes) to
>> a page (256 bytes) without requiring a preceding erase command.
>> -----------------
>>
>>
> That means you can theoretically write it twice (2*256 byte writes on an
> x8 device) without erasing it.
> I don't think this is something we should rely on.
>
> It also says serial flash device, which implies that LPC/FWH might
> behave differently.
>
How should we handle the case where a chip is already erased? Do we
erase anyway? After all, we can't know if someone already wrote 0xff there.
Regards,
Carl-Daniel
--
http://www.hailfinger.org/
More information about the flashrom
mailing list