Bug in am29f040b.c causes flash device not to be recognised

ron minnich rminnich at lanl.gov
Wed Nov 5 11:06:01 CET 2003


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




More information about the coreboot mailing list