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