public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Yao, Jiewen" <jiewen.yao@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"ard.biesheuvel@arm.com" <ard.biesheuvel@arm.com>
Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>,
	"Gao, Liming" <liming.gao@intel.com>,
	Sami Mujawar <sami.mujawar@arm.com>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>
Subject: Re: [edk2-devel] [PATCH 4/5] StandaloneMmPkg: generate position independent code for StMM core
Date: Sun, 14 Jun 2020 12:38:30 +0000	[thread overview]
Message-ID: <BL0PR11MB34122DD04232CD542D5EC2E38C9F0@BL0PR11MB3412.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20200610081740.54581-5-ard.biesheuvel@arm.com>

Acked-by: Jiewen Yao <Jiewen.yao@intel.com>

I hope GCC expert can review this and double confirm.

Thank you
Yao Jiewen

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ard
> Biesheuvel
> Sent: Wednesday, June 10, 2020 4:18 PM
> To: devel@edk2.groups.io
> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>; Yao,
> Jiewen <jiewen.yao@intel.com>; Sami Mujawar <sami.mujawar@arm.com>;
> Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Subject: [edk2-devel] [PATCH 4/5] StandaloneMmPkg: generate position
> independent code for StMM core
> 
> The standalone MM core runs in a restricted environment that is set
> up by a higher privilege level, and which may not allow memory regions
> to be writable and executable at the same time.
> 
> This means that making the StMM core self-relocatable requires that
> all the targets of the relocation fixups are outside of the executable
> region of the image, given that we cannot remap the executable code
> writable from the executable code itself without losing those execute
> permissions.
> 
> So instead, use the existing toolchain support to ensure that position
> independent code is used where possible, and that all the remaining
> relocated quantities are emitted into the data section. (Note that
> staticallly initialized const pointers will be emitted into the
> .data.rel.ro section, which gets pulled into the .data section by
> our linker script)
> 
> To ensure that we don't pick up any absolute references in executable
> code inadvertently (e.g., in assembler code), add the '-z text' linker
> option which will force the build to fail in this case.
> 
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
> ---
>  StandaloneMmPkg/Core/StandaloneMmCore.inf                                         | 4 ++++
> 
> StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreE
> ntryPoint.inf | 3 +++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.inf
> b/StandaloneMmPkg/Core/StandaloneMmCore.inf
> index d17ff9965bdc..87bf6e9440a7 100644
> --- a/StandaloneMmPkg/Core/StandaloneMmCore.inf
> +++ b/StandaloneMmPkg/Core/StandaloneMmCore.inf
> @@ -75,3 +75,7 @@ [Guids]
>    gEfiEventLegacyBootGuid
> 
>    gEfiEventExitBootServicesGuid
> 
>    gEfiEventReadyToBootGuid
> 
> +
> 
> +[BuildOptions]
> 
> +  GCC:*_*_*_CC_FLAGS = -fpie
> 
> +  GCC:*_*_*_DLINK_FLAGS = -Wl,-z,text,-Bsymbolic,-pie
> 
> diff --git
> a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCor
> eEntryPoint.inf
> b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCor
> eEntryPoint.inf
> index 891c292e92f8..7d6ee4e08ecb 100644
> ---
> a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCor
> eEntryPoint.inf
> +++
> b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCor
> eEntryPoint.inf
> @@ -48,3 +48,6 @@ [Guids]
>    gEfiMmPeiMmramMemoryReserveGuid
> 
>    gEfiStandaloneMmNonSecureBufferGuid
> 
>    gEfiArmTfCpuDriverEpDescriptorGuid
> 
> +
> 
> +[BuildOptions]
> 
> +  GCC:*_*_*_CC_FLAGS = -fpie
> 
> --
> 2.26.2
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> 
> View/Reply Online (#61042): https://edk2.groups.io/g/devel/message/61042
> Mute This Topic: https://groups.io/mt/74792291/1772286
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub  [jiewen.yao@intel.com]
> -=-=-=-=-=-=


  parent reply	other threads:[~2020-06-14 12:38 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-10  8:17 [PATCH 0/5] StandaloneMmPkg: make StMM core relocatable Ard Biesheuvel
2020-06-10  8:17 ` [PATCH 1/5] MdePkg/BasePrintLib: avoid absolute addresses for error strings Ard Biesheuvel
2020-06-10  8:37   ` Ard Biesheuvel
2020-06-10 15:09     ` [edk2-devel] " Michael D Kinney
2020-06-10 16:39       ` Ard Biesheuvel
2020-06-10  8:17 ` [PATCH 2/5] StandaloneMmPkg/Core: fix bogus FV pointer in DEBUG string Ard Biesheuvel
2020-06-14 12:35   ` [edk2-devel] " Yao, Jiewen
2020-06-15 12:42     ` Sami Mujawar
2020-06-10  8:17 ` [PATCH 3/5] StandaloneMmPkg/Core: add missing GUID reference Ard Biesheuvel
2020-06-14 12:36   ` Yao, Jiewen
2020-06-15 12:49     ` [edk2-devel] " Sami Mujawar
2020-06-10  8:17 ` [PATCH 4/5] StandaloneMmPkg: generate position independent code for StMM core Ard Biesheuvel
2020-06-10 18:21   ` [edk2-devel] " Sean
2020-06-10 18:33     ` Ard Biesheuvel
2020-06-14 12:38   ` Yao, Jiewen [this message]
2020-06-10  8:17 ` [PATCH 5/5] StandaloneMmPkg/StandaloneMmCoreEntryPoint: relocate StMM core on the fly Ard Biesheuvel
2020-06-14 12:37   ` [edk2-devel] " Yao, Jiewen
2020-06-15 13:59   ` Sami Mujawar
2020-06-15 14:12     ` Ard Biesheuvel
2020-06-15 14:40       ` Sami Mujawar
2020-06-10 10:21 ` [PATCH 0/5] StandaloneMmPkg: make StMM core relocatable Ilias Apalodimas
2020-06-12  9:58 ` Ard Biesheuvel
2020-06-16 16:16 ` Ard Biesheuvel

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-list 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=BL0PR11MB34122DD04232CD542D5EC2E38C9F0@BL0PR11MB3412.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /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