return NG;
}
-static void bootblock_lockout(const struct flash_order *d)
-{
- u8 dummy[3];
- command_set(d, PP);
- d->read(0x8000 ,3, dummy);
- printf("%02x %02x %02x \n", dummy[0], dummy[1], dummy[2]);
- d->read(0xfff2 ,1, dummy);
- command_set(d, PRODUCTID_EXIT);
-}
/*
---- erase ----
*/
static void flash_erase_chip(const struct flash_order *d)
{
- if(0) bootblock_lockout(d);
command_set(d, ERASE_CHIP);
toggle_check(d, d->command_2aaa);
Sleep(200); //Tec 0.2 sec
/*
---- program ----
*/
+#define dprintf if(DEBUG==1) printf
static int program_byte(const struct flash_order *d, long address, const u8 *data, long length)
{
int retry = 0;
command_set(d, PROTECT_DISABLE);
d->flash_write(address, *data);
if(toggle_check(d, address) == NG){
- if(DEBUG == 1){
- printf("%s NG\n", __FUNCTION__);
- }
+ dprintf("%s NG\n", __FUNCTION__);
return NG;
}
}
length--;
retry = 0;
}else if(retry > 8){
- printf("%s %06x error\n", __FUNCTION__, (int) address);
+ dprintf("%s %06x error\n", __FUNCTION__, (int) address);
address++;
data++;
length--;
retry = 0;
+ if(DEBUG == 0){
+ return NG;
+ }
}else{
retry++;
}
int ret = toggle_check(d, toggle_address);
if(0){
data--;
- address -= 1;
polling_check(d, address - 1, *data);
}
static void w49f002_write(const struct flash_order *d, long address, long length, const struct memory *m)
{
program_byte(d, address, m->data, length);
- printf("write %s 0x%06x done\n", m->name, (int) m->offset);
+// dprintf("write %s 0x%06x done\n", m->name, (int) m->offset);
}
d->read(a, d->pagesize, cmp);
if(memcmp(cmp, dd, d->pagesize) != 0){
ngblock++;
- printf("write %s 0x%06x\n", m->name, (int) offset);
+ dprintf("write %s 0x%06x\n", m->name, (int) offset);
int result = program_pagewrite(d, a, dd, d->pagesize);
if(result == NG){
printf("%s: write error\n", __FUNCTION__);
offset += d->pagesize;
i -= d->pagesize;
}
- printf("%s 0x%06x, ngblock %d\n", m->name, (int) m->offset, ngblock);
+ dprintf("%s 0x%06x, ngblock %d\n", m->name, (int) m->offset, ngblock);
if(retry >= 3 && ngblock >= 16){
- printf("skip\n");
+ dprintf("skip\n");
break;
}
else if(retry > 12){
- printf("skip\n");
+ dprintf("skip\n");
break;
}
retry++;