Using an IMX7D sabre dev board (rev D) we can boot from QSPI, all works fine except the hard reset / reboot command once Linux has booted.
We use the boot switches configured to boot from QSPI but after Linux has been booted and a reset is requested (either via hard reset switch or reboot command) the system refuses to boot QSPI but tries to boot from SD instead (When inserting a bootable SD card it will boot, even with the boot switches configured as QSPI)
This problem can be resolved by disabling "macronix,mx25l51245g" in Linux DTS. When this module is disabled the hard reset and boot commands will cause the system to reboot and load uboot from QSPI
We have found that pushing the reset button quickly after starting the kernel the reset still works, only after the kernel has loaded "fsl-quadspi 30bb0000.qspi: mx25l51245g (65536 Kbytes)" the system refuses to reboot from QSPI
Also while in UBoot pressing the reset button the system will just reboot from QSPI
Any idea why the system refuses to boot QSPI after loading the mx25l512 module ?
The QSPI itself is working correctly from Linux, we are able to read and write to it as we expect it to work
We use the QSPI for other purposes besides booting uboot so we want access to it from the Kernel
How can we force the system to reboot from QSPI even with this module enabled ?
We have already tried removing all the DTS settings involving the SRC_BOOT_CFG iomux settings, disabling EPDC and LCD modules.
I have checked this, this doesn't seem to be the problem
I found that, if I manually hack the macronix driver to force the chip in 3-byte address mode, the reset is working fine
However I can only access 16MB of memory instead of the full 64MB
I guess the boot ROM is unable to use 4-byte addressing mode ?