Re: [PATCH] [MdePkg ] New Debug Message Levels


Michael D Kinney
 

Felix,

Thanks for the quick update.

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?

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.

Can you summarize or provide some example use cases for these new bits?

Thanks,

Mike

-----Original Message-----
From: Felix Poludov [mailto:Felixp@...]
Sent: Tuesday, September 20, 2016 12:29 PM
To: Kinney, Michael D <michael.d.kinney@...>; Gao, Liming
<liming.gao@...>; edk2-devel@...
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 <felixp@...>
==
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, EITHER EXPRESS
OR IMPLIED.
#define DEBUG_CACHE 0x00200000 // Memory range cachability changes
#define DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
// significantly impact boot performance
+#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.<BR>
# BIT7 - Dispatcher message.<BR>
# BIT8 - Variable message.<BR>
+ # BIT9 - USB Driver message.<BR>
# BIT10 - Boot Manager message.<BR>
+ # BIT11 - PCI Bus Driver message.<BR>
# BIT12 - BlockIo Driver message.<BR>
+ # BIT13 - Processor Driver message.<BR>
# BIT14 - Network Driver message.<BR>
+ # BIT15 - Chipset/SoC Driver message.<BR>
# BIT16 - UNDI Driver message.<BR>
# BIT17 - LoadFile message.<BR>
+ # BIT18 - Platform/Board Driver message.<BR>
# BIT19 - Event message.<BR>
# BIT20 - Global Coherency Database changes message.<BR>
# BIT21 - Memory range cachability changes message.<BR>
@@ -1951,18 +1956,23 @@
# BIT6 - Information message.<BR>
# BIT7 - Dispatcher message.<BR>
# BIT8 - Variable message.<BR>
+ # BIT9 - USB Driver message.<BR>
# BIT10 - Boot Manager message.<BR>
+ # BIT11 - PCI Bus Driver message.<BR>
# BIT12 - BlockIo Driver message.<BR>
+ # BIT13 - Processor Driver message.<BR>
# BIT14 - Network Driver message.<BR>
+ # BIT15 - Chipset/SoC Driver message.<BR>
# BIT16 - UNDI Driver message.<BR>
# BIT17 - LoadFile message.<BR>
+ # BIT18 - Platform/Board Driver message.<BR>
# BIT19 - Event message.<BR>
# BIT20 - Global Coherency Database changes message.<BR>
# BIT21 - Memory range cachability changes message.<BR>
# BIT22 - Detailed debug message.<BR>
# BIT31 - Error message.<BR>
# @Prompt Debug Message Print Level.
- # @Expression 0x80000002 | (gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel &
0x7F84AA00) == 0
+ # @Expression 0x80000002 | (gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel &
0x7F800000) == 0
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000|UINT32|0x00000006

## The mask is used to control ReportStatusCodeLib behavior.<BR><BR>
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.<BR>\n"

"BIT7 - Dispatcher message.<BR>\n"

"BIT8 - Variable message.<BR>\n"
+
"BIT9 - USB Driver message.<BR>\n"

"BIT10 - Boot Manager message.<BR>\n"
+
"BIT11 - PCI Bus Driver message.<BR>\n"

"BIT12 - BlockIo Driver message.<BR>\n"
+
"BIT13 - Processor Driver message.<BR>\n"

"BIT14 - Network Driver message.<BR>\n"
+
"BIT15 - Chipset/SoC Driver message.<BR>\n"

"BIT16 - UNDI Driver message.<BR>\n"

"BIT17 - LoadFile message.<BR>\n"
+
"BIT18 - Platform/Board Driver message.<BR>\n"

"BIT19 - Event message.<BR>\n"

"BIT20 - Global Coherency Database changes message.<BR>\n"

"BIT21 - Memory range cacheability changes message.<BR>\n"
@@ -219,11 +224,16 @@

"BIT6 - Information message.<BR>\n"

"BIT7 - Dispatcher message.<BR>\n"

"BIT8 - Variable message.<BR>\n"
+
"BIT9 - USB Driver message.<BR>\n"

"BIT10 - Boot Manager message.<BR>\n"
+
"BIT11 - PCI Bus Driver message.<BR>\n"

"BIT12 - BlockIo Driver message.<BR>\n"
+
"BIT13 - Processor Driver message.<BR>\n"

"BIT14 - Network Driver message.<BR>\n"
+
"BIT15 - Chipset/SoC Driver message.<BR>\n"

"BIT16 - UNDI Driver message.<BR>\n"

"BIT17 - LoadFile message.<BR>\n"
+
"BIT18 - Platform/Board Driver message.<BR>\n"

