[PATCH] arm64: dts: add device tree for ARM SMM-A53x2 on LogicTile Express 20MG

Mark Rutland mark.rutland at arm.com
Wed Jun 10 02:39:30 PDT 2015

> > > > +/* In use by spinning secondaries */
> > > > +/memreserve/ 0x80000000 0x00010000;
> > > 
> > > Where does the kernel get loaded to? If 0x80000000 is the start of memory and the kernel is
> > > loaded at 0x80000 offset as usual, then that memory is protected anyway.
> > 
> > That's simply not true. The kernel may use _any_ memory which is
> > described to it and not explicitly reserved.
> > 
> > We only reserve the kernel's static image (see arm64_memblock_init),
> > which does not cover that region. We can easily map that memory and
> > allocate it to something.
> > 
> > While we used to place page tables in the end of that region, we only
> > reserved the page tables, and it was problematic because you had no idea
> > how much of that memory the kernel might use.
> > 
> > Regardless, DTs should not rely on Linux implementation details like
> > magic implicit reservations.
> Things might have changed since v3.18 but I remember having a hell of a time trying to
> access memory that was at the bottom of address space before the kernel start image.

Memory more than 0x80000 bytes below the kernel wouldn't have been
mapped because of the way the linear map is built, which might have been
your issue. This is an implementation detail which _will_ change (see
Ard's patches) and should not be relied upon.

> But I agree that things should be explicitly stated in the DT.
> Question for Kristina now: why spin method and not PSCI for this CoreTile?

Unfortunately the boot monitor only ever implemented spin-table. If
you're offering to port and maintain ARM Trusted Firmware, we can look
at having the DT report PSCI. ;)

Ideally we'd avoid placing the enable-method in the DTS at all, but I
believe the boot monitor isn't smart enough to fix that up.


More information about the linux-arm-kernel mailing list