I applied the fix in a slightly different way, can you test this for me?
It looks like this now:
int probe_29f040b (struct flashchip * flash) { volatile unsigned char * bios = flash->virt_addr; unsigned char id1, id2;
*(bios + 0x555) = 0xAA; *(bios + 0x2AA) = 0x55; *(bios + 0x555) = 0x90;
id1 = * bios; id2 = * (bios + 0x01);
*bios = 0xF0;
myusec_delay(10);
printf("%s: id1 0x%x, id2 0x%x\n", __FUNCTION__, id1, id2); if (id1 == flash->manufacture_id && id2 == flash->model_id) return 1;
return 0; }
ron