summaryrefslogtreecommitdiff
path: root/sst_fwhub.c
diff options
context:
space:
mode:
authorstepan <stepan@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2006-11-07 13:48:46 +0000
committerstepan <stepan@2b7e53f0-3cfb-0310-b3e9-8179ed1497e1>2006-11-07 13:48:46 +0000
commitd713b1408b40173ae37d8dd8d22851c2e2f956bc (patch)
tree48ddb64a3cb3937db78f44c7c6732c951f197890 /sst_fwhub.c
parent10b267ea726e8c113c5cd1af57ed6959fcbb8e47 (diff)
downloadflashrom-d713b1408b40173ae37d8dd8d22851c2e2f956bc.tar.gz
Original v2 revision: 2494
Instead of checking the first byte only, the whole part is checked now. This will detect any improper erase, closes #31 Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@71 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'sst_fwhub.c')
-rw-r--r--sst_fwhub.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/sst_fwhub.c b/sst_fwhub.c
index e835a1a..8b62e7f 100644
--- a/sst_fwhub.c
+++ b/sst_fwhub.c
@@ -95,14 +95,17 @@ int write_sst_fwhub(struct flashchip *flash, uint8_t *buf)
flash->page_size;
volatile uint8_t *bios = flash->virt_addr;
- // Do we want block wide erase?
+ // FIXME: We want block wide erase instead of ironing the whole chip
erase_sst_fwhub(flash);
- // FIXME: This test is not sufficient!
- if (*bios != 0xff) {
- printf("ERASE FAILED\n");
- return -1;
+ // dumb check if erase was successful.
+ for (i=0; i < total_size; i++) {
+ if (bios[i] != 0xff) {
+ printf("ERASE FAILED\n");
+ return -1;
+ }
}
+
printf("Programming Page: ");
for (i = 0; i < total_size / page_size; i++) {
printf("%04d at address: 0x%08x", i, i * page_size);