From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1591B1A1DF1 for ; Mon, 26 Sep 2016 15:08:59 -0700 (PDT) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga105.jf.intel.com with ESMTP; 26 Sep 2016 15:08:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,401,1470726000"; d="scan'208";a="173441726" Received: from orsmsx109.amr.corp.intel.com ([10.22.240.7]) by fmsmga004.fm.intel.com with ESMTP; 26 Sep 2016 15:09:00 -0700 Received: from orsmsx114.amr.corp.intel.com (10.22.240.10) by ORSMSX109.amr.corp.intel.com (10.22.240.7) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 26 Sep 2016 15:08:58 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.161]) by ORSMSX114.amr.corp.intel.com ([169.254.8.240]) with mapi id 14.03.0248.002; Mon, 26 Sep 2016 15:08:57 -0700 From: "Kinney, Michael D" To: Felix Poludov , "Gao, Liming" , "edk2-devel@lists.01.org" , "Kinney, Michael D" Thread-Topic: [PATCH] [MdePkg ] New Debug Message Levels Thread-Index: AdIOoGfwP58VzQt9RL+w0VhTGXv9FAAAR6uQAAb6ZRABImanIAAFA+8wAAZUIrAAFd7x0AEZvmwgAAKFGFA= Date: Mon, 26 Sep 2016 22:08:56 +0000 Message-ID: References: <9333E191E0D52B4999CE63A99BA663A00270FEBC69@atlms1.us.megatrends.com> <9333E191E0D52B4999CE63A99BA663A00270FEBD66@atlms1.us.megatrends.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14B47ACEB@shsmsx102.ccr.corp.intel.com> <9333E191E0D52B4999CE63A99BA663A00270FEF3B8@atlms1.us.megatrends.com> <9333E191E0D52B4999CE63A99BA663A00270FF18FB@atlms1.us.megatrends.com> In-Reply-To: <9333E191E0D52B4999CE63A99BA663A00270FF18FB@atlms1.us.megatrends.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYWNkNWJlOTEtNmY0ZC00ZGYyLWI2YjItZGNiNDY2MGVhNTEzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6Ijl5V2xIUE5JaENHRFZcL0dkM2lmODFlcmdneENDSFFiRzBGdmprbDVhcHl3PSJ9 x-originating-ip: [10.22.254.140] MIME-Version: 1.0 Subject: Re: [PATCH] [MdePkg ] New Debug Message Levels X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Sep 2016 22:08:59 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Felix, It is the use case for DEBUG_NET|DEBUG_INFO that I am concerned about. I agree that setting either or both of these bits activates the message. We already support setting the mask at the module level, so we have control over verbosity with use of ERROR, WARN, INFO, VERBOSE in each module. Howe= ver,=20 setting the mask for every module can be time consuming, so it is easier=20 to set the global mask value at the top of the DSC file. In this example,= =20 if only NET messages are needed, then the NET bit is set in the mask. =20 However, you will get all messages that are ORed with NET, so there is no=20 ability to enable/disable ERROR, WARN, INFO, VERBOSE within the NET subsyst= em. I am concerned that adding more subsystems without the ability to adjust=20 these other levels will become an issue because we are running out of bits= =20 in the mask. What if there is a request for NET_1, NET_2, ... NET_n for=20 verbose levels within a specific subsystem. I agree that one solution is to have a different DebugLib implementation that interprets the bits differently, but that could make implementing DEBUG() statements more difficult because developers will see multiple interpretations of the mask. I would prefer to look into ways we can enhance the current DebugLib=20 to provide control over verbosity within a subsystem. One proposal is to treat some of the bits as a verbosity mask bits and=20 others as subsystem mask bits and have well defined rules for the behavior when bits are mixed together. We could view the following bits as verbosity settings: * DEBUG_INIT * DEBUG_INFO * DEBUG_VERBOSE The following bits are critical error/warn messages that are displayed no matter what verbosity bits are mixed with them * DEBUG_ERROR * DEBUG_WARN=20 And the rest of the bits are subsystem specific messages that support being mixed with a verbosity bits: UEFI/PI Core Subsystems =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D DEBUG_LOAD DEBUG_POOL DEBUG_PAGE DEBUG_GCD DEBUG_DISPATCH DEBUG_EVENT DEBUG_VARIABLE DEBUG_BM CPU Subsystems =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D DEBUG_CACHE I/O Subsystems =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D DEBUG_BLKIO =20 DEBUG_FS =20 DEBUG_NET =20 DEBUG_UNDI =20 DEBUG_LOADFILE =20 Would be a small change to the behavior of current DebugLib. Then add your new subsystem bits. And consider adding a couple extra verbosity levels such as VERBOSE2, VERBOSE3, VERBOSE4, so all subsystems can have multiple levels of verbosity, Best regards, Mike > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Fe= lix Poludov > Sent: Monday, September 26, 2016 2:06 PM > To: Kinney, Michael D ; Gao, Liming > ; edk2-devel@lists.01.org > Subject: Re: [edk2] [PATCH] [MdePkg ] New Debug Message Levels >=20 > Mike, >=20 > The goal is to provide a higher level of granularity in controlling debug= messages. > Or to put it in different terms, improve developer's ability to reduce am= ount of > "noise" in the debug log. > For example, if I'm debugging a chipset-specific issue, I'm not necessari= ly > interested in debug messages from the generic modules and vice versa. >=20 > As far as combing the definitions, I think we can leave it up to individu= al > developers. > I know that with the current implementation DebugPrint statement is print= ed if it > least one of the used levels is enabled. > For example, DEBUG_NET|DEBUG_INFO is printed when either DEBUG_NET, or DE= BUG_INFO, or > both are enabled. > I think this is fine. > Moreover, it's pretty easy to customize the default policy by using a cus= tom DebugLib > and/or DebugPrintErrorLevel instances. >=20 >=20 > -----Original Message----- > From: Kinney, Michael D [mailto:michael.d.kinney@intel.com] > Sent: Wednesday, September 21, 2016 2:10 AM > To: Felix Poludov; Gao, Liming; edk2-devel@lists.01.org > Subject: RE: [PATCH] [MdePkg ] New Debug Message Levels >=20 > Felix, >=20 > Thanks for the quick update. >=20 > Quick question on usage model. Do you expect to be able to mix > an I/O subsystem bit with ERROR, WARN, INFO, or VERBOSE bits? >=20 > Unfortunately, I do not think the current definition and implementation > of the DebugLib instances support this type mixing with a result a > developer may expect. >=20 > Can you summarize or provide some example use cases for these new bits? >=20 > Thanks, >=20 > Mike >=20 >=20 > > -----Original Message----- > > From: Felix Poludov [mailto:Felixp@ami.com] > > Sent: Tuesday, September 20, 2016 12:29 PM > > To: Kinney, Michael D ; Gao, Liming > > ; edk2-devel@lists.01.org > > Subject: RE: [PATCH] [MdePkg ] New Debug Message Levels > > > > Mike and Liming, > > > > Thanks for reviewing the patch. > > I implemented all the requested modifications: > > - EFI_D_ definitions are removed > > - DEBUG_CSM is removed > > - Validation expression in MdePkg.dec is updated > > - MdePkg.uni is updated > > > > Here is the updated patch > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Felix Polyudov > > =3D=3D > > diff --git a/MdePkg/Include/Library/DebugLib.h b/MdePkg/Include/Library= /DebugLib.h > > index 803872c..34ea29f 100644 > > --- a/MdePkg/Include/Library/DebugLib.h > > +++ b/MdePkg/Include/Library/DebugLib.h > > @@ -54,6 +54,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, E= ITHER > EXPRESS > > OR IMPLIED. > > #define DEBUG_CACHE 0x00200000 // Memory range cachability change= s > > #define DEBUG_VERBOSE 0x00400000 // Detailed debug messages that ma= y > > // significantly impact boot perfo= rmance > > +#define DEBUG_USB 0x00000200 // USB Driver > > +#define DEBUG_PCI 0x00000800 // PCI Bus Driver > > +#define DEBUG_CPU 0x00002000 // Processor Driver > > +#define DEBUG_CHIPSET 0x00008000 // Chipset/SoC Drivers > > +#define DEBUG_PLATFORM 0x00040000 // Platform/Board Drivers > > #define DEBUG_ERROR 0x80000000 // Error > > > > // > > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec > > index 606e2f1..1747bb1 100644 > > --- a/MdePkg/MdePkg.dec > > +++ b/MdePkg/MdePkg.dec > > @@ -1883,11 +1883,16 @@ > > # BIT6 - Information message.
> > # BIT7 - Dispatcher message.
> > # BIT8 - Variable message.
> > + # BIT9 - USB Driver message.
> > # BIT10 - Boot Manager message.
> > + # BIT11 - PCI Bus Driver message.
> > # BIT12 - BlockIo Driver message.
> > + # BIT13 - Processor Driver message.
> > # BIT14 - Network Driver message.
> > + # BIT15 - Chipset/SoC Driver message.
> > # BIT16 - UNDI Driver message.
> > # BIT17 - LoadFile message.
> > + # BIT18 - Platform/Board Driver message.
> > # BIT19 - Event message.
> > # BIT20 - Global Coherency Database changes message.
> > # BIT21 - Memory range cachability changes message.
> > @@ -1951,18 +1956,23 @@ > > # BIT6 - Information message.
> > # BIT7 - Dispatcher message.
> > # BIT8 - Variable message.
> > + # BIT9 - USB Driver message.
> > # BIT10 - Boot Manager message.
> > + # BIT11 - PCI Bus Driver message.
> > # BIT12 - BlockIo Driver message.
> > + # BIT13 - Processor Driver message.
> > # BIT14 - Network Driver message.
> > + # BIT15 - Chipset/SoC Driver message.
> > # BIT16 - UNDI Driver message.
> > # BIT17 - LoadFile message.
> > + # BIT18 - Platform/Board Driver message.
> > # BIT19 - Event message.
> > # BIT20 - Global Coherency Database changes message.
> > # BIT21 - Memory range cachability changes message.
> > # BIT22 - Detailed debug message.
> > # BIT31 - Error message.
> > # @Prompt Debug Message Print Level. > > - # @Expression 0x80000002 | (gEfiMdePkgTokenSpaceGuid.PcdDebugPrintE= rrorLevel & > > 0x7F84AA00) =3D=3D 0 > > + # @Expression 0x80000002 | (gEfiMdePkgTokenSpaceGuid.PcdDebugPrintE= rrorLevel & > > 0x7F800000) =3D=3D 0 > > gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000|UINT32|0= x00000006 > > > > ## The mask is used to control ReportStatusCodeLib behavior.

