[ECOS] RedBoot RAM version problem

Jesper Skov jskov@cambridge.redhat.com
Mon Jul 30 01:57:00 GMT 2001


>>>>> "Andre" == Andre Sebastien <sebastien.andre@sxb.bsf.alcatel.fr> writes:

Andre> Hi everybody !!  So i try to increase a pause in this function
Andre> : 'void flash_dev_query(void* data)'

Wrong place. You want to tweak this function:

//----------------------------------------------------------------------------
// Flash Query
//
// Only reads the manufacturer and part number codes for the first
// device(s) in series. It is assumed that any devices in series
// will be of the same type.

void
flash_query(void* data)
{
    volatile flash_data_t *ROM;
    flash_data_t* id = (flash_data_t*) data;
    int i;

    ROM = (volatile flash_data_t*) CYGNUM_FLASH_BASE;

    ROM[FLASH_Setup_Addr1] = FLASH_Setup_Code1;
    ROM[FLASH_Setup_Addr2] = FLASH_Setup_Code2;
    ROM[FLASH_Setup_Addr1] = FLASH_Read_ID;

    // FIXME: 10ms delay
    for (i = 10000; i > 0; i--);

    // Manufacturers' code
    id[0] = ROM[0];
    // Part number
    id[1] = ROM[1];

    ROM[FLASH_Setup_Addr1] = FLASH_Setup_Code1;
    ROM[FLASH_Setup_Addr2] = FLASH_Setup_Code2;
    ROM[FLASH_Setup_Addr1] = FLASH_Read_ID_Exit;

    // FIXME: 10ms delay
    for (i = 10000; i > 0; i--);
}

it's in devs/flash/atmel.../flash_at29cxxxx.inl

Jesper



More information about the Ecos-discuss mailing list