From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: "Chang, Abner (HPS SW/FW Technologist)" <abner.chang@hpe.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>,
"Bi, Dandan" <dandan.bi@intel.com>,
"Kinney, Michael D" <michael.d.kinney@intel.com>
Cc: Leif Lindholm <leif@nuviainc.com>,
"Gao, Liming" <liming.gao@intel.com>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Laszlo Ersek <lersek@redhat.com>,
"Schaefer, Daniel (DualStudy)" <daniel.schaefer@hpe.com>,
"Chen, Gilbert" <gilbert.chen@hpe.com>
Subject: Re: [edk2-devel] [edk2/master PATCH DxeIplHandoffLib v1] MdePkg/DxeIplHandoffLibNullLib: Abstract DxeIpl
Date: Fri, 20 Mar 2020 00:59:30 +0000 [thread overview]
Message-ID: <E92EE9817A31E24EB0585FDF735412F5B9EEC5D3@ORSMSX113.amr.corp.intel.com> (raw)
In-Reply-To: <TU4PR8401MB04299C3D700EB6BB51033B3FFFF40@TU4PR8401MB0429.NAMPRD84.PROD.OUTLOOK.COM>
Abner,
If the ARM/AARCH64/RISCV64 content required by DxeIpl were added to
MdePkg or MdeModulePkg could we remove the need for this new lib class?
What RISCV64 content needs to be added to MdePkg/MdeModulePkg so all
CPUs are supported the same way?
Thanks,
Mike
> -----Original Message-----
> From: Chang, Abner (HPS SW/FW Technologist)
> <abner.chang@hpe.com>
> Sent: Wednesday, March 18, 2020 8:22 PM
> To: devel@edk2.groups.io; Bi, Dandan
> <dandan.bi@intel.com>
> Cc: Leif Lindholm <leif@nuviainc.com>; Kinney, Michael
> D <michael.d.kinney@intel.com>; Gao, Liming
> <liming.gao@intel.com>; Ard Biesheuvel
> <ard.biesheuvel@linaro.org>; Laszlo Ersek
> <lersek@redhat.com>; Schaefer, Daniel (DualStudy)
> <daniel.schaefer@hpe.com>; Chen, Gilbert
> <gilbert.chen@hpe.com>
> Subject: RE: [edk2-devel] [edk2/master PATCH
> DxeIplHandoffLib v1] MdePkg/DxeIplHandoffLibNullLib:
> Abstract DxeIpl
>
>
> > -----Original Message-----
> > From: devel@edk2.groups.io
> [mailto:devel@edk2.groups.io] On Behalf Of
> > Dandan Bi
> > Sent: Thursday, March 19, 2020 11:09 AM
> > To: devel@edk2.groups.io; Chang, Abner (HPS SW/FW
> Technologist)
> > <abner.chang@hpe.com>
> > Cc: Leif Lindholm <leif@nuviainc.com>; Kinney,
> Michael D
> > <michael.d.kinney@intel.com>; Gao, Liming
> <liming.gao@intel.com>; Ard
> > Biesheuvel <ard.biesheuvel@linaro.org>; Laszlo Ersek
> <lersek@redhat.com>;
> > Schaefer, Daniel (DualStudy)
> <daniel.schaefer@hpe.com>; Chen, Gilbert
> > <gilbert.chen@hpe.com>
> > Subject: Re: [edk2-devel] [edk2/master PATCH
> DxeIplHandoffLib v1]
> > MdePkg/DxeIplHandoffLibNullLib: Abstract DxeIpl
> >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io
> [mailto:devel@edk2.groups.io] On Behalf Of
> > > Abner Chang
> > > Sent: Monday, March 16, 2020 10:17 AM
> > > To: Bi, Dandan <dandan.bi@intel.com>;
> devel@edk2.groups.io
> > > Cc: Leif Lindholm <leif@nuviainc.com>; Kinney,
> Michael D
> > > <michael.d.kinney@intel.com>; Gao, Liming
> <liming.gao@intel.com>; Ard
> > > Biesheuvel <ard.biesheuvel@linaro.org>; Laszlo
> Ersek
> > > <lersek@redhat.com>; Schaefer, Daniel (DualStudy)
> > > <daniel.schaefer@hpe.com>; Chen, Gilbert
> <gilbert.chen@hpe.com>
> > > Subject: Re: [edk2-devel] [edk2/master PATCH
> DxeIplHandoffLib v1]
> > > MdePkg/DxeIplHandoffLibNullLib: Abstract DxeIpl
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Bi, Dandan [mailto:dandan.bi@intel.com]
> > > > Sent: Monday, March 16, 2020 9:31 AM
> > > > To: Chang, Abner (HPS SW/FW Technologist)
> <abner.chang@hpe.com>;
> > > > devel@edk2.groups.io
> > > > Cc: Leif Lindholm <leif@nuviainc.com>; Kinney,
> Michael D
> > > > <michael.d.kinney@intel.com>; Gao, Liming
> <liming.gao@intel.com>;
> > > > Ard Biesheuvel <ard.biesheuvel@linaro.org>;
> Laszlo Ersek
> > > > <lersek@redhat.com>; Schaefer, Daniel (DualStudy)
> > > > <daniel.schaefer@hpe.com>; Chen, Gilbert
> <gilbert.chen@hpe.com>
> > > > Subject: RE: [edk2/master PATCH DxeIplHandoffLib
> v1]
> > > > MdePkg/DxeIplHandoffLibNullLib: Abstract DxeIpl
> > > >
> > > > Hi Abner,
> > > >
> > > > Some comments as below.
> > > >
> > > > 1. For the patch itself
> > > > a) it introduces a new library class, so besides
> the instance, we
> > > > also need to add the header file (public
> interface definitions) in
> > > > the include/library directory and define the
> library class in dec file.
> > > > b) EFIAPI keyword should be added with the
> public API definition (
> > > > HandOffToDxeCore).
> > > Ok. Will resend the patch.
> > >
> > > >
> > > > 2. This path is just to add an empty instance for
> now.
> > > > Abner, will you also add other instances for
> other Archs and update
> > > > DxeIpl to consume the new library?
> > > The purpose of this change is to abstract arch from
> DxeIpl module
> > > under MdeModulePkg and remove the dependencies with
> arch package
> > from
> > > MdeModulePkg.ci.yaml.
> > > Yes, I already added an instance for RISC-V and
> revised DxeIpl to
> > > consume new lib *only* for RISCV64 arch, this
> change will be in the
> > > set of RISC-V edk2 patches. The patch you are
> reviewing now is the
> > > prerequisite for RISC-V edk2 port.
> > >
> > > > And for platform, it's incompatible change to use
> new added library
> > > instance.
> > > > So it's better review it in TianoCore Design
> Meeting firstly.
> > > It will stay the same for X86, ARM may have to use
> this NULL instance
> > > and remove the dependencies from
> MdeModulePkg.ci.yaml as well.
> > > However, I can't speak for ARM because the
> dependence with ARM
> > package
> > > in MdeModulePkg has been in MdeModulePkg.ci.yaml
> when edk2 CI was
> > > introduced (my guess, not sure the history).
> RISCV64 is a new arch and
> > > was requested to be decoupled from MdeModulePkg.
> This change don't
> > > bring incompatible issue though. ARM arch can still
> stay the same as
> > > it is in edk2 now.
> > Abner,
> > So you will only and one instance used for RISCV64,
> no instance for other
> > archs.
> Yes.
>
> > HandOffToDxeCore logic in DxeLoadFunc.c for IA32 and
> X64 will keep same
> > with before, do not leverage new DxeIplHandoffLib
> Then there is no
> > incompatible concern for IA32 and X64, is that
> correct?
> No, no impacts on architectures other than RISC-V. X86
> doesn't have to change because there is no package
> dependency issues when edk2 CI testing.
> ARM still have problem if they keep the same way,
> however they are good because CI package test has an
> exception for ARM in MdeModulePkg.ci.yaml.
>
> I will get on TianoCore design meeting tomorrow and
> have a short presentation of this change. FYI.
>
> >
> > Thanks,
> > Dandan
> > >
> > > >
> > > >
> > > >
> > > > Thanks,
> > > > Dandan
> > > > > -----Original Message-----
> > > > > From: Abner Chang [mailto:abner.chang@hpe.com]
> > > > > Sent: Monday, March 9, 2020 6:28 PM
> > > > > To: devel@edk2.groups.io
> > > > > Cc: abner.chang@hpe.com; Leif Lindholm
> <leif@nuviainc.com>;
> > > > > Kinney, Michael D <michael.d.kinney@intel.com>;
> Gao, Liming
> > > > > <liming.gao@intel.com>; Ard Biesheuvel
> > > > > <ard.biesheuvel@linaro.org>; Laszlo Ersek
> <lersek@redhat.com>; Bi,
> > > > > Dandan <dandan.bi@intel.com>; Daniel Schaefer
> > > > > <daniel.schaefer@hpe.com>; Gilbert Chen
> <gilbert.chen@hpe.com>
> > > > > Subject: [edk2/master PATCH DxeIplHandoffLib
> v1]
> > > > > MdePkg/DxeIplHandoffLibNullLib: Abstract DxeIpl
> > > > >
> > > > > BZ:2583:
> > > > > INVALID URI REMOVED
> > > > > e.org_show-5Fbug.cgi-3Fid-
> > > > 3D2583&d=DwIFAg&c=C5b8zRQO1miGmBeVZ2LFWg&r=_
> > > > >
> > > >
> > >
> >
> SN6FZBN4Vgi4Ulkskz6qU3NYRO03nHp9P7Z5q59A3E&m=YQR7NX_kxz
> 4BPRET
> > > > p5nNLWWOK
> > > > >
> > > >
> > >
> >
> NOimkostEzdrvyvPkA&s=7wyyAOitp2IvMKv19tlpbJxt2m0bn_ZsR4
> R7llYI19c&
> > > > e=
> > > > >
> > > > > Current DxeIpl has bindings for different
> processor architectures,
> > > > > this results in MdeModulePkg has the dependence
> with processor
> > > > > architecture packages such as ArmPkg or
> RiscVPkg. This also leads
> > > > > CI testing to error during package dependency
> check. Provide a
> > > > > default DxeIplHandoff library to abstract
> processor architecture
> > > > > from DxeIpl driver, platform can provide its
> own library instance
> > > > > for the processor
> > > > architecture- specific implementation.
> > > > >
> > > > > Signed-off-by: Abner Chang
> <abner.chang@hpe.com>
> > > > >
> > > > > Cc: Leif Lindholm <leif@nuviainc.com>
> > > > > Cc: Michael D Kinney
> <michael.d.kinney@intel.com>
> > > > > Cc: Liming Gao <liming.gao@intel.com>
> > > > > Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > > > > Cc: Laszlo Ersek <lersek@redhat.com>
> > > > > Cc: Dandan Bi <dandan.bi@intel.com>
> > > > > Cc: Daniel Schaefer <daniel.schaefer@hpe.com>
> > > > > Cc: Gilbert Chen <gilbert.chen@hpe.com>
> > > > > ---
> > > > > MdeModulePkg/MdeModulePkg.dsc
> | 2 ++
> > > > > .../DxeIplHandoffLibNull.inf
> | 30 +++++++++++++++++
> > > > > .../DxeIplHandoffLibNull.c
> | 33 +++++++++++++++++++
> > > > > .../DxeIplHandoffLibNull.uni
> | 14 ++++++++
> > > > > 4 files changed, 79 insertions(+) create mode
> 100644
> > > > >
> >
> MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHandoff
> LibNull.inf
> > > > > create mode 100644
> > > > >
> MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHandoff
> LibNull.c
> > > > > create mode 100644
> > > > >
> >
> MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHandoff
> LibNull.uni
> > > > >
> > > > > diff --git a/MdeModulePkg/MdeModulePkg.dsc
> > > > > b/MdeModulePkg/MdeModulePkg.dsc index
> f7dbb27ce2..6eb922dfaa
> > > > > 100644
> > > > > --- a/MdeModulePkg/MdeModulePkg.dsc
> > > > > +++ b/MdeModulePkg/MdeModulePkg.dsc
> > > > > @@ -3,6 +3,7 @@
> > > > > # # (C) Copyright 2014 Hewlett-Packard
> Development Company,
> > > > > L.P.<BR> # Copyright (c) 2007 - 2019, Intel
> Corporation. All
> > > > > rights reserved.<BR>+# Copyright (c) 2020,
> Hewlett Packard
> > > > > Enterprise
> > > > Development LP. All rights
> > > > > reserved.<BR> # # SPDX-License-Identifier:
> BSD-2-Clause-Patent
> > #@@ -
> > > > > 321,6 +322,7 @@
> > > > >
> MdeModulePkg/Library/BaseBmpSupportLib/BaseBmpSupportLi
> b.inf
> > > > >
> > > >
> > >
> >
> MdeModulePkg/Library/DisplayUpdateProgressLibGraphics/D
> isplayUpdateP
> > > > > rogressLibGraphics.inf
> > > > >
> > > >
> > >
> >
> MdeModulePkg/Library/DisplayUpdateProgressLibText/Displ
> ayUpdateProgr
> > > > > essLibText.inf+
> > > > >
> >
> MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHandoff
> LibNull.inf
> > > > > MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
> > > > >
> > > >
> > >
> >
> MdeModulePkg/Application/BootManagerMenuApp/BootManager
> MenuAp
> > > > > p.infdiff --git
> > > > >
> > >
> a/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.inf
> > > > >
> > >
> b/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.inf
> > > > > new file mode 100644
> > > > > index 0000000000..b7210656b7
> > > > > --- /dev/null
> > > > > +++
> > > > >
> > >
> b/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.inf
> > > > > @@ -0,0 +1,30 @@
> > > > > +## @file+# Null DXE IPL handoff to DXE Core
> Library
> > > > > +instance.+#+#
> > > > > Copyright (c) 2020, Hewlett Packard Enterprise
> Development LP. All
> > > > > rights reserved.<BR>+#+# SPDX-License-
> Identifier: BSD-2-Clause-
> > > > > Patent+#+##++[Defines]+ INF_VERSION
> = 0x0001001b+
> > > > > BASE_NAME =
> DxeIplHandoffLibNull+ MODULE_UNI_FILE
> > > > > = DxeIplHandoffLibNull.uni+ FILE_GUID
> = 5c18812d-3684-
> > 4093-
> > > > > bc75-fc846a595353+ MODULE_TYPE
> = BASE+
> > VERSION_STRING
> > > > > = 1.0+ LIBRARY_CLASS =
> DxeIplHandoffLib++#+# The following
> > > > > information is for reference only and not
> required by the build
> > tools.+#+#
> > > > > VALID_ARCHITECTURES =
> RISCV64+#++[Sources]+
> > > > > DxeIplHandoffLibNull.c++[Packages]+
> MdePkg/MdePkg.dec+diff --git
> > > > >
> >
> a/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.c
> > > > >
> >
> b/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.c
> > > > > new file mode 100644
> > > > > index 0000000000..c83922cb6e
> > > > > --- /dev/null
> > > > > +++
> > > >
> b/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.c
> > > > > @@ -0,0 +1,33 @@
> > > > > +/** @file+ NULL instance of DXE IPL handoff
> to DXE Core
> > > > > +Library.++
> > > > > Copyright (c) 2020, Hewlett Packard Enterprise
> Development LP. All
> > > > > rights reserved.<BR>++ SPDX-License-
> Identifier: BSD-2-Clause-
> > > > > Patent++**/++#include <PiPei.h>+#include
> > > <Library/DebugLib.h>++/**+
> > > > > Transfers control to DxeCore.++ This function
> performs a CPU
> > > architecture
> > > > > specific operations to execute+ the entry
> point of DxeCore with the
> > > > > parameters of HobList.+ It also installs
> EFI_END_OF_PEI_PPI to signal
> > the
> > > > > end of PEI phase.++ @param DxeCoreEntryPoint
> The entry point
> > of
> > > > > DxeCore.+ @param HobList
> The start of HobList passed to
> > > > > DxeCore.++**/+VOID+HandOffToDxeCore (+ IN
> > > EFI_PHYSICAL_ADDRESS
> > > > > DxeCoreEntryPoint,+ IN EFI_PEI_HOB_POINTERS
> HobList+ )+{+
> > DEBUG
> > > > > ((DEBUG_INFO, "No implementation of DXE IPL
> handoff to DXE Core
> > > > > library.\r\n"));+ ASSERT (FALSE);+}+diff --git
> > > > >
> > >
> a/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.uni
> > > > >
> > >
> b/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.uni
> > > > > new file mode 100644
> > > > > index 0000000000..5a8973d6e5
> > > > > --- /dev/null
> > > > > +++
> > > > >
> > >
> b/MdeModulePkg/Library/DxeIplHandoffLibNull/DxeIplHando
> ffLibNull.uni
> > > > > @@ -0,0 +1,14 @@
> > > > > +// /** @file+// Null DXE IPL handoff to DXE
> Core Library
> > > > > +instance.+//+//
> > > > > Copyright (c) 2020, Hewlett Packard Enterprise
> Development LP. All
> > > > > rights reserved.<BR>+//+// SPDX-License-
> Identifier: BSD-2-Clause-
> > > > Patent+//+//
> > > > > **/+++#string STR_MODULE_ABSTRACT
> #language en-US "Null
> > > DXE
> > > > > IPL handoff to DXE Core Library
> instance."++#string
> > > > > STR_MODULE_DESCRIPTION #language en-US
> "Null DXE IPL
> > handoff
> > > to
> > > > > DXE Core Library instance."+--
> > > > > 2.25.0
> > >
> > >
> > >
> >
> >
> >
>
next prev parent reply other threads:[~2020-03-20 0:59 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-09 10:27 [edk2/master PATCH DxeIplHandoffLib v1] MdePkg/DxeIplHandoffLibNullLib: Abstract DxeIpl Abner Chang
2020-03-16 1:31 ` Dandan Bi
2020-03-16 2:16 ` Abner Chang
2020-03-19 3:09 ` [edk2-devel] " Dandan Bi
2020-03-19 3:21 ` Abner Chang
2020-03-20 0:59 ` Michael D Kinney [this message]
2020-03-20 1:28 ` Abner Chang
[not found] ` <15FCA733F3A77F98.14939@groups.io>
2020-03-26 1:12 ` Abner Chang
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=E92EE9817A31E24EB0585FDF735412F5B9EEC5D3@ORSMSX113.amr.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