IMX7D refuses to boot from qspi after loading mx25l512 module

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX7D refuses to boot from qspi after loading mx25l512 module

669 Views
peterbruintjes
Contributor I

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.

Labels (1)
0 Kudos
2 Replies

496 Views
peterbruintjes
Contributor I

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 ?

0 Kudos

496 Views
jamesbone
NXP TechSupport
NXP TechSupport
The boot ROM code uses the state of the internal register BOOT_MODE[1:0] as well as the state of various eFUSEs and/or GPIO settings to determine the boot flow behavior of the device.   When you change the DTS you are modifing the  some GPIO settings that are affecting the boot flow.   Check the GPIO pins that you are using "macronix,mx25l51245g".  And verify are not part of the boot ROM code.
Please check Figure. 6-19 from the Reference Manual, for further details.
0 Kudos