[U-Boot] [PATCH 17/28] armv8/fsl-lsch3: Enable system error aborts

Mark Rutland
2015-03-20T11:31:30Z

On Thu, Mar 19, 2015 at 07:52:30PM +0000, Scott Wood wrote:
> On Thu, 2015-03-19 at 18:14 +0000, Mark Rutland wrote:
> > On Thu, Mar 19, 2015 at 04:45:48PM +0000, York Sun wrote:
> > > From: Scott Wood <scottwood@freescale.com>
> > >
> > > This lets us see the problems (close to) when they happen,
> > > rather than Linux hanging when it enables them prior to having a
> > > working console.
> >
> > FYI, if the Linux driver for your UART supports earlycon, that should
> > work since commit 7a9c43bed891d1f8 ("setup: Move unmask of async
> > interrupts after possible earlycon setup").
>
> I wrote this patch in the context of board bringup, where I was stuck
> using an older kernel. In any case, when U-Boot causes a problem we
> want to see it in U-Boot.

Sure.

The Linux patch helps when Linux triggers an SError after taking
ownership of the vectors.

> > I hope that SError is masked again prior to entering Linux, as required
> > by the boot protocol?
>
> Doesn't look like it based on grepping for daifset.

Ok. That should happen before you call the kernel. Otherwise if the
kernel triggers an SError between setting up the vectors and discovering
the UART, you won't get any output.

Linux requires that all the DAIF exceptions are masked prior to entry.

> Where is the boot protocol documented? Just for future reference -- I
> agree that leaving this enabled during the handover would be a bad
> thing.

In the Linux kernel tree see Documentation/arm64/booting.txt [1]. This
is periodically updated with clarifications and updates for new
architectural features, though it should always remain compatible.

Mark.

[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/arm64/booting.txt