SourceLevelDebugPkg: Use Pcd for the revision of transfer protocol
authorHao Wu <hao.a.wu@intel.com>
Fri, 1 Sep 2017 01:32:10 +0000 (09:32 +0800)
committerHao Wu <hao.a.wu@intel.com>
Mon, 4 Sep 2017 01:01:16 +0000 (09:01 +0800)
V3 changes:
Add detailed description for the usage of the Pcd in package DEC file.
Update the comment for the introduced Pcd in module INF files.

V2 changes:
Instead of using a global variable, use a Pcd for transfer protocol
revision.

Previously, the revision of the debug agent transfer protocol is
reflected by a macro.

This commit introduces a Pcd to reflect the revision in order to avoid the
comparison of two macros, which will generate a constant result detected
by code checkers.

Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
SourceLevelDebugPkg/Include/TransferProtocol.h
SourceLevelDebugPkg/Library/DebugAgent/DebugAgentCommon/DebugAgent.c
SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
SourceLevelDebugPkg/Library/DebugAgent/SecPeiDebugAgentLib.inf
SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf
SourceLevelDebugPkg/SourceLevelDebugPkg.dec
SourceLevelDebugPkg/SourceLevelDebugPkg.uni

index ef7c891c39c811ad1421bbfe42a0711a2af38ed4..5f9f35b5d7333b7ae2a0ae9a30cdf19d27ef3bb9 100644 (file)
@@ -2,7 +2,7 @@
   Transfer protocol defintions used by debug agent and host. It is only\r
   intended to be used by Debug related module implementation.\r
 \r
   Transfer protocol defintions used by debug agent and host. It is only\r
   intended to be used by Debug related module implementation.\r
 \r
-  Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -24,7 +24,6 @@
 //\r
 #define DEBUG_AGENT_REVISION_03         ((0 << 16) | 03)\r
 #define DEBUG_AGENT_REVISION_04         ((0 << 16) | 04)\r
 //\r
 #define DEBUG_AGENT_REVISION_03         ((0 << 16) | 03)\r
 #define DEBUG_AGENT_REVISION_04         ((0 << 16) | 04)\r
-#define DEBUG_AGENT_REVISION            DEBUG_AGENT_REVISION_04\r
 #define DEBUG_AGENT_CAPABILITIES        0\r
 \r
 //\r
 #define DEBUG_AGENT_CAPABILITIES        0\r
 \r
 //\r
