From: "Guomin Jiang" <guomin.jiang@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"pankaj.bansal@nxp.com" <pankaj.bansal@nxp.com>,
Leif Lindholm <leif@nuviainc.com>, "Ni, Ray" <ray.ni@intel.com>
Cc: "Pankaj Bansal (OSS)" <pankaj.bansal@oss.nxp.com>,
"Wang, Jian J" <jian.j.wang@intel.com>,
"Wu, Hao A" <hao.a.wu@intel.com>,
"Ma, Maurice" <maurice.ma@intel.com>,
"Dong, Guo" <guo.dong@intel.com>,
"You, Benjamin" <benjamin.you@intel.com>,
Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>,
Varun Sethi <V.Sethi@nxp.com>
Subject: Re: [edk2-devel] [PATCH 1/1] MdeModulePkg: UART Dynamic clock freq Support
Date: Thu, 26 Mar 2020 14:13:44 +0000 [thread overview]
Message-ID: <B1F5B0856690F44595CF70FED755C93954BC07@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <VI1PR04MB59333CFB9326E8B8F9224774F1F00@VI1PR04MB5933.eurprd04.prod.outlook.com>
It is a good idea,
I have a question:
1. When can detect the jumper signal or register?
2. If the jumper use GPIO, SerialUartClockLib will depend on GpioLib?
3. If the register is inside SIO, how to dispose the dependence?
If it is too complex to implement the SerialUartClockLib, the project owner will choose use BaseSerialUartClockLib rather implement it. and in this case, it make no sense after import complexity.
I have also reviewed the ArmPlatformPkg/Library/PL011UartClockLib code, it still use the fixed data rather than dynamically detect clock.
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Pankaj
> Bansal
> Sent: Monday, March 23, 2020 1:31 PM
> To: Leif Lindholm <leif@nuviainc.com>; Ni, Ray <ray.ni@intel.com>
> Cc: Pankaj Bansal (OSS) <pankaj.bansal@oss.nxp.com>; Wang, Jian J
> <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Ma, Maurice
> <maurice.ma@intel.com>; Dong, Guo <guo.dong@intel.com>; You,
> Benjamin <benjamin.you@intel.com>; Meenakshi Aggarwal
> <meenakshi.aggarwal@nxp.com>; Varun Sethi <V.Sethi@nxp.com>;
> devel@edk2.groups.io
> Subject: Re: [edk2-devel] [PATCH 1/1] MdeModulePkg: UART Dynamic clock
> freq Support
>
> Hi Ray,
>
> I had thought of making PcdSerialClockRate as Dynamic PCD I had made
> changes for it too.
> But it doesn't work.
> SerialPortInitalize, which uses PcdSerialClockRate, gets called from DebugLib
> constructor.
> DebugLib is used by every module to print any info onto console.
> For DxeCore and PcdDxe, for which PcdLib instance is NULL, this results in
> Assert :
>
> https://github.com/tianocore/edk2/blob/master/MdePkg/Library/BasePcdLi
> bNull/PcdLib.c#L123
>
> The other approach that I thought of was, to copy BaseSerialPortLib16550 for
> our platform and simply return EFI_SUCCESS from SerialPortInitalize.
> But as Leif pointed out, this results in code duplication.
>
> Regards,
> Pankaj Bansal
>
> > -----Original Message-----
> > From: Leif Lindholm <leif@nuviainc.com>
> > Sent: Thursday, March 19, 2020 9:01 PM
> > To: Ni, Ray <ray.ni@intel.com>
> > Cc: Pankaj Bansal (OSS) <pankaj.bansal@oss.nxp.com>; Wang, Jian J
> > <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>; Ma, Maurice
> > <maurice.ma@intel.com>; Dong, Guo <guo.dong@intel.com>; You,
> Benjamin
> > <benjamin.you@intel.com>; Meenakshi Aggarwal
> > <meenakshi.aggarwal@nxp.com>; Varun Sethi <V.Sethi@nxp.com>;
> > devel@edk2.groups.io; Pankaj Bansal <pankaj.bansal@nxp.com>
> > Subject: Re: [PATCH 1/1] MdeModulePkg: UART Dynamic clock freq
> Support
> >
> > Hi Ray,
> >
> > I agree it would be nice, but if not - this lets us get rid of
> > otherwise needless driver duplication. To me, that makes it worth a
> > little trivial churn.
> >
> > /
> > Leif
> >
> > On Thu, Mar 19, 2020 at 15:09:19 +0000, Ni, Ray wrote:
> > > It seems this change requires all platforms DSC to include the new
> > > library
> > class/instance.
> > >
> > > Is there a way that can avoid the platform impact?
> > >
> > > Thanks,
> > > Ray
> > >
> > > > -----Original Message-----
> > > > From: Pankaj Bansal <pankaj.bansal@oss.nxp.com>
> > > > Sent: Wednesday, February 19, 2020 9:32 PM
> > > > To: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A
> > <hao.a.wu@intel.com>; Ni, Ray <ray.ni@intel.com>; Ma, Maurice
> > > > <maurice.ma@intel.com>; Dong, Guo <guo.dong@intel.com>; You,
> > Benjamin <benjamin.you@intel.com>; Leif Lindholm
> > > > <leif@nuviainc.com>; Meenakshi Aggarwal
> > <meenakshi.aggarwal@nxp.com>; Varun Sethi <V.Sethi@nxp.com>
> > > > Cc: devel@edk2.groups.io; Pankaj Bansal <pankaj.bansal@nxp.com>
> > > > Subject: [PATCH 1/1] MdeModulePkg: UART Dynamic clock freq
> Support
> > > >
> > > > From: Pankaj Bansal <pankaj.bansal@nxp.com>
> > > >
> > > > Some platform support dynamic clocking, which is controlled by
> > > > some jumper setting or hardware registers. Result of that is that
> > > > PCD PcdSerialClockRate would need to be updated for frequency
> change.
> > > >
> > > > This patch implements support for dynamic frequency for Uart.
> > > >
> > > > This patch implements default lib, which is using Pcd. Platform
> > > > which needs dynamic clocking needs implement SerialUartClockLib
> > > >
> > > > This patch is based on ArmPlatformPkg/Library/PL011UartClockLib
> > > >
> > > > Signed-off-by: Pankaj Bansal <pankaj.bansal@nxp.com>
> > > > ---
> > > > .../Include/Library/SerialUartClockLib.h | 21 +++++++++++++++
> > > > .../BaseSerialPortLib16550.c | 9 ++++---
> > > > .../BaseSerialPortLib16550.inf | 2 +-
> > > > .../BaseSerialUartClockLib.c | 24 +++++++++++++++++
> > > > .../BaseSerialUartClockLib.inf | 27 +++++++++++++++++++
> > > > MdeModulePkg/MdeModulePkg.dsc | 2 ++
> > > > SourceLevelDebugPkg/SourceLevelDebugPkg.dsc | 1 +
> > > > UefiPayloadPkg/UefiPayloadPkgIa32.dsc | 1 +
> > > > UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc | 1 +
> > > > 9 files changed, 83 insertions(+), 5 deletions(-) create mode
> > > > 100644 MdeModulePkg/Include/Library/SerialUartClockLib.h
> > > > create mode 100644
> > MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockLib.c
> > > > create mode 100644
> > MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockLib.inf
> > > >
> > > > diff --git a/MdeModulePkg/Include/Library/SerialUartClockLib.h
> > b/MdeModulePkg/Include/Library/SerialUartClockLib.h
> > > > new file mode 100644
> > > > index 000000000000..b6b16f71d4cf
> > > > --- /dev/null
> > > > +++ b/MdeModulePkg/Include/Library/SerialUartClockLib.h
> > > > @@ -0,0 +1,21 @@
> > > > +/** @file
> > > > +*
> > > > +* Copyright 2020 NXP
> > > > +*
> > > > +* SPDX-License-Identifier: BSD-2-Clause-Patent
> > > > +*
> > > > +**/
> > > > +
> > > > +#ifndef SERIAL_UART_CLOCK_LIB_H__ #define
> > > > +SERIAL_UART_CLOCK_LIB_H__
> > > > +
> > > > +/**
> > > > + Return clock in for Uart IP
> > > > +**/
> > > > +UINT32
> > > > +EFIAPI
> > > > +BaseSerialPortGetClock (
> > > > + VOID
> > > > + );
> > > > +
> > > > +#endif
> > > > diff --git
> >
> a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
> > > >
> b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib165
> > > > 50.c index 9cb50dd80d56..2e0c05d5789e 100644
> > > > ---
> >
> a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
> > > > +++
> >
> b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
> > > > @@ -16,6 +16,7 @@
> > > > #include <Library/IoLib.h>
> > > > #include <Library/PciLib.h>
> > > > #include <Library/PlatformHookLib.h>
> > > > +#include <Library/SerialUartClockLib.h>
> > > > #include <Library/BaseLib.h>
> > > >
> > > > //
> > > > @@ -501,8 +502,8 @@ SerialPortInitialize (
> > > > // Calculate divisor for baud generator
> > > > // Ref_Clk_Rate / Baud_Rate / 16
> > > > //
> > > > - Divisor = PcdGet32 (PcdSerialClockRate) / (PcdGet32
> > > > (PcdSerialBaudRate) *
> > 16);
> > > > - if ((PcdGet32 (PcdSerialClockRate) % (PcdGet32
> > > > (PcdSerialBaudRate) *
> > 16)) >= PcdGet32 (PcdSerialBaudRate) * 8) {
> > > > + Divisor = BaseSerialPortGetClock () / (PcdGet32
> > > > + (PcdSerialBaudRate) * 16); if ((BaseSerialPortGetClock () %
> > > > + (PcdGet32 (PcdSerialBaudRate) * 16)) >=
> > PcdGet32 (PcdSerialBaudRate) * 8) {
> > > > Divisor++;
> > > > }
> > > >
> > > > @@ -1080,8 +1081,8 @@ SerialPortSetAttributes (
> > > > // Calculate divisor for baud generator
> > > > // Ref_Clk_Rate / Baud_Rate / 16
> > > > //
> > > > - Divisor = PcdGet32 (PcdSerialClockRate) / (SerialBaudRate *
> > > > 16);
> > > > - if ((PcdGet32 (PcdSerialClockRate) % (SerialBaudRate * 16)) >=
> > SerialBaudRate * 8) {
> > > > + Divisor = BaseSerialPortGetClock () / (SerialBaudRate * 16);
> > > > + if ((BaseSerialPortGetClock () % (SerialBaudRate * 16)) >=
> > > > + SerialBaudRate *
> > 8) {
> > > > Divisor++;
> > > > }
> > > >
> > > > diff --git
> > a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.i
> > nf
> > > >
> > b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.i
> > nf
> > > > index 8b4ae3f1d4ee..b4c16504f211 100644
> > > > ---
> > a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.i
> > nf
> > > > +++
> > b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.i
> > nf
> > > > @@ -24,6 +24,7 @@ [LibraryClasses]
> > > > IoLib
> > > > PlatformHookLib
> > > > PciLib
> > > > + SerialUartClockLib
> > > >
> > > > [Sources]
> > > > BaseSerialPortLib16550.c
> > > > @@ -37,7 +38,6 @@ [Pcd]
> > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate ##
> > CONSUMES
> > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialLineControl ##
> > CONSUMES
> > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialFifoControl ##
> > CONSUMES
> > > > - gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ##
> > CONSUMES
> > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialPciDeviceInfo ##
> > CONSUMES
> > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialExtendedTxFifoSize
> ##
> > CONSUMES
> > > > gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride ##
> > CONSUMES
> > > > diff --git
> > a/MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockLib.c
> > > > b/MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockL
> > > > ib.c
> > > > new file mode 100644
> > > > index 000000000000..7a0d0427cc4e
> > > > --- /dev/null
> > > > +++
> > b/MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockLib.c
> > > > @@ -0,0 +1,24 @@
> > > > +/** @file
> > > > +*
> > > > +* Copyright 2020 NXP
> > > > +*
> > > > +* SPDX-License-Identifier: BSD-2-Clause-Patent
> > > > +*
> > > > +**/
> > > > +
> > > > +#include <Base.h>
> > > > +#include <Library/PcdLib.h>
> > > > +
> > > > +/**
> > > > + Return clock in for Uart IP
> > > > +
> > > > + @return Pcd PcdSerialClockRate
> > > > +**/
> > > > +UINT32
> > > > +EFIAPI
> > > > +BaseSerialPortGetClock (
> > > > + VOID
> > > > + )
> > > > +{
> > > > + return PcdGet32 (PcdSerialClockRate); }
> > > > diff --git
> > a/MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockLib.i
> > nf
> > > >
> > b/MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockLib.i
> > nf
> > > > new file mode 100644
> > > > index 000000000000..91ba69436ed6
> > > > --- /dev/null
> > > > +++
> > b/MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockLib.i
> > nf
> > > > @@ -0,0 +1,27 @@
> > > > +#/* @file
> > > > +# Copyright 2020 NXP
> > > > +#
> > > > +# SPDX-License-Identifier: BSD-2-Clause-Patent # #*/
> > > > +
> > > > +[Defines]
> > > > + INF_VERSION = 0x0001001A
> > > > + BASE_NAME = BaseSerialUartClockLib
> > > > + FILE_GUID = fa65495e-d3c8-4ea3-9737-994e9ccbaf11
> > > > + MODULE_TYPE = BASE
> > > > + VERSION_STRING = 1.0
> > > > + LIBRARY_CLASS = SerialUartClockLib
> > > > +
> > > > +[Packages]
> > > > + MdePkg/MdePkg.dec
> > > > + MdeModulePkg/MdeModulePkg.dec
> > > > +
> > > > +[Sources.common]
> > > > + BaseSerialUartClockLib.c
> > > > +
> > > > +[LibraryClasses]
> > > > + PcdLib
> > > > +
> > > > +[Pcd]
> > > > + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate ##
> > CONSUMES
> > > > diff --git a/MdeModulePkg/MdeModulePkg.dsc
> > b/MdeModulePkg/MdeModulePkg.dsc
> > > > index f7dbb27ce25d..d581ca797b3b 100644
> > > > --- a/MdeModulePkg/MdeModulePkg.dsc
> > > > +++ b/MdeModulePkg/MdeModulePkg.dsc
> > > > @@ -65,6 +65,7 @@ [LibraryClasses]
> > > > UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
> > > >
> >
> SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementL
> ib/D
> > xeSecurityManagementLib.inf
> > > >
> >
> TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTem
> pl
> > TimerLib|at
> > e.inf
> > > > +
> >
> SerialUartClockLib|MdeModulePkg/Library/BaseSerialUartClockLib/BaseSer
> > SerialUartClockLib|ialU
> > artClockLib.inf
> > > >
> > SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNu
> > SerialPortLib|ll.inf
> > > >
> >
> CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.i
> n
> > CapsuleLib|f
> > > > PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
> > > > @@ -292,6 +293,7 @@ [Components]
> > > >
> >
> MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.
> inf
> > > >
> >
> MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeRep
> ortSt
> > atusCodeLib.inf
> > > >
> >
> MdeModulePkg/Library/RuntimeResetSystemLib/RuntimeResetSystemLib.i
> nf
> > > > +
> > MdeModulePkg/Library/BaseSerialUartClockLib/BaseSerialUartClockLib.inf
> > > >
> > MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
> > > >
> >
> MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull
> .i
> > nf
> > > >
> >
> MdeModulePkg/Library/DxeDebugPrintErrorLevelLib/DxeDebugPrintErrorLe
> ve
> > lLi
> > b.inf
> > > > diff --git a/SourceLevelDebugPkg/SourceLevelDebugPkg.dsc
> > b/SourceLevelDebugPkg/SourceLevelDebugPkg.dsc
> > > > index a1a1b81d03cb..c0ad88f26341 100644
> > > > --- a/SourceLevelDebugPkg/SourceLevelDebugPkg.dsc
> > > > +++ b/SourceLevelDebugPkg/SourceLevelDebugPkg.dsc
> > > > @@ -33,6 +33,7 @@ [LibraryClasses.common]
> > > >
> >
> SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchroni
> > SynchronizationLib|zati
> > onLib.inf
> > > > LocalApicLib|UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.inf
> > > >
> >
> PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/Base
> P
> > PeCoffGetEntryPointLib|eC
> > offGetEntryPointLib.inf
> > > > +
> >
> SerialUartClockLib|MdeModulePkg/Library/BaseSerialUartClockLib/BaseSer
> > SerialUartClockLib|ialU
> > artClockLib.inf
> > > >
> > SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPo
> > SerialPortLib|rtLib
> > 16550.inf
> > > >
> >
> PeCoffExtraActionLib|SourceLevelDebugPkg/Library/PeCoffExtraActionLibD
> > PeCoffExtraActionLib|ebu
> > g/PeCoffExtraActionLibDebug.inf
> > > >
> >
> TimerLib|UefiCpuPkg/Library/SecPeiDxeTimerLibUefiCpu/SecPeiDxeTimerLi
> b
> > TimerLib|Ue
> > fiCpu.inf
> > > > diff --git a/UefiPayloadPkg/UefiPayloadPkgIa32.dsc
> > b/UefiPayloadPkg/UefiPayloadPkgIa32.dsc
> > > > index d52945442e0e..a556a32b272c 100644
> > > > --- a/UefiPayloadPkg/UefiPayloadPkgIa32.dsc
> > > > +++ b/UefiPayloadPkg/UefiPayloadPkgIa32.dsc
> > > > @@ -174,6 +174,7 @@ [LibraryClasses]
> > > > #
> > > > TimerLib|UefiPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf
> > > >
> >
> ResetSystemLib|UefiPayloadPkg/Library/ResetSystemLib/ResetSystemLib.in
> > ResetSystemLib|f
> > > > +
> >
> SerialUartClockLib|MdeModulePkg/Library/BaseSerialUartClockLib/BaseSer
> > SerialUartClockLib|ialU
> > artClockLib.inf
> > > >
> > SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPo
> > SerialPortLib|rtLib
> > 16550.inf
> > > >
> >
> PlatformHookLib|UefiPayloadPkg/Library/PlatformHookLib/PlatformHookLib
> > PlatformHookLib|.in
> > f
> > > >
> >
> PlatformBootManagerLib|UefiPayloadPkg/Library/PlatformBootManagerLib/
> P
> > PlatformBootManagerLib|l
> > atformBootManagerLib.inf
> > > > diff --git a/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc
> > b/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc
> > > > index 0736cd995476..7e86375fe57d 100644
> > > > --- a/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc
> > > > +++ b/UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc
> > > > @@ -175,6 +175,7 @@ [LibraryClasses]
> > > > #
> > > > TimerLib|UefiPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.inf
> > > >
> >
> ResetSystemLib|UefiPayloadPkg/Library/ResetSystemLib/ResetSystemLib.in
> > ResetSystemLib|f
> > > > +
> >
> SerialUartClockLib|MdeModulePkg/Library/BaseSerialUartClockLib/BaseSer
> > SerialUartClockLib|ialU
> > artClockLib.inf
> > > >
> > SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPo
> > SerialPortLib|rtLib
> > 16550.inf
> > > >
> >
> PlatformHookLib|UefiPayloadPkg/Library/PlatformHookLib/PlatformHookLib
> > PlatformHookLib|.in
> > f
> > > >
> >
> PlatformBootManagerLib|UefiPayloadPkg/Library/PlatformBootManagerLib/
> P
> > PlatformBootManagerLib|l
> > atformBootManagerLib.inf
> > > > --
> > > > 2.17.1
> > >
>
>
next prev parent reply other threads:[~2020-03-26 14:13 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-19 13:31 [PATCH 0/1] UART Dynamic clock freq Support Pankaj Bansal
2020-02-19 13:31 ` [PATCH 1/1] MdeModulePkg: " Pankaj Bansal
2020-03-19 13:40 ` [edk2-devel] " Samer El-Haj-Mahmoud
2020-03-19 15:09 ` Ni, Ray
2020-03-19 15:30 ` Leif Lindholm
2020-03-23 5:31 ` Pankaj Bansal
2020-03-26 14:13 ` Guomin Jiang [this message]
2020-03-28 12:36 ` [edk2-devel] " Pankaj Bansal
2020-03-30 1:20 ` Guomin Jiang
2020-03-30 7:35 ` Leif Lindholm
2020-03-30 7:44 ` Ard Biesheuvel
2020-03-31 1:53 ` Ni, Ray
2020-03-31 9:22 ` [edk2-devel] API breakages and their implications. Was: " Leif Lindholm
2020-03-31 12:11 ` Ni, Ray
2020-03-31 12:59 ` Leif Lindholm
2020-03-31 13:23 ` Laszlo Ersek
2020-04-01 12:55 ` Leif Lindholm
2020-04-11 11:54 ` [edk2-devel] " Pankaj Bansal
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=B1F5B0856690F44595CF70FED755C93954BC07@SHSMSX101.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