Forum Discussion
Hi,
I implemented the setting of the baudrate-register in the standard-loader and it works.
But now I have a problem writing to flash.
I use the following sequence from the reference design:
void write_memory_3byte(){
IOWR(INTEL_GENERIC_SERIAL_FLASH_INTERFACE_TOP_0_AVL_CSR_BASE,0x4,0x00000000);
IOWR(INTEL_GENERIC_SERIAL_FLASH_INTERFACE_TOP_0_AVL_CSR_BASE,0x0,0x00000001);
IOWR(INTEL_GENERIC_SERIAL_FLASH_INTERFACE_TOP_0_AVL_CSR_BASE,0x6,0x00000502);
IOWR(INTEL_GENERIC_SERIAL_FLASH_INTERFACE_TOP_0_AVL_MEM_BASE,0x00000000,0xabcd1234);
}
The function works fine until the writing address is lower than 0x200000. If I want write to an address above 0x200000 the controller starts no action on SPI bus.
void write_memory_3byte(){
IOWR(INTEL_GENERIC_SERIAL_FLASH_INTERFACE_TOP_0_AVL_CSR_BASE,0x4,0x00000000);
IOWR(INTEL_GENERIC_SERIAL_FLASH_INTERFACE_TOP_0_AVL_CSR_BASE,0x0,0x00000001);
IOWR(INTEL_GENERIC_SERIAL_FLASH_INTERFACE_TOP_0_AVL_CSR_BASE,0x6,0x00000502);
IOWR(INTEL_GENERIC_SERIAL_FLASH_INTERFACE_TOP_0_AVL_MEM_BASE,0x00200000,0xabcd1234);
}
And after a write above 0x200000, there is no furhter access to SPI bus (for example erase) possible.
The problem cannot not be caused by the flash. Because there is no activity on the SPI bus. The flash is configured with 64Mb.
I lood forward to helpful information.
Thanks,
Guenter