"BIT19 - Event message.<BR>\n"

"BIT20 - Global Coherency Database changes message.<BR>\n"

"BIT21 - Memory range cacheability changes message.<BR>\n"
==

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@...] On Behalf Of Kinney,
Michael D
Sent: Tuesday, September 20, 2016 12:26 PM
To: Gao, Liming; Felix Poludov; edk2-devel@...; Kinney, Michael D
Subject: Re: [edk2] [PATCH] [MdePkg ] New Debug Message Levels

Felix,

We should only add the DEBUG_ defines for new bit values. We would like to retire
the use of EFI_D_ defines and encourage use of DEBUG_ defines. The reason 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 only 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@...] On Behalf Of Gao, Liming
Sent: Tuesday, September 20, 2016 7:01 AM
To: Felix Poludov <Felixp@...>; edk2-devel@...
Subject: Re: [edk2] [PATCH] [MdePkg ] New Debug Message Levels

Felix:
I have two comments.
1) Update @Expression 0x80000002 |
(gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel
& 0x7F84AA00) == 0. 0x7F84AA00 should be updated to match the valid 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@...] On Behalf Of Felix
Poludov
Sent: Thursday, September 15, 2016 3:27 AM
To: edk2-devel@...
Subject: Re: [edk2] [PATCH] [MdePkg ] New Debug Message Levels

Resending with the patch (the patch was missing in the original e-mail).

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@...] On Behalf Of Felix
Poludov
Sent: Wednesday, September 14, 2016 12:05 PM
To: edk2-devel@...
Subject: [edk2] [PATCH] [MdePkg ] New Debug Message Levels

Dear MdePkg maintainer,

DebugLib.h defines debug message levels. Some values such as DEBUG_ERROR and
DEBUG_INFO define messages category, whereas other values such as DEBUG_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 <felixp@...<mailto:felixp@...>>

Thanks
Felix

==
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 changes
#define DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
// significantly impact boot performance
+#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.<BR>
# BIT7 - Dispatcher message.<BR>
# BIT8 - Variable message.<BR>
+ # BIT9 - USB Driver message.<BR>
# BIT10 - Boot Manager message.<BR>
+ # BIT11 - PCI Bus Driver message.<BR>
# BIT12 - BlockIo Driver message.<BR>
+ # BIT13 - Compatibility Support Module message.<BR>
# BIT14 - Network Driver message.<BR>
+ # BIT15 - Processor Driver message.<BR>
# BIT16 - UNDI Driver message.<BR>
# BIT17 - LoadFile message.<BR>
+ # BIT18 - Chipset/SoC Driver message.<BR>
# BIT19 - Event message.<BR>
# BIT20 - Global Coherency Database changes message.<BR>
# BIT21 - Memory range cachability changes message.<BR>
# BIT22 - Detailed debug message.<BR>
+ # BIT23 - Platform/Board Driver message.<BR>
# BIT31 - Error message.<BR>
# @Prompt Fixed Debug Message Print Level.
gEfiMdePkgTokenSpaceGuid.PcdFixedDebugPrintErrorLevel|0xFFFFFFFF|UINT32|0x30001016
@@ -1951,15 +1957,21 @@
# BIT6 - Information message.<BR>
# BIT7 - Dispatcher message.<BR>
# BIT8 - Variable message.<BR>
+ # BIT9 - USB Driver message.<BR>
# BIT10 - Boot Manager message.<BR>
+ # BIT11 - PCI Bus Driver message.<BR>
# BIT12 - BlockIo Driver message.<BR>
+ # BIT13 - Compatibility Support Module message.<BR>
# BIT14 - Network Driver message.<BR>
+ # BIT15 - Processor Driver message.<BR>
# BIT16 - UNDI Driver message.<BR>
# BIT17 - LoadFile message.<BR>
+ # BIT18 - Chipset/SoC Driver message.<BR>
# BIT19 - Event message.<BR>
# BIT20 - Global Coherency Database changes message.<BR>
# BIT21 - Memory range cachability changes message.<BR>
# BIT22 - Detailed debug message.<BR>
+ # BIT23 - Platform/Board Driver message.<BR>
# BIT31 - Error message.<BR>
# @Prompt Debug Message Print Level.
# @Expression 0x80000002 | (gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel &
0x7F84AA00) == 0

Please consider the environment before printing this email.

The information contained in this message may be confidential and proprietary 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 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.
_______________________________________________
edk2-devel mailing list
edk2-devel@...
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@...
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@...
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 proprietary 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 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.

Join {devel@edk2.groups.io to automatically receive all group messages.