https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
		
			
				
	
	
		
			97 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#
 | 
						|
#  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
 | 
						|
#
 | 
						|
#  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
#
 | 
						|
 | 
						|
from arm_ds.debugger_v1 import Debugger
 | 
						|
from arm_ds.debugger_v1 import DebugException
 | 
						|
 | 
						|
import re, sys, getopt
 | 
						|
 | 
						|
import edk2_debugger
 | 
						|
 | 
						|
# Reload external classes
 | 
						|
reload(edk2_debugger)
 | 
						|
 | 
						|
def usage():
 | 
						|
    print "-v,--verbose"
 | 
						|
    print "-a,--all: Load all symbols"
 | 
						|
    print "-l,--report=: Filename for the EDK2 report log"
 | 
						|
    print "-m,--sysmem=(base,size): System Memory region"
 | 
						|
    print "-f,--fv=(base,size): Firmware region"
 | 
						|
    print "-r,--rom=(base,size): ROM region"
 | 
						|
 | 
						|
verbose = False
 | 
						|
load_all = False
 | 
						|
report_file = None
 | 
						|
regions = []
 | 
						|
opts,args = getopt.getopt(sys.argv[1:], "hvar:vm:vr:vf:v", ["help","verbose","all","report=","sysmem=","rom=","fv="])
 | 
						|
if (opts is None) or (not opts):
 | 
						|
    report_file = '../../../report.log'
 | 
						|
else:
 | 
						|
    region_reg = re.compile("\((.*),(.*)\)")
 | 
						|
    base_reg = re.compile("(.*)")
 | 
						|
 | 
						|
    for o,a in opts:
 | 
						|
        region_type = None
 | 
						|
        regex = None
 | 
						|
        m = None
 | 
						|
        if o in ("-h","--help"):
 | 
						|
            usage()
 | 
						|
            sys.exit()
 | 
						|
        elif o in ("-v","--verbose"):
 | 
						|
            verbose = True
 | 
						|
        elif o in ("-a","--all"):
 | 
						|
            load_all = True
 | 
						|
        elif o in ("-l","--report"):
 | 
						|
            report_file = a
 | 
						|
        elif o in ("-m","--sysmem"):
 | 
						|
            region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_SYSMEM
 | 
						|
            regex = region_reg
 | 
						|
        elif o in ("-f","--fv"):
 | 
						|
            region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_FV
 | 
						|
            regex = region_reg
 | 
						|
        elif o in ("-r","--rom"):
 | 
						|
            region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_ROM
 | 
						|
            regex = region_reg
 | 
						|
        else:
 | 
						|
            assert False, "Unhandled option (%s)" % o
 | 
						|
 | 
						|
        if region_type:
 | 
						|
            m = regex.match(a)
 | 
						|
            if m:
 | 
						|
                if regex.groups == 1:
 | 
						|
                    regions.append((region_type,int(m.group(1),0),0))
 | 
						|
                else:
 | 
						|
                    regions.append((region_type,int(m.group(1),0),int(m.group(2),0)))
 | 
						|
            else:
 | 
						|
                if regex.groups == 1:
 | 
						|
                    raise Exception('cmd_load_symbols', "Expect a base address")
 | 
						|
                else:
 | 
						|
                    raise Exception('cmd_load_symbols', "Expect a region format as (base,size)")
 | 
						|
 | 
						|
# Debugger object for accessing the debugger
 | 
						|
debugger = Debugger()
 | 
						|
 | 
						|
# Initialisation commands
 | 
						|
ec = debugger.getExecutionContext(0)
 | 
						|
ec.getExecutionService().stop()
 | 
						|
ec.getExecutionService().waitForStop()
 | 
						|
# in case the execution context reference is out of date
 | 
						|
ec = debugger.getExecutionContext(0)
 | 
						|
 | 
						|
try:
 | 
						|
    armplatform_debugger = edk2_debugger.ArmPlatformDebugger(ec, report_file, regions, verbose)
 | 
						|
 | 
						|
    if load_all:
 | 
						|
        armplatform_debugger.load_all_symbols()
 | 
						|
    else:
 | 
						|
        armplatform_debugger.load_current_symbols()
 | 
						|
except IOError, (ErrorNumber, ErrorMessage):
 | 
						|
    print "Error: %s" % ErrorMessage
 | 
						|
except Exception, (ErrorClass, ErrorMessage):
 | 
						|
    print "Error(%s): %s" % (ErrorClass, ErrorMessage)
 | 
						|
except DebugException, de:
 | 
						|
    print "DebugError: %s" % (de.getMessage())
 |