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: restrict usable RAM size further
Date: Thu, 30 Jul 2015 12:47:59 -0600	[thread overview]
Message-ID: <55BA715F.7040107@wwwdotorg.org> (raw)
In-Reply-To: <CAPnjgZ29=MQCH-XY2comfnG_3yeNUwQtHgA5pn8ki1s_2ucRBg@mail.gmail.com>

On 07/30/2015 09:52 AM, Simon Glass wrote:
> Hi,
>
> On 30 July 2015 at 09:43, Stephen Warren <swarren@wwwdotorg.org> wrote:
>>
>> On 07/30/2015 05:04 AM, Thierry Reding wrote:
>>>
>>> On Wed, Jul 29, 2015 at 01:47:58PM -0600, Stephen Warren wrote:
>>>>
>>>> From: Stephen Warren <swarren@nvidia.com>
>>>>
>>>> Additionally, ARM64 devices typically run a secure monitor in EL3 and
>>>> U-Boot in EL2, and set up some secure RAM carve-outs to contain the EL3
>>>> code and data. These carve-outs are located at the top of 32-bit address
>>>> space. Restrict U-Boot's RAM usage to well below the location of those
>>>> carve-outs. Ideally, we would the secure monitor would inform U-Boot of
>>>> exactly which RAM it could use at run-time. However, I'm not sure how to
>>>> do that at present (and even if such a mechanism does exist, it would
>>>> likely not be generic across all forms of secure monitor).
>>>
>>>
>>> 0xe0000000-0xffffffff is 512 MiB, surely a secure monitor can live with
>>> less than that!
>>
>>
>> I'm sure it does. However, it's a nice round number and leaves plenty of space for arbitrary expansion of the secure monitor, secure OS, other security-related carve-outs, (video regions, LP0 resume firmware, etc.) There's still plenty of space left for U-Boot after that.
>
> I'd really hope that these can be in U-Boot's remit. except perhaps
> the secure OS. Should we figure out how to build the secure monitor
> within the U-Boot environment? Is creating a bootable image going to
> become really complicated? Why would video regions and resume firmware
> not be set up by U-Boot?

The secure OS may (depending on exactly which applications it hosts I 
guess) use some of these regions itself. So, everything needs to be set 
up before the secure OS runs IIUC.

I can imagine a secure OS wanting to do display output (e.g. in an 
overlay plane at least). The same goes for pretty much any feature of 
the system really; it's up to the SW stack builder to decide which 
functions to partition into their secure vs non-secure SW.

The system should be able to suspend/resume under the control of the 
secure OS (taking requests from whatever non-secure SW stack may be 
running and interacting with the user, or autonomously if more system 
level control is implemented in the secure OS). Hence, all the system 
level SW needs to be set up early.

At least initially, we're targeting booting the system with the same 
bootloader that L4T and Android use for unification. U-Boot runs after 
the base security/... environment is set up to provide a flexible user 
experience for untrusted OS loading. Hopefully this won't make flashing 
a system too much more complex, but there will inevitably be some 
differences. Hopefully it'll get mostly hidden by tegra-uboot-flasher or 
some other tool.

At some point I hope we'll be able to get U-Boot to act as the first 
stage bootloader rather than just the non-secure bootloader. However, 
that requires a lot more work so certainly isn't something that's in the 
first round of Tegra210 support.

  reply	other threads:[~2015-07-30 18:47 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-29 19:47 [U-Boot] [PATCH] ARM: tegra: restrict usable RAM size further Stephen Warren
2015-07-30 11:04 ` Thierry Reding
2015-07-30 15:43   ` Stephen Warren
2015-07-30 15:52     ` Simon Glass
2015-07-30 18:47       ` Stephen Warren [this message]
2015-07-30 19:00         ` Simon Glass
2015-07-30 19:47           ` Stephen Warren
2015-08-05 18:33 ` Stephen Warren
2015-08-05 19:22   ` Tom Warren
2015-08-05 19:27     ` Stephen Warren
2015-08-05 19:30       ` Tom Warren

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=55BA715F.7040107@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