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]
> -=-=-=-=-=-=
next prev 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