recent ARM Erratas 742231 & 742230 broken.

Linus Walleij at
Fri Nov 5 08:12:48 EDT 2010

2010/10/20 Will Deacon <will.deacon at>:

> The diagnostic register is only writable from secure mode so you'll need to
> look at what these patches do (they perform simple read-modify-writes) and
> incorporate that code into your secure software.
> (...)
> I doubt that your secure monitor exposes the diagnostic register through an
> SMC interface so you'll need to change the secure boot code to enable these
> workarounds when the system comes out of reset.

These SMC:s (System Management Call?) are getting hairier now.

Can't you add an abstraction for the stuff we need to poke into
diagnostics registers, enabling platform-specific overrides, like
we do for l2x0 in mm/cache-l2x0.c?

Like if arch/arm/include/asm/proc-v7-diagnostics.h:
(modeled on arch/arm/include/asm/outercache.h)

struct v7_core_diagnostics {
  void (*foo)(void);
  void (*bar)(void);

Then we can override thes during .machine_init or even .fixup if
it's needed real early on.

This way each platform (including I think U8500 and OMAP4) can respond
correctly to the errata patches once we have proper SMCs in place.

Linus Walleij

More information about the linux-arm-kernel mailing list