Hello everyone,
We are working on a project using QSPI flash on an LS1043A board. The flashes we choose are from two vendors: Macronix and ISSI, and we use 2 spi flashes from the same vendor on each board, one works as the main booting source and the other works as the backup. For ISSI, specifically, we are using IS25LP512M /IS25WP512M.
Everything works perfectly on kernel version 4.4. The board's booting process (for both Macornix and ISSI flash) is with a 25M clock, and the performances meet our expectations. Recently we are running the same project but on kernel version 5.1. This is where the weird thing happens:
For kernel version 5.1, we still use 2 spi flashes on each board, the booting scheme is the same as what we did in kernel 4.4. The only change we made was in the BSP code: once LS1043a gets the output data from the spi flash at the beginning of booting for the first time, it will first detect the data size. If it's larger than a certain number of bytes, the software will forward it to IP command mode, otherwise, it continues to transfer with AHB Command. We hope this IF block would improve the efficiency.
After we add this size-detection function, the board that uses ISSI spi flashes completely failed during the booting stage. We dumped the bin file during the MTD stage but found the ENV value we got from the flash with AHB was ALL ZERO. This causes the driver to read the env value that is ALL EMPTY, thereby failing to boot. Bits are lost with ISSI. The same issue doesn't happen with Macronix spi flash, and we do get the correct ENV value for booting.
a) From the LS1043a reference manual, we know for different vendors, the spi controller pre-programmed different read sequences in the LUT in accordance with the serial flash device connected on board.
Does this sound like a similar issue? If it is, is there any possibility that we can make ISSI flash compatible with this kernel version? If it is not, could you please provide us with some suggestions on where the problem could be?
b) What changes did you make between 4.4 and 5.1 that possibly have some influences on ahb command when working with spi flash?
We appreciate your help. Thank you very much.
Lu
#ls1043a
#QorlQ