On 8/6/21 1:31 AM, Tom Rini wrote:
On Thu, Aug 05, 2021 at 11:53:24PM +0200, Marek Vasut wrote:
On 8/2/21 3:00 PM, Tom Rini wrote:
On Mon, Aug 02, 2021 at 02:54:22AM +0200, Marek Vasut wrote:
On 7/29/21 6:58 PM, Tom Rini wrote:

[...]

so when did rcar3 introduce something there that shouldn't be
reserved?  And you had phrased this to me on IRC as about reserving spot
for ATAGS, and that not being needed of course on arm64.  But that's not
what's going on.  Perhaps the answer is that rcar3 needs to introduce a
board_lmb_reserve to free the normal arch one and provide whatever more
narrow scope it needs.

Based on the commit message 2359fa7a878 ("arm: bootm: Disable LMB
reservation for command line and board info on arm64") , this is about ATAGS
and we really don't need to reserve those on arm64.

Commit 2359fa7a878 disables the entire arch_lmb_reserve function on
aarch64, yes.  I assumed when we had talked that it was a small area
being set aside and perhaps mis-recalled that ATAGS tended to live at
DDR_BASE + 0x800 or so.

That arch_lmb_reserve() is responsible for reserving architecture specific
memory. On arm32 it is ATAGS, on arm64 it is nothing as far as I can tell
(and see below regarding the TLB).

I don't think that LMB ever covered ATAGS.  ATAGS, I could have sworn,
were at start of memory + 0x800 or so.  This LMB is for the top of
memory where U-Boot is.

What is there to protect which Linux does not set up again ?

What does Linux have to do this with?  I don't see, but maybe have
missed, where "U-Boot adds memory region to internal LMB list" is
translated to "Update the device tree Linux will have with these
regions".  I do see code to read the reserved-memory regions from a DTB
and add them to our LMB, but not the other direction.

The whole LMB reservation is done only after calling bootm (and other boot commands), and the comment in arch/arm/lib/bootm.c arch_lmb_reserve() does indicate the same.

Reply via email to