From: Alexander Graf <agraf@suse.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v4 19/21] sandbox: Allow to execute from RAM
Date: Thu, 21 Jun 2018 11:44:23 +0200 [thread overview]
Message-ID: <a21da262-5844-d365-732d-bf69f2b89b3f@suse.de> (raw)
In-Reply-To: <CAPnjgZ0LHQ=5ovQ8kXgt6Y4jSfRh1LsV+3bk29eePZZ-xXh6mw@mail.gmail.com>
On 06/21/2018 04:02 AM, Simon Glass wrote:
> Hi Alex,
>
> On 18 June 2018 at 09:23, Alexander Graf <agraf@suse.de> wrote:
>> With efi_loader, we may want to execute payloads from RAM. By default,
>> permissions on the RAM region don't allow us to execute from there though.
>>
>> So whenever we get into the efi_loader case, let's mark RAM as executable.
>> That way we still protect normal cases, but allow for efi binaries to
>> directly get executed from within RAM.
>>
>> For this, we hook into the already existing allow_unaligned() call which
>> also transitions the system over into semantics required by the UEFI
>> specification.
>>
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> ---
>> arch/sandbox/cpu/cpu.c | 14 ++++++++++++++
>> arch/sandbox/cpu/os.c | 14 ++++++++++++++
>> include/os.h | 19 +++++++++++++++++++
>> 3 files changed, 47 insertions(+)
>>
> What is this patch actually for? Does it make something work that did
> not before? Where is it called?
At least on aarch64 executing from the RAM region fails on the first
instruction you call inside it, because it's not mapped with PROT_EXEC.
I think not mapping it with PROT_EXEC is a good thing in the normal
sandbox use case, but for EFI we need to run from RAM ;).
So yes, this patch makes that work. It's called from allow_unaligned()
which gets called from the bootefi command function.
Alex
next prev parent reply other threads:[~2018-06-21 9:44 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-18 15:22 [U-Boot] [PATCH v4 00/21] sandbox: efi_loader support Alexander Graf
2018-06-18 15:22 ` [U-Boot] [PATCH v4 01/21] efi: sandbox: Add distroboot support Alexander Graf
2018-06-18 15:22 ` [U-Boot] [PATCH v4 02/21] efi: sandbox: Add relocation constants Alexander Graf
2018-06-18 15:22 ` [U-Boot] [PATCH v4 03/21] efi_loader: Use compiler constants for image loader Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:22 ` [U-Boot] [PATCH v4 04/21] efi_loader: Use map_sysmem() in bootefi command Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:22 ` [U-Boot] [PATCH v4 05/21] efi.h: Do not use config options Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 06/21] efi_loader: Allow SMBIOS tables in highmem Alexander Graf
2018-06-21 2:01 ` Simon Glass
2018-06-21 9:38 ` Alexander Graf
2018-06-21 19:44 ` Simon Glass
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 07/21] sandbox: Map host memory for efi_loader Alexander Graf
2018-06-21 2:01 ` Simon Glass
2018-06-18 15:23 ` [U-Boot] [PATCH v4 08/21] efi_loader: efi_allocate_pages is too restrictive Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 09/21] efi_loader: Disable miniapps on sandbox Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 10/21] fs: Convert fs_read/write to take buffer instead of address Alexander Graf
2018-06-21 2:02 ` Simon Glass
2018-06-21 15:27 ` Tom Rini
2018-06-18 15:23 ` [U-Boot] [PATCH v4 11/21] efi_loader: Introduce ms abi vararg helpers Alexander Graf
2018-06-21 2:02 ` Simon Glass
2018-06-21 9:40 ` Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-23 8:37 ` Bin Meng
2018-06-25 16:47 ` Alexander Graf
2018-06-26 1:51 ` Bin Meng
2018-06-26 11:18 ` Alexander Graf
2018-06-27 2:59 ` Bin Meng
2018-06-18 15:23 ` [U-Boot] [PATCH v4 12/21] efi: sandbox: Enable EFI loader for sandbox Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 13/21] distro: Move to compiler based target architecture determination Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 14/21] efi_loader: " Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 15/21] sandbox: Fix setjmp/longjmp Alexander Graf
2018-06-21 2:02 ` Simon Glass
2018-06-21 9:41 ` Alexander Graf
2018-06-21 19:45 ` Simon Glass
2018-06-22 11:54 ` Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 16/21] elf: Move x86 reloc defines to common elf.h Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 17/21] efi_loader: Use common elf.h reloc defines Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 18/21] efi: sandbox: Adjust memory usage for sandbox Alexander Graf
2018-06-21 2:02 ` Simon Glass
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 19/21] sandbox: Allow to execute from RAM Alexander Graf
2018-06-21 2:02 ` Simon Glass
2018-06-21 9:44 ` Alexander Graf [this message]
2018-06-21 19:45 ` Simon Glass
2018-06-22 9:43 ` Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 20/21] sandbox: Always allocate aligned buffers Alexander Graf
2018-06-18 15:23 ` [U-Boot] [PATCH v4 21/21] efi_loader: Expose U-Boot addresses in memory map for sandbox Alexander Graf
2018-06-21 15:13 ` [U-Boot] [U-Boot, v4, " Alexander Graf
2018-06-23 4:01 ` [U-Boot] [PATCH v4 " Simon Glass
2018-06-23 6:57 ` Alexander Graf
2018-06-25 2:58 ` Simon Glass
2018-06-25 2:58 ` Simon Glass
2018-06-18 15:53 ` [U-Boot] [PATCH v4 00/21] sandbox: efi_loader support Alexander Graf
2018-06-21 2:44 ` Simon Glass
2018-06-21 9:47 ` Alexander Graf
2018-06-21 19:45 ` Simon Glass
2018-06-22 9:44 ` Alexander Graf
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=a21da262-5844-d365-732d-bf69f2b89b3f@suse.de \
--to=agraf@suse.de \
--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