index f156fe24db2d3578e2766d96cc147b84a01ef80e..36b1ef924cd2730e4c3007c12108bcc233646ee1 100644 (file)
@@ -1564,7 +1564,7 @@ ReadMemoryAndSendResponsePacket (
     // Compression/decompression support was added since revision 0.4.\r
     // Revision 0.3 shouldn't compress the packet.\r
     //\r
     // Compression/decompression support was added since revision 0.4.\r
     // Revision 0.3 shouldn't compress the packet.\r
     //\r
-    if (DEBUG_AGENT_REVISION >= DEBUG_AGENT_REVISION_04) {\r
+    if (PcdGet32(PcdTransferProtocolRevision) >= DEBUG_AGENT_REVISION_04) {\r
       //\r
       // Get the compressed data size without modifying the packet.\r
       //\r
       //\r
       // Get the compressed data size without modifying the packet.\r
       //\r
@@ -1711,7 +1711,7 @@ AttachHost (
   }\r
   if (IncompatibilityFlag) {\r
     //\r
   }\r
   if (IncompatibilityFlag) {\r
     //\r
-    // If the incompatible Debug Packet received, the HOST should be running transfer protocol before DEBUG_AGENT_REVISION.\r
+    // If the incompatible Debug Packet received, the HOST should be running transfer protocol before PcdTransferProtocolRevision.\r
     // It could be UDK Debugger for Windows v1.1/v1.2 or for Linux v0.8/v1.2.\r
     //\r
     DebugPortWriteBuffer (Handle, (UINT8 *) mErrorMsgVersionAlert, AsciiStrLen (mErrorMsgVersionAlert));\r
     // It could be UDK Debugger for Windows v1.1/v1.2 or for Linux v0.8/v1.2.\r
     //\r
     DebugPortWriteBuffer (Handle, (UINT8 *) mErrorMsgVersionAlert, AsciiStrLen (mErrorMsgVersionAlert));\r
@@ -2192,7 +2192,7 @@ CommandCommunication (
       break;\r
 \r
     case DEBUG_COMMAND_GET_REVISION:\r
       break;\r
 \r
     case DEBUG_COMMAND_GET_REVISION:\r
-      DebugAgentRevision.Revision = DEBUG_AGENT_REVISION;\r
+      DebugAgentRevision.Revision = PcdGet32(PcdTransferProtocolRevision);\r
       DebugAgentRevision.Capabilities = DEBUG_AGENT_CAPABILITIES;\r
       Status = SendDataResponsePacket ((UINT8 *) &DebugAgentRevision, (UINT16) sizeof (DEBUG_DATA_RESPONSE_GET_REVISION), DebugHeader);\r
       break;\r
       DebugAgentRevision.Capabilities = DEBUG_AGENT_CAPABILITIES;\r
       Status = SendDataResponsePacket ((UINT8 *) &DebugAgentRevision, (UINT16) sizeof (DEBUG_DATA_RESPONSE_GET_REVISION), DebugHeader);\r
       break;\r
index ce36345bab53495bbb0e3a74d78156cae3784f81..eaa766b4f49943bca84f93b750245c9109ba7c22 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #  Debug Agent library instance for Dxe Core and Dxe modules.\r
 #\r
 ## @file\r
 #  Debug Agent library instance for Dxe Core and Dxe modules.\r
 #\r
-#  Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
   gEfiMdePkgTokenSpaceGuid.PcdFSBClock                                  ## SOMETIMES_CONSUMES\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdExceptionsIgnoredByDebugger  ## SOMETIMES_CONSUMES\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugPortHandleBufferSize    ## CONSUMES\r
   gEfiMdePkgTokenSpaceGuid.PcdFSBClock                                  ## SOMETIMES_CONSUMES\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdExceptionsIgnoredByDebugger  ## SOMETIMES_CONSUMES\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugPortHandleBufferSize    ## CONSUMES\r
+  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdTransferProtocolRevision     ## CONSUMES\r
 \r
 \r
index 12c2a71b7807aee32e15524560eb976676792533..5599ff17693a6750860d75ba9a9cb10f513f623e 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #  Debug Agent library instance for SEC Core and PEI modules.\r
 #\r
 ## @file\r
 #  Debug Agent library instance for SEC Core and PEI modules.\r
 #\r
-#  Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -91,4 +91,5 @@
   gEfiMdePkgTokenSpaceGuid.PcdFSBClock                                  ## SOMETIMES_CONSUMES\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdExceptionsIgnoredByDebugger  ## SOMETIMES_CONSUMES\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugPortHandleBufferSize    ## SOMETIMES_CONSUMES\r
   gEfiMdePkgTokenSpaceGuid.PcdFSBClock                                  ## SOMETIMES_CONSUMES\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdExceptionsIgnoredByDebugger  ## SOMETIMES_CONSUMES\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdDebugPortHandleBufferSize    ## SOMETIMES_CONSUMES\r
+  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdTransferProtocolRevision     ## CONSUMES\r
 \r
 \r
index 1fa5745b1c6c7622278458bc8bab5e598b38bcf3..0435c5a774d773b69cc8a22d76f0d87dcd04daae 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 #  Debug Agent library instance for SMM modules.\r
 #\r
 ## @file\r
 #  Debug Agent library instance for SMM modules.\r
 #\r
-#  Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -86,4 +86,5 @@
   gEfiMdePkgTokenSpaceGuid.PcdFSBClock                                             ## SOMETIMES_CONSUMES\r
   # Skip Page Fault exception (14) by default in SMM\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdExceptionsIgnoredByDebugger|0x00004000  ## SOMETIMES_CONSUMES\r
   gEfiMdePkgTokenSpaceGuid.PcdFSBClock                                             ## SOMETIMES_CONSUMES\r
   # Skip Page Fault exception (14) by default in SMM\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdExceptionsIgnoredByDebugger|0x00004000  ## SOMETIMES_CONSUMES\r
+  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdTransferProtocolRevision                ## CONSUMES\r
 \r
 \r
index 9579c3e0060d7d9d77ffee0698f283a032aff7cd..c9a47f625526dcc7e685e0dd651e4e2b8cc3c94e 100644 (file)
@@ -6,7 +6,7 @@
 # and host, PeCoffExtraActionLib instance to report symbol path information,\r
 # etc.\r
 #\r
 # and host, PeCoffExtraActionLib instance to report symbol path information,\r
 # etc.\r
 #\r
-# Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials are licensed and made available under \r
 # the terms and conditions of the BSD License that accompanies this distribution.  \r
 # The full text of the license may be found at\r
 # This program and the accompanying materials are licensed and made available under \r
 # the terms and conditions of the BSD License that accompanies this distribution.  \r
 # The full text of the license may be found at\r
   # @Prompt Configure debug device detection timeout value.\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdUsbXhciDebugDetectTimeout|3000000|UINT64|0x00000009\r
 \r
   # @Prompt Configure debug device detection timeout value.\r
   gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdUsbXhciDebugDetectTimeout|3000000|UINT64|0x00000009\r
 \r
+  ## Default revision of the debug agent transfer protocol.\r
+  #  The upper 16 bits indicate the major revision and the lower 16 bits indicate the minor revision.\r
+  #  For example, a value of 0x00000004 stands for revision 0.4.\r
+  #  Debug packet compression and decompression is supported since revision 0.4.\r
+  # @Prompt Default revision of the debug agent transfer protocol.\r
+  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdTransferProtocolRevision|0x00000004|UINT32|0x0000000a\r
+\r
 [UserExtensions.TianoCore."ExtraFiles"]\r
   SourceLevelDebugPkgExtra.uni\r
 [UserExtensions.TianoCore."ExtraFiles"]\r
   SourceLevelDebugPkgExtra.uni\r
index 533dafbfc8c75ed2627487b3e40bdd2185f258bd..781b717e4e24e79f6b2cc4d72aaff1cb7a7a396d 100644 (file)
@@ -8,7 +8,7 @@
 // and host, PeCoffExtraActionLib instance to report symbol path information,\r
 // etc.\r
 //\r
 // and host, PeCoffExtraActionLib instance to report symbol path information,\r
 // etc.\r
 //\r
-// Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>\r
+// Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>\r
 //\r
 // This program and the accompanying materials are licensed and made available under\r
 // the terms and conditions of the BSD License that accompanies this distribution.\r
 //\r
 // This program and the accompanying materials are licensed and made available under\r
 // the terms and conditions of the BSD License that accompanies this distribution.\r
 #string STR_gEfiSourceLevelDebugPkgTokenSpaceGuid_PcdUsbXhciDebugDetectTimeout_HELP  #language en-US "Per XHCI spec, software shall impose a timeout between the detection of the Debug Host\n"\r
                                                                                                      "connection and the DbC Run transition to 1. This PCD specifies the timeout value in microsecond."\r
 \r
 #string STR_gEfiSourceLevelDebugPkgTokenSpaceGuid_PcdUsbXhciDebugDetectTimeout_HELP  #language en-US "Per XHCI spec, software shall impose a timeout between the detection of the Debug Host\n"\r
                                                                                                      "connection and the DbC Run transition to 1. This PCD specifies the timeout value in microsecond."\r
 \r
+#string STR_gEfiSourceLevelDebugPkgTokenSpaceGuid_PcdTransferProtocolRevision_PROMPT  #language en-US "Default revision of the debug agent transfer protocol."\r
+\r
+#string STR_gEfiSourceLevelDebugPkgTokenSpaceGuid_PcdTransferProtocolRevision_HELP  #language en-US "The upper 16 bits indicate the major revision and the lower 16 bits indicate\n"\r
+                                                                                                    "the minor revision.\n"\r
+                                                                                                    "For example, a value of 0x00000004 stands for revision 0.4.\n"\r
+                                                                                                    "Debug packet compression and decompression is supported since revision 0.4."\r
+\r