Other Parts Discussed in Thread: UNIFLASH
Tool/software:
Hi
The flash used is the one the LP Devboard - the 16Mbyte S25FL128SAGNFI000, same syscfg as it is in the flash examples provided by TI. Addressing mode 4 byte is not enabled.
What I noticed that if I write something in to address 0x00040000 I can read it out from 0x00040000 but the same content will appear at 0x00840000.
Written in specific patterns and it is the same 0x00040000 and at 0x00840000 while only 0x00040000 was written with Flash_write TI driver call.
Both addresses are below 16M, this wrap around should not happen.
Followed the code which calls Flash_read and it reaches QSPI_spiMemMapReadDma and the mapped address is 0x60840000 which seems to be correct.
QSPI_edmaTransfer/edmaParam.srcAddr is still 0x60840000.
It is working ok with addresses <= 16 bit, the image written there it is ok, I can boot with TI SBL example from the given address.
The problem starts with 24 bit (in theory it should not, 3 byte addressing should work at 0x00840000 too).
The code itself is coming from the bootloader and QSPI flash examples, syscfg is not altered whatsoever.
Is there any 16 vs 24 bit limitation due to DMA transfer I am not aware of?
EDIT: checking more carefully it is not even 16 bit since 0x00040000 is already over 16 bit, the problem is rather with the upper bit of the 24 bit address (0x00840000).
EDIT2: I have current date-time as string and a special character seq to identify the entry in the flash - I used the UNIFLASH read and it seems I have duplicate data:
0x60040000 F8AD1BC2 0000FFFF 30320001 32313432 38303530 36333935
0x60840000 F8AD1BC2 0000FFFF 30320001 32313432 38303530 36333935
0x60240000 F8AD1BC2 0000FFFF 30320003 32313432 39303530 38333430
0x60A40000 F8AD1BC2 0000FFFF 30320003 32313432 39303530 38333430
0x60340000 F8AD1BC2 0000FFFF 30320002 32313432 38303530 38323135
0x60B40000 F8AD1BC2 0000FFFF 30320002 32313432 38303530 38323135
but it is not possible to have the same date twice (date changes always and I never touched the upper part of the flash - last header was written into 0x60340000).
The issue is the last bit of the 24 bit address (0x800000).
Best regards