[U-Boot] arm: imx: Kernel not booting when environment is in QSPI

Matthias Weißer
2015-06-10T08:34:11Z

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
>