[U-Boot] [PATCH] OMAP3: workaround for ARM Cortex-A8 erratum 725233

Siarhei Siamashka siarhei.siamashka at gmail.com
Mon Feb 8 16:27:11 CET 2010


On Monday 08 February 2010, Måns Rullgård wrote:
> Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:
> > On Sunday 07 February 2010, Tom wrote:
> >> Siarhei Siamashka wrote:
> >> > 725233: PLD instructions executed with PLD data forwarding
> >> > enabled can result in a processor deadlock
> >> >
> >> > Signed-off-by: Siarhei Siamashka <siarhei.siamashka at gmail.com>
> >>
> >> Please add a detailed comment on the errata.
> >
> > The short summary is pretty much complete (PLD data forwarding is not
> > working correctly and needs to be turned off to prevent problems). Though
> > it really makes sense to add that:
> > 1. only r1pX revisions of Cortex-A8 are affected
> > 2. performance impact is practically non-existant
> >
> > The detailed description of this erratum is available in the official
> > Cortex-A8 errata list. I'm not sure about directly copying full erratum
> > description text here. Anyway, this workaround would be better submitted
> > by somebody TI. I'm just "guilty" of triggering this deadlock with some
> > ARM NEON optimizations from pixman library, so feel a bit of
> > responsibility for it too.
> >
> >> Also looks like this jumping to ROM code.
> >> Can this be done without a ROM code call ?
> >
> > I just added it to the part of code which is already doing similar things
> > (sets L1NEON and other bits from AUXCR with some icky looking assembly
> > via ROM code call). Most likely it can be also done in some other way.
>
> L2AUX is only writable in secure mode, which on GP devices implies
> using a ROM call.  Nothing wrong with that.

OK, thanks for the clarification. Can I add you to Acked-by field in
the soon to be resubmitted patch with updated comment?

I just remembered the following patch and had a doubt for a second:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7ce236fcd6fd45b0441a2d49acb2ceb2de2e8a47

Have not tested this yet (IBE bit is set from u-boot on my beagleboard at
the moment), but apparently the MCR instruction used in that kernel patch has
no effect on OMAP3 and setting IBE bit in u-boot is also required for anybody
who wants to have thumb support which is not totally broken. Additionally it
would be nice to do something about related Cortex-A8 erratas #687067 and
#454179. The status of L1 System Array Debug Register on the beagleboard is
particularly interesting.

Maybe it is a good time to do a full review of all the needed workarounds and
update the u-boot code responsible for applying them on omap3 devices?

-- 
Best regards,
Siarhei Siamashka


More information about the U-Boot mailing list