From: "Gao, Liming" <liming.gao@intel.com>
To: Patrick Georgi <pgeorgi@google.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [PATCH] BaseTools: Add COREBOOT tools definition
Date: Mon, 10 Jul 2017 14:46:08 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14D753010@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <20170704152241.21177-1-pgeorgi@google.com>
Patrick:
Compared GCC5 and COREBOOT, the difference is that GCC5_IA32_PREFIX and GCC5_X64_PREFIX. CoreBoot tool chain has the different style. So, it can't reuse GCC5 tool chain. If GCC5 is update to refer to ENV (GCC5_IA32_PREFIX) and ENV (GCC5_X64_PREFIX) like ENV(GCC5_ARM_PREFIX) in CC_PATH, GCC5 can support COREBOOT usage. For the future, the different FLAG can be appended in [BuildOptions] of platform.dsc. So, I suggest to reuse GCC5 tool chain for coreboot.
GCC5:
DEFINE GCC5_IA32_PREFIX = ENV(GCC5_BIN)
DEFINE GCC5_X64_PREFIX = ENV(GCC5_BIN)
*_GCC5_*_*_DLL = ENV(GCC5_DLL)
COREBOOT:
DEFINE COREBOOT_IA32_PREFIX = DEF(COREBOOT_PREFIX)i386-elf-
DEFINE COREBOOT_X64_PREFIX = DEF(COREBOOT_PREFIX)x86_64-elf-
*_COREBOOT_*_*_DLL = ENV(COREBOOT_DLL)
Thanks
Liming
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Patrick Georgi
> Sent: Tuesday, July 4, 2017 11:23 PM
> To: edk2-devel@lists.01.org
> Subject: [edk2] [PATCH] BaseTools: Add COREBOOT tools definition
>
> That toolset is defined as the current coreboot toolchain[0] at commit
> time. Right now this is gcc 6.3, iasl and GNU make, with minor patches
> as deemed necessary for firmware development by the coreboot maintainers.
>
> COREBOOT is primarily supposed to build CorebootPayloadPkg (and its
> dependencies), but should be suitable for other builds as well.
> It's tested to build a usable Ovmf image.
>
> For now, COREBOOT is a copy of the GCC5 rules, but it may diverge over
> time.
>
> [0] As built by https://review.coreboot.org/cgit/coreboot.git/tree/util/crossgcc
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Patrick Georgi <pgeorgi@google.com>
> ---
> BaseTools/Conf/tools_def.template | 181 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 181 insertions(+)
>
> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
> index 65f21061e6..08adb32e38 100755
> --- a/BaseTools/Conf/tools_def.template
> +++ b/BaseTools/Conf/tools_def.template
> @@ -199,6 +199,12 @@ DEFINE GCC49_X64_PREFIX = ENV(GCC49_BIN)
> DEFINE GCC5_IA32_PREFIX = ENV(GCC5_BIN)
> DEFINE GCC5_X64_PREFIX = ENV(GCC5_BIN)
>
> +DEFINE COREBOOT_PREFIX = ENV(COREBOOT_SDK_PATH)
> +DEFINE COREBOOT_IA32_PREFIX = DEF(COREBOOT_PREFIX)i386-elf-
> +DEFINE COREBOOT_X64_PREFIX = DEF(COREBOOT_PREFIX)x86_64-elf-
> +DEFINE COREBOOT_ARM_PREFIX = DEF(COREBOOT_PREFIX)arm-eabi-
> +DEFINE COREBOOT_AARCH64_PREFIX = DEF(COREBOOT_PREFIX)aarch64-elf-
> +
> DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl
> DEFINE WIN_IASL_BIN = ENV(IASL_PREFIX)iasl.exe
> DEFINE WIN_ASL_BIN = ENV(IASL_PREFIX)asl.exe
> @@ -4493,6 +4499,28 @@ DEFINE GCC5_AARCH64_DLINK2_FLAGS = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-erro
> DEFINE GCC5_ARM_ASLDLINK_FLAGS = DEF(GCC49_ARM_ASLDLINK_FLAGS)
> DEFINE GCC5_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)
>
> +DEFINE COREBOOT_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS)
> +DEFINE COREBOOT_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS)
> +DEFINE COREBOOT_IA32_X64_DLINK_COMMON = DEF(GCC5_IA32_X64_DLINK_COMMON)
> +DEFINE COREBOOT_IA32_X64_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS)
> +DEFINE COREBOOT_IA32_X64_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS)
> +DEFINE COREBOOT_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS)
> +DEFINE COREBOOT_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS)
> +DEFINE COREBOOT_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS)
> +DEFINE COREBOOT_ASM_FLAGS = DEF(GCC5_ASM_FLAGS)
> +DEFINE COREBOOT_ARM_ASM_FLAGS = DEF(GCC5_ARM_ASM_FLAGS)
> +DEFINE COREBOOT_AARCH64_ASM_FLAGS = DEF(GCC5_AARCH64_ASM_FLAGS)
> +DEFINE COREBOOT_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS)
> +DEFINE COREBOOT_ARM_CC_XIPFLAGS = DEF(GCC5_ARM_CC_XIPFLAGS)
> +DEFINE COREBOOT_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS)
> +DEFINE COREBOOT_AARCH64_CC_XIPFLAGS = DEF(GCC5_AARCH64_CC_XIPFLAGS)
> +DEFINE COREBOOT_ARM_DLINK_FLAGS = DEF(GCC5_ARM_DLINK_FLAGS)
> +DEFINE COREBOOT_ARM_DLINK2_FLAGS = DEF(GCC5_ARM_DLINK2_FLAGS)
> +DEFINE COREBOOT_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS)
> +DEFINE COREBOOT_AARCH64_DLINK2_FLAGS = DEF(GCC5_AARCH64_DLINK2_FLAGS)
> +DEFINE COREBOOT_ARM_ASLDLINK_FLAGS = DEF(GCC5_ARM_ASLDLINK_FLAGS)
> +DEFINE COREBOOT_AARCH64_ASLDLINK_FLAGS = DEF(GCC5_AARCH64_ASLDLINK_FLAGS)
> +
> ####################################################################################
> #
> # Unix GCC And Intel Linux ACPI Compiler
> @@ -5413,6 +5441,159 @@ RELEASE_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os -L$(W
> NOOPT_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 -O0
> NOOPT_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0
>
> +####################################################################################
> +#
> +# COREBOOT - This configuration is used to compile under Linux to produce
> +# PE/COFF binaries using coreboot's toolchain
> +#
> +####################################################################################
> +*_COREBOOT_*_*_FAMILY = GCC
> +
> +*_COREBOOT_*_MAKE_PATH = DEF(COREBOOT_PREFIX)make
> +*_COREBOOT_*_*_DLL = ENV(COREBOOT_DLL)
> +*_COREBOOT_*_ASL_PATH = DEF(COREBOOT_PREFIX)iasl
> +
> +*_COREBOOT_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
> +*_COREBOOT_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
> +*_COREBOOT_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
> +*_COREBOOT_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
> +*_COREBOOT_*_APP_FLAGS =
> +*_COREBOOT_*_ASL_FLAGS = DEF(IASL_FLAGS)
> +*_COREBOOT_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
> +
> +##################
> +# COREBOOT IA32 definitions
> +##################
> +*_COREBOOT_IA32_OBJCOPY_PATH = DEF(COREBOOT_IA32_PREFIX)objcopy
> +*_COREBOOT_IA32_CC_PATH = DEF(COREBOOT_IA32_PREFIX)gcc
> +*_COREBOOT_IA32_SLINK_PATH = DEF(COREBOOT_IA32_PREFIX)gcc-ar
> +*_COREBOOT_IA32_DLINK_PATH = DEF(COREBOOT_IA32_PREFIX)gcc
> +*_COREBOOT_IA32_ASLDLINK_PATH = DEF(COREBOOT_IA32_PREFIX)gcc
> +*_COREBOOT_IA32_ASM_PATH = DEF(COREBOOT_IA32_PREFIX)gcc
> +*_COREBOOT_IA32_PP_PATH = DEF(COREBOOT_IA32_PREFIX)gcc
> +*_COREBOOT_IA32_VFRPP_PATH = DEF(COREBOOT_IA32_PREFIX)gcc
> +*_COREBOOT_IA32_ASLCC_PATH = DEF(COREBOOT_IA32_PREFIX)gcc
> +*_COREBOOT_IA32_ASLPP_PATH = DEF(COREBOOT_IA32_PREFIX)gcc
> +*_COREBOOT_IA32_RC_PATH = DEF(COREBOOT_IA32_PREFIX)objcopy
> +
> +*_COREBOOT_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto
> +*_COREBOOT_IA32_ASLDLINK_FLAGS = DEF(COREBOOT_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
> +*_COREBOOT_IA32_ASM_FLAGS = DEF(COREBOOT_ASM_FLAGS) -m32 -march=i386
> +*_COREBOOT_IA32_DLINK2_FLAGS = DEF(COREBOOT_IA32_DLINK2_FLAGS)
> +*_COREBOOT_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
> +*_COREBOOT_IA32_OBJCOPY_FLAGS =
> +*_COREBOOT_IA32_NASM_FLAGS = -f elf32
> +
> + DEBUG_COREBOOT_IA32_CC_FLAGS = DEF(COREBOOT_IA32_CC_FLAGS) -flto -Os
> + DEBUG_COREBOOT_IA32_DLINK_FLAGS = DEF(COREBOOT_IA32_X64_DLINK_FLAGS) -flto -Os
> -Wl,-m,elf_i386,--oformat=elf32-i386
> +
> +RELEASE_COREBOOT_IA32_CC_FLAGS = DEF(COREBOOT_IA32_CC_FLAGS) -flto -Os -Wno-unused-but-set-variable
> +RELEASE_COREBOOT_IA32_DLINK_FLAGS = DEF(COREBOOT_IA32_X64_DLINK_FLAGS) -flto -Os
> -Wl,-m,elf_i386,--oformat=elf32-i386
> +
> + NOOPT_COREBOOT_IA32_CC_FLAGS = DEF(COREBOOT_IA32_CC_FLAGS) -O0
> + NOOPT_COREBOOT_IA32_DLINK_FLAGS = DEF(COREBOOT_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386
> -O0
> +
> +##################
> +# COREBOOT X64 definitions
> +##################
> +*_COREBOOT_X64_OBJCOPY_PATH = DEF(COREBOOT_X64_PREFIX)objcopy
> +*_COREBOOT_X64_CC_PATH = DEF(COREBOOT_X64_PREFIX)gcc
> +*_COREBOOT_X64_SLINK_PATH = DEF(COREBOOT_X64_PREFIX)gcc-ar
> +*_COREBOOT_X64_DLINK_PATH = DEF(COREBOOT_X64_PREFIX)gcc
> +*_COREBOOT_X64_ASLDLINK_PATH = DEF(COREBOOT_X64_PREFIX)gcc
> +*_COREBOOT_X64_ASM_PATH = DEF(COREBOOT_X64_PREFIX)gcc
> +*_COREBOOT_X64_PP_PATH = DEF(COREBOOT_X64_PREFIX)gcc
> +*_COREBOOT_X64_VFRPP_PATH = DEF(COREBOOT_X64_PREFIX)gcc
> +*_COREBOOT_X64_ASLCC_PATH = DEF(COREBOOT_X64_PREFIX)gcc
> +*_COREBOOT_X64_ASLPP_PATH = DEF(COREBOOT_X64_PREFIX)gcc
> +*_COREBOOT_X64_RC_PATH = DEF(COREBOOT_X64_PREFIX)objcopy
> +
> +*_COREBOOT_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto
> +*_COREBOOT_X64_ASLDLINK_FLAGS = DEF(COREBOOT_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
> +*_COREBOOT_X64_ASM_FLAGS = DEF(COREBOOT_ASM_FLAGS) -m64
> +*_COREBOOT_X64_DLINK2_FLAGS = DEF(COREBOOT_X64_DLINK2_FLAGS)
> +*_COREBOOT_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
> +*_COREBOOT_X64_OBJCOPY_FLAGS =
> +*_COREBOOT_X64_NASM_FLAGS = -f elf64
> +
> + DEBUG_COREBOOT_X64_CC_FLAGS = DEF(COREBOOT_X64_CC_FLAGS) -flto -DUSING_LTO -Os
> + DEBUG_COREBOOT_X64_DLINK_FLAGS = DEF(COREBOOT_X64_DLINK_FLAGS) -flto -Os
> +
> +RELEASE_COREBOOT_X64_CC_FLAGS = DEF(COREBOOT_X64_CC_FLAGS) -flto -DUSING_LTO -Os
> -Wno-unused-but-set-variable
> +RELEASE_COREBOOT_X64_DLINK_FLAGS = DEF(COREBOOT_X64_DLINK_FLAGS) -flto -Os
> +
> + NOOPT_COREBOOT_X64_CC_FLAGS = DEF(COREBOOT_X64_CC_FLAGS) -O0
> + NOOPT_COREBOOT_X64_DLINK_FLAGS = DEF(COREBOOT_X64_DLINK_FLAGS) -O0
> +
> +##################
> +# COREBOOT ARM definitions
> +##################
> +*_COREBOOT_ARM_CC_PATH = ENV(COREBOOT_ARM_PREFIX)gcc
> +*_COREBOOT_ARM_SLINK_PATH = ENV(COREBOOT_ARM_PREFIX)gcc-ar
> +*_COREBOOT_ARM_DLINK_PATH = ENV(COREBOOT_ARM_PREFIX)gcc
> +*_COREBOOT_ARM_ASLDLINK_PATH = ENV(COREBOOT_ARM_PREFIX)gcc
> +*_COREBOOT_ARM_ASM_PATH = ENV(COREBOOT_ARM_PREFIX)gcc
> +*_COREBOOT_ARM_PP_PATH = ENV(COREBOOT_ARM_PREFIX)gcc
> +*_COREBOOT_ARM_VFRPP_PATH = ENV(COREBOOT_ARM_PREFIX)gcc
> +*_COREBOOT_ARM_ASLCC_PATH = ENV(COREBOOT_ARM_PREFIX)gcc
> +*_COREBOOT_ARM_ASLPP_PATH = ENV(COREBOOT_ARM_PREFIX)gcc
> +*_COREBOOT_ARM_RC_PATH = ENV(COREBOOT_ARM_PREFIX)objcopy
> +
> +*_COREBOOT_ARM_ARCHCC_FLAGS = -mthumb
> +*_COREBOOT_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
> +*_COREBOOT_ARM_ASLDLINK_FLAGS = DEF(COREBOOT_ARM_ASLDLINK_FLAGS)
> +*_COREBOOT_ARM_ASM_FLAGS = DEF(COREBOOT_ARM_ASM_FLAGS)
> +*_COREBOOT_ARM_DLINK2_FLAGS = DEF(COREBOOT_ARM_DLINK2_FLAGS)
> +*_COREBOOT_ARM_PLATFORM_FLAGS = -march=armv7-a
> +*_COREBOOT_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
> +*_COREBOOT_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS)
> +*_COREBOOT_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
> +*_COREBOOT_ARM_CC_XIPFLAGS = DEF(COREBOOT_ARM_CC_XIPFLAGS)
> +
> + DEBUG_COREBOOT_ARM_CC_FLAGS = DEF(COREBOOT_ARM_CC_FLAGS) -O0
> + DEBUG_COREBOOT_ARM_DLINK_FLAGS = DEF(COREBOOT_ARM_DLINK_FLAGS)
> +
> +RELEASE_COREBOOT_ARM_CC_FLAGS = DEF(COREBOOT_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable
> +RELEASE_COREBOOT_ARM_DLINK_FLAGS = DEF(COREBOOT_ARM_DLINK_FLAGS) -flto -Os
> -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm
> +
> + NOOPT_COREBOOT_ARM_CC_FLAGS = DEF(COREBOOT_ARM_CC_FLAGS) -O0
> + NOOPT_COREBOOT_ARM_DLINK_FLAGS = DEF(COREBOOT_ARM_DLINK_FLAGS) -O0
> +
> +##################
> +# COREBOOT AARCH64 definitions
> +##################
> +*_COREBOOT_AARCH64_CC_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc
> +*_COREBOOT_AARCH64_SLINK_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc-ar
> +*_COREBOOT_AARCH64_DLINK_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc
> +*_COREBOOT_AARCH64_ASLDLINK_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc
> +*_COREBOOT_AARCH64_ASM_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc
> +*_COREBOOT_AARCH64_PP_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc
> +*_COREBOOT_AARCH64_VFRPP_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc
> +*_COREBOOT_AARCH64_ASLCC_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc
> +*_COREBOOT_AARCH64_ASLPP_PATH = ENV(COREBOOT_AARCH64_PREFIX)gcc
> +*_COREBOOT_AARCH64_RC_PATH = ENV(COREBOOT_AARCH64_PREFIX)objcopy
> +
> +*_COREBOOT_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
> +*_COREBOOT_AARCH64_ASLDLINK_FLAGS = DEF(COREBOOT_AARCH64_ASLDLINK_FLAGS)
> +*_COREBOOT_AARCH64_ASM_FLAGS = DEF(COREBOOT_AARCH64_ASM_FLAGS)
> +*_COREBOOT_AARCH64_DLINK2_FLAGS = DEF(COREBOOT_AARCH64_DLINK2_FLAGS)
> +*_COREBOOT_AARCH64_PLATFORM_FLAGS =
> +*_COREBOOT_AARCH64_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
> +*_COREBOOT_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS)
> +*_COREBOOT_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
> +*_COREBOOT_AARCH64_CC_XIPFLAGS = DEF(COREBOOT_AARCH64_CC_XIPFLAGS)
> +
> + DEBUG_COREBOOT_AARCH64_CC_FLAGS = DEF(COREBOOT_AARCH64_CC_FLAGS) -O0 -mcmodel=small
> + DEBUG_COREBOOT_AARCH64_DLINK_FLAGS = DEF(COREBOOT_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000
> + DEBUG_COREBOOT_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
> +
> +RELEASE_COREBOOT_AARCH64_CC_FLAGS = DEF(COREBOOT_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable
> -mcmodel=tiny -fomit-frame-pointer
> +RELEASE_COREBOOT_AARCH64_DLINK_FLAGS = DEF(COREBOOT_AARCH64_DLINK_FLAGS) -flto -Os
> -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch
> +
> + NOOPT_COREBOOT_AARCH64_CC_FLAGS = DEF(COREBOOT_AARCH64_CC_FLAGS) -O0 -mcmodel=small
> + NOOPT_COREBOOT_AARCH64_DLINK_FLAGS = DEF(COREBOOT_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 -O0
> + NOOPT_COREBOOT_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0
> +
> ####################################################################################
> #
> # CLANG35 - This configuration is used to compile under Linux to produce
> --
> 2.13.2.725.g09c95d1e9-goog
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
next prev parent reply other threads:[~2017-07-10 14:44 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-04 15:22 [PATCH] BaseTools: Add COREBOOT tools definition Patrick Georgi
2017-07-10 14:46 ` Gao, Liming [this message]
2017-07-10 15:05 ` Patrick Georgi
2017-07-11 14:00 ` Gao, Liming
-- strict thread matches above, loose matches on Subject: below --
2017-06-30 22:39 Patrick Georgi
2017-07-03 3:08 ` Gao, Liming
2017-07-07 9:16 ` Patrick Georgi
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=4A89E2EF3DFEDB4C8BFDE51014F606A14D753010@shsmsx102.ccr.corp.intel.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