From 3436698b6a91a921d7091d141b01c396bdc25dc1 Mon Sep 17 00:00:00 2001 From: Ed Swierk Date: Mon, 13 Aug 2007 04:10:32 +0000 Subject: Fix bug in probe_28sf040() causing flash corruption on SST49LF160C verify. The first byte of the flash chip was read at the start of the function and later written back to address 0 if the flash chip was not identified as SST28SF040, which means most of the time. This write caused corruption of flash contents when verifying a SST49LF160C part. Signed-off-by: Ed Swierk Acked-by: Peter Stuge git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2744 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/flashrom/sst28sf040.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/util/flashrom/sst28sf040.c b/util/flashrom/sst28sf040.c index f2d8167de0..c8f71f814e 100644 --- a/util/flashrom/sst28sf040.c +++ b/util/flashrom/sst28sf040.c @@ -106,10 +106,7 @@ static __inline__ int write_sector_28sf040(volatile uint8_t *bios, int probe_28sf040(struct flashchip *flash) { volatile uint8_t *bios = flash->virtual_memory; - uint8_t id1, id2, tmp; - - /* save the value at the beginning of the Flash */ - tmp = *bios; + uint8_t id1, id2; *bios = RESET; myusec_delay(10); @@ -127,8 +124,6 @@ int probe_28sf040(struct flashchip *flash) if (id1 == flash->manufacture_id && id2 == flash->model_id) return 1; - /* if there is no SST28SF040, restore the original value */ - *bios = tmp; return 0; } -- cgit v1.2.3