public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] ARM: tegra: Use the IRAM for the early stack
Date: Mon, 09 Dec 2013 11:16:27 -0700	[thread overview]
Message-ID: <52A608FB.6000702@wwwdotorg.org> (raw)
In-Reply-To: <20131209190908.76a281e8@avionic-0020>

On 12/09/2013 11:09 AM, Alban Bedel wrote:
> On Mon, 09 Dec 2013 10:09:49 -0700
> Stephen Warren <swarren@wwwdotorg.org> wrote:
> 
>> On 12/09/2013 10:06 AM, Alban Bedel wrote:
>>> Unlike many other platforms the tegra platform has the luxury of
>>> already having the SDRAM running during the early init, and it is used
>>> for the early stack. However the memory test of the POST subsystem is
>>> expecting the SDRAM to be unused, and on tegra platforms the test fail
>>> to run as it destroy the stack.
>>>
>>> To fix the problem simply use the IRAM for the initial stack.
>>
>> Can't the POST code simply touch an unused RAM address?
> 
> The memtest is run pre-relocation to in fact avoid having to take care
> about some special memory regions, beside the u-boot image and
> pre-relocation code.

If it's avoiding the U-Boot image, can't it also avoid the stack?

>> There is IRAM content that needs to be preserved, so we need to make
>> sure we don't stomp on that. Examples are:
>>
>> * BIT (Boot Information Table)
>> * BCT that was used to boot the system
>> * Perhaps the whole IRAM is filled with code/data in the LP0
>> suspend/resume case.
> 
> BIC and BCT shouldn't be problem if enough IRAM is left for the
> relocation. After relocation the stack move to the SDRAM anyway.

Right, but we need to be careful to avoid those. Where is the stack in
IRAM after this patch.

Does the RAM test happen while U-Boot is running on the AVP (i.e. during
the SPL) or while running on the main CPU (i.e. main U-Boot binary). If
AVP, then using IRAM for stack might be OK. If main CPU, then the AVP
owns the IRAM and could be executing arbitrary code (in general, in a
complete customer system) and could be using arbitrary portions of it
itself, so U-Boot couldn't touch it.

> But for LP0 I don't really understand what the problem would be. Do the
> u-boot loading+relocation needs to be run when coming out of LP0?

Yes, LP0 is "chip off", so the chip/CPU boots through (at least part of)
the boot ROM and potentially bootloader. Actually, I guess perhaps not
the full bootloader, but just a small stub whose location is passed to
the boot ROM before suspend, so perhaps the operation of U-Boot is just
limited to setting that up, not actually running on resume.

      reply	other threads:[~2013-12-09 18:16 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-09 17:06 [U-Boot] [PATCH] ARM: tegra: Use the IRAM for the early stack Alban Bedel
2013-12-09 17:09 ` Stephen Warren
2013-12-09 18:09   ` Alban Bedel
2013-12-09 18:16     ` Stephen Warren [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52A608FB.6000702@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox