Hi everyone
We are trying to use the QSPI flash on LS1043 board. Our kernel version is 5.2, flash is mx66u1g45g.
We found that when we get the flash data which size is more then 0x80, then the data will be wrong.
Correct:
00000000 : 31 31 20 30 31 3A 34 32 30 30 30 30 30 30 30 30
...
Wrong:
00000000 : 30 30 30 30 30 30 30 30 49 50 4C 2D 52 4F 4D 33
It seems like the first 8 bytes is lost from the read result.
We found that the code will try to access the AHB to get the data.
1) Is there similar issue as in https://source.denx.de/u-boot/u-boot/-/commit/def88bce094e95939abf1e5d02a9b413b3627f6f on LS1043 ?
2) From ls1043 RM:
IP Command Read: For reading flash data into the RX Buffer the user must
provide the correct sequence ID in the QuadSPI_IPCR[SEQID] register. The
sequence ID points to a sequence in the LUT. It is the responsibility of the
software to ensure that a correct read sequence is programmed in the LUT in
accordance with the serial flash device connected on board.
How do we know the read sequence is correct programmed in the LUT ?
The correct read sequence should be like what seq ? Do you have some examples ?
Thanks for your reply.
Yes, it is on kernel, not uboot
Which registers need to be dumped ?
We use mtd_debug() to read the flash data, it finally calls fsl_qspi_exec_op(). From where we can know it is IP read or AHB read ?
Can you let me know the details about the issue? I assume that the issue happens under Linux kernel 5.2, not on uboot, is that correct?
Can you dump the QSPI registers and all the data for 128 bytes and 160 bytes read?
A1, I do not think that we have a similar issue on LS1043a. At least it is not limited to 128 Bytes. It limits to the AHB buffer size to 1 KB.
A2. Do you use IP read or AHB read? Yes, it is the software's responsibility to ensure correct read sequence. The qSPI controller does not know or care about the read sequence. The read sequence is based on what is connected to the qSPI bus. The read/write sequences come from the qSPI slave device. The qSPI controller only follow what are in the LUT.
The section Serial Flash Devices in the LS1043ARM (30.9 in rev 5 ) has several Example Sequences.
Can you let me know what patch? Is the issue get resolved after the patch?
One more question, do you use our LSDK release? if you do, which version do you use?
Just want to confirm whether the issue is resolved after the patch.