
Hi Stefan
Actually the interrupt flags are cleared in the driver found in the linux tree from freescale before the interrupts are enabled
/* enable the interrupt */ writel(0xffffffff, q->iobase + QUADSPI_FR); writel(QUADSPI_RSER_TFIE, q->iobase + QUADSPI_RSER);
Clearing of the flags is missing in the mainline driver. After adding the clear mainline kernel boots with an unmodified u-boot. So, I think I currently use a patched kernel until the change arrives in mainline.
Thanks to all Matthias
2015-06-10 8:55 GMT+02:00 Stefan Roese sr@denx.de:
Hi Matthias,
On 10.06.2015 08:19, Matthias Weißer wrote:
With some wild guessing I found out that it must be an interrupt issue. If I clear FR (offset 0x160) in the QSPI module using u-boot command Linux boots successfully. So it seams that u-boot should clear the interrupt flag of the QSPI module after it was used.
Or the Linux driver should take care of clearing this before enabling the interrupts instead. In general Linux should make no assumption of the previously used/configured devices.
Thanks, Stefan