baytrail: nvm: use proper types for checking erase
The current byte value was being converted to an int when checking against literal 0xff. As the type of the current pointer was char (signed) it was sign extending the value leading to 0xffffffff != 0xff. Fix this by using an unsigned type and using a constant type for expected erase value. BUG=chrome-os-partner:24916 BRANCH=baytrail TEST=Booted after chromeos-firmwareupdate. Noted that MRC cache doesn't think the erased region isn't erased. Change-Id: If95425fe26da050acb25f52bea060e288ad3633c Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/182154 Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/5044 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
parent
931e590745
commit
b013fff5a3
|
@ -54,10 +54,11 @@ static inline uint32_t to_flash_offset(void *p)
|
|||
|
||||
int nvm_is_erased(const void *start, size_t size)
|
||||
{
|
||||
const char *cur = start;
|
||||
const uint8_t *cur = start;
|
||||
const uint8_t erased_value = 0xff;
|
||||
|
||||
while (size > 0) {
|
||||
if (*cur != 0xff)
|
||||
if (*cur != erased_value)
|
||||
return 0;
|
||||
cur++;
|
||||
size--;
|
||||
|
|
Loading…
Reference in New Issue