[PATCH v4 4/7] arm64: Handle early CPU boot failures
Mark Rutland
mark.rutland at arm.com
Wed Feb 3 11:31:50 PST 2016
On Wed, Feb 03, 2016 at 06:12:52PM +0000, Catalin Marinas wrote:
> On Wed, Feb 03, 2016 at 05:53:51PM +0000, Mark Rutland wrote:
> > On Wed, Feb 03, 2016 at 05:34:49PM +0000, Catalin Marinas wrote:
> > > In general, if you perform cache maintenance on a non-shareable mapping,
> > > I don't think it would be broadcast. But in this case, the MMU is off,
> > > data accesses default to Device_nGnRnE and considered outer shareable,
> > > so it may actually work. Is this stated anywhere in the ARM ARM?
> >
> > In ARM DDI 0487A.h, D4.2.8 "The effects of disabling a stage of address
> > translation" we state:
> >
> > Cache maintenance instructions act on the target cache
> > regardless of whether any stages of address translation are
> > disabled, and regardless of the values of the memory attributes.
> > However, if a stage of address translation is disabled, they use
> > the flat address mapping for that translation stage.
>
> But does "target cache" include other CPUs in the system?
It appears so. There's a more complete description (with a table) on
page D3-1718, "Effects of instructions that operate by VA to the Point
of Coherency", where it's explicitly stated:
For Device memory and Normal memory that is Inner Non-cacheable,
Outer Non-cacheable, these instructions must affect the caches
of all PEs in the Outer Shareable shareability domain of the PE
on which the instruction is operating.
In other cases, per the table, the maintenance may be limited to a
smaller set of caches.
Thanks,
Mark.
More information about the linux-arm-kernel
mailing list