Have 3 chips. All behave the same.
Chips program fine on the first attempt and CPU boots correctly.
It's impossible to program the chip for the second time,
the programmer starts, then hangs up upon reaching the address 0x000c00.
Putting in new chip repeats the same: first attempt OK, then hang up at 0x000c00.
With 10.4 I tried the --erase-all option and got the following:
Code: Select all
F:\XMOS Projects\Graphics2\Debug>xflash --id 0 --target-file XC-1.xn --spi-spec A25L80P.txt --erase-all
--device option is deprecated, use --id
Error: F03075 Failed to execute flash erasure app.
Is there something missing from my 10.4?
For reference, here's my specification file for A25L80P flash:
Code: Select all
24, /* flash id = value returned by fl_getFlashType */
256, /* page size in bytes */
4096, /* number of pages */
3, /* number of address bytes to send */
8, /* divider to generate the SPI clock from the reference clock */
0x9f, /* command to read the device ID */
1, /* number of dummy bytes returned before the ID */
3, /* ID size in bytes */
0x372014, /* expected device ID */
0xd8, /* command to erase all or part of a sector */
0, /* number of bytes erased by sector erase; 0 = entire sector */
0x06, /* command to write-enable the device */
0x04, /* command to write-disable the device */
SEC_PROT_NONE, /* protection type; PROT_TYPE_NONE = no protection */
{{0,0},{0,0}}, /* description of the device protection */
0x02, /* command to program a page */
0x03, /* command to read data */
0, /* number of dummy bytes returned before the data */
SECTOR_LAYOUT_REGULAR, /* sector layout; SECTOR_LAYOUT_REGULAR=all sectors same size */
{65536,{0,{0}}}, /* sector sizes */
0x05, /* command to read the status register */
0x01, /* command to write the status register */
0x01, /* bit mask for the Write In Progress bit */