> > diff --git a/MdePkg/MdePkg.uni b/MdePkg/MdePkg.uni > > index a110e45..4f3999d 100644 > > --- a/MdePkg/MdePkg.uni > > +++ b/MdePkg/MdePkg.uni > > @@ -196,11 +196,16 @@ > > > > "BIT6 - Information message.
\n" > > > > "BIT7 - Dispatcher message.
\n" > > > > "BIT8 - Variable message.
\n" > > + > > "BIT9 - USB Driver message.
\n" > > > > "BIT10 - Boot Manager message.
\n" > > + > > "BIT11 - PCI Bus Driver message.
\n" > > > > "BIT12 - BlockIo Driver message.
\n" > > + > > "BIT13 - Processor Driver message.
\n" > > > > "BIT14 - Network Driver message.
\n" > > + > > "BIT15 - Chipset/SoC Driver message.
\n" > > > > "BIT16 - UNDI Driver message.
\n" > > > > "BIT17 - LoadFile message.
\n" > > + > > "BIT18 - Platform/Board Driver message.
\n" > > > > "BIT19 - Event message.
\n" > > > > "BIT20 - Global Coherency Database changes message.
\n" > > > > "BIT21 - Memory range cacheability changes message.
\n" > > @@ -219,11 +224,16 @@ > > > > "BIT6 - Information message.
\n" > > > > "BIT7 - Dispatcher message.
\n" > > > > "BIT8 - Variable message.
\n" > > + > > "BIT9 - USB Driver message.
\n" > > > > "BIT10 - Boot Manager message.
\n" > > + > > "BIT11 - PCI Bus Driver message.
\n" > > > > "BIT12 - BlockIo Driver message.
\n" > > + > > "BIT13 - Processor Driver message.
\n" > > > > "BIT14 - Network Driver message.
\n" > > + > > "BIT15 - Chipset/SoC Driver message.
\n" > > > > "BIT16 - UNDI Driver message.
\n" > > > > "BIT17 - LoadFile message.
\n" > > + > > "BIT18 - Platform/Board Driver message.
\n" > > > > "BIT19 - Event message.
\n" > > > > "BIT20 - Global Coherency Database changes message.
\n" > > > > "BIT21 - Memory range cacheability changes message.
\n" > > =3D=3D > > > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of = Kinney, > > Michael D > > Sent: Tuesday, September 20, 2016 12:26 PM > > To: Gao, Liming; Felix Poludov; edk2-devel@lists.01.org; Kinney, Michae= l D > > Subject: Re: [edk2] [PATCH] [MdePkg ] New Debug Message Levels > > > > Felix, > > > > We should only add the DEBUG_ defines for new bit values. We would lik= e to retire > > the use of EFI_D_ defines and encourage use of DEBUG_ defines. The rea= son is that > > DEBUG() macros apply to all execution phases and module types. > > > > Also, what is the use case for DEBUG_CSM. I would image this would onl= y be used > for > > CSM wrapper modules, and the exiting define values should be sufficient= for that > > specific use case. That bit mask is starting to get full. > > > > Thanks, > > > > Mike > > > > > -----Original Message----- > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf O= f Gao, > Liming > > > Sent: Tuesday, September 20, 2016 7:01 AM > > > To: Felix Poludov ; edk2-devel@lists.01.org > > > Subject: Re: [edk2] [PATCH] [MdePkg ] New Debug Message Levels > > > > > > Felix: > > > I have two comments. > > > 1) Update @Expression 0x80000002 | > > (gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel > > > & 0x7F84AA00) =3D=3D 0. 0x7F84AA00 should be updated to match the val= id debug error > > level > > > bit mask. > > > 2) PCD help message in MdePkg.uni is also required to be updated. > > > > > > Thanks > > > Liming > > > -----Original Message----- > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf O= f Felix > > Poludov > > > Sent: Thursday, September 15, 2016 3:27 AM > > > To: edk2-devel@lists.01.org > > > Subject: Re: [edk2] [PATCH] [MdePkg ] New Debug Message Levels > > > > > > Resending with the patch (the patch was missing in the original e-mai= l). > > > > > > -----Original Message----- > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf O= f Felix > > Poludov > > > Sent: Wednesday, September 14, 2016 12:05 PM > > > To: edk2-devel@lists.01.org > > > Subject: [edk2] [PATCH] [MdePkg ] New Debug Message Levels > > > > > > Dear MdePkg maintainer, > > > > > > DebugLib.h defines debug message levels. Some values such as DEBUG_ER= ROR and > > > DEBUG_INFO define messages category, whereas other values such as DEB= UG_BLKIO and > > > DEBUG_VARIABLE define message domain. > > > This patch adds definitions for several additional message domains. > > > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > > Signed-off-by: Felix Polyudov > > > > > > > Thanks > > > Felix > > > > > > =3D=3D > > > diff --git a/MdePkg/Include/Library/DebugLib.h > b/MdePkg/Include/Library/DebugLib.h > > > index 803872c..47549b7 100644 > > > --- a/MdePkg/Include/Library/DebugLib.h > > > +++ b/MdePkg/Include/Library/DebugLib.h > > > @@ -54,6 +54,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,= EITHER > > EXPRESS > > > OR IMPLIED. > > > #define DEBUG_CACHE 0x00200000 // Memory range cachability chan= ges > > > #define DEBUG_VERBOSE 0x00400000 // Detailed debug messages that = may > > > // significantly impact boot per= formance > > > +#define DEBUG_USB 0x00000200 // USB Driver > > > +#define DEBUG_PCI 0x00000800 // PCI Bus Driver > > > +#define DEBUG_CSM 0x00002000 // Compatibility Support Module > > > +#define DEBUG_CPU 0x00008000 // Processor Driver > > > +#define DEBUG_CHIPSET 0x00040000 // Chipset/SoC Drivers > > > +#define DEBUG_PLATFORM 0x00800000 // Platform/Board Drivers > > > #define DEBUG_ERROR 0x80000000 // Error > > > > > > // > > > @@ -75,6 +81,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND,= EITHER > > EXPRESS > > > OR IMPLIED. > > > #define EFI_D_LOADFILE DEBUG_LOADFILE > > > #define EFI_D_EVENT DEBUG_EVENT > > > #define EFI_D_VERBOSE DEBUG_VERBOSE > > > +#define EFI_D_USB DEBUG_USB > > > +#define EFI_D_PCI DEBUG_PCI > > > +#define EFI_D_CSM DEBUG_CSM > > > +#define EFI_D_CPU DEBUG_CPU > > > +#define EFI_D_CHIPSET DEBUG_CHIPSET > > > +#define EFI_D_PLATFORM DEBUG_PLATFORM > > > #define EFI_D_ERROR DEBUG_ERROR > > > > > > /** > > > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec > > > index 606e2f1..eaae076 100644 > > > --- a/MdePkg/MdePkg.dec > > > +++ b/MdePkg/MdePkg.dec > > > @@ -1883,15 +1883,21 @@ > > > # BIT6 - Information message.
> > > # BIT7 - Dispatcher message.
> > > # BIT8 - Variable message.
> > > + # BIT9 - USB Driver message.
> > > # BIT10 - Boot Manager message.
> > > + # BIT11 - PCI Bus Driver message.
> > > # BIT12 - BlockIo Driver message.
> > > + # BIT13 - Compatibility Support Module message.
> > > # BIT14 - Network Driver message.
> > > + # BIT15 - Processor Driver message.
> > > # BIT16 - UNDI Driver message.
> > > # BIT17 - LoadFile message.
> > > + # BIT18 - Chipset/SoC Driver message.
> > > # BIT19 - Event message.
> > > # BIT20 - Global Coherency Database changes message.
> > > # BIT21 - Memory range cachability changes message.
> > > # BIT22 - Detailed debug message.
> > > + # BIT23 - Platform/Board Driver message.
> > > # BIT31 - Error message.
> > > # @Prompt Fixed Debug Message Print Level. > > > > > gEfiMdePkgTokenSpaceGuid.PcdFixedDebugPrintErrorLevel|0xFFFFFFFF|UINT32= |0x30001016 > > > @@ -1951,15 +1957,21 @@ > > > # BIT6 - Information message.
> > > # BIT7 - Dispatcher message.
> > > # BIT8 - Variable message.
> > > + # BIT9 - USB Driver message.
> > > # BIT10 - Boot Manager message.
> > > + # BIT11 - PCI Bus Driver message.
> > > # BIT12 - BlockIo Driver message.
> > > + # BIT13 - Compatibility Support Module message.
> > > # BIT14 - Network Driver message.
> > > + # BIT15 - Processor Driver message.
> > > # BIT16 - UNDI Driver message.
> > > # BIT17 - LoadFile message.
> > > + # BIT18 - Chipset/SoC Driver message.
> > > # BIT19 - Event message.
> > > # BIT20 - Global Coherency Database changes message.
> > > # BIT21 - Memory range cachability changes message.
> > > # BIT22 - Detailed debug message.
> > > + # BIT23 - Platform/Board Driver message.
> > > # BIT31 - Error message.
> > > # @Prompt Debug Message Print Level. > > > # @Expression 0x80000002 | (gEfiMdePkgTokenSpaceGuid.PcdDebugPrin= tErrorLevel > & > > > 0x7F84AA00) =3D=3D 0 > > > > > > Please consider the environment before printing this email. > > > > > > The information contained in this message may be confidential and pro= prietary to > > > American Megatrends, Inc. This communication is intended to be read = only by the > > > individual or entity to whom it is addressed or by their designee. If= the reader > of > > > this message is not the intended recipient, you are on notice that an= y > distribution > > > of this message, in any form, is strictly prohibited. Please promptl= y notify the > > > sender by reply e-mail or by telephone at 770-246-8600, and then dele= te or > destroy > > > all copies of the transmission. > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel > > > > Please consider the environment before printing this email. > > > > The information contained in this message may be confidential and propr= ietary to > > American Megatrends, Inc. This communication is intended to be read on= ly by the > > individual or entity to whom it is addressed or by their designee. If t= he reader of > > this message is not the intended recipient, you are on notice that any = distribution > > of this message, in any form, is strictly prohibited. Please promptly = notify the > > sender by reply e-mail or by telephone at 770-246-8600, and then delete= or destroy > > all copies of the transmission. >=20 > Please consider the environment before printing this email. >=20 > The information contained in this message may be confidential and proprie= tary to > American Megatrends, Inc. This communication is intended to be read only= by the > individual or entity to whom it is addressed or by their designee. If the= reader of > this message is not the intended recipient, you are on notice that any di= stribution > of this message, in any form, is strictly prohibited. Please promptly no= tify the > sender by reply e-mail or by telephone at 770-246-8600, and then delete o= r destroy > all copies of the transmission. > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel