diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2014-04-17 14:27:33 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-06-02 12:13:33 -0500 |
commit | e3a418419bd7fcf34bed25113111f06ec86ab9bb (patch) | |
tree | af54d96cbd17415982928ade5efd0ccd9ae57240 /src/build/debug/simics-debug-framework.py | |
parent | a8e490184f0f436d8fa1e175c7f9d7368923340b (diff) | |
download | talos-hostboot-e3a418419bd7fcf34bed25113111f06ec86ab9bb.tar.gz talos-hostboot-e3a418419bd7fcf34bed25113111f06ec86ab9bb.zip |
Hostboot memory mirroring support
Change-Id: I20a5de367b33c657abdc5c6aef29cecab940a8ca
RTC: 102529
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10641
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/build/debug/simics-debug-framework.py')
-rwxr-xr-x | src/build/debug/simics-debug-framework.py | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/build/debug/simics-debug-framework.py b/src/build/debug/simics-debug-framework.py index 3812bc4ff..b0ae39551 100755 --- a/src/build/debug/simics-debug-framework.py +++ b/src/build/debug/simics-debug-framework.py @@ -21,6 +21,7 @@ # permissions and limitations under the License. # # IBM_PROLOG_END_TAG + # @file simics-debug-framework.py # @brief Simics/Python implementation of the common debug framework. # @@ -511,14 +512,28 @@ def magic_instruction_callback(user_arg, cpu, arg): mem_object = None # Find the entry in the memory map that includes our - # base memory region + # base memory region. Can't assume object is "ram" mem_map_entries = (conf.system_cmp0.phys_mem).map for entry in mem_map_entries: #print ">> %d:%s" % (entry[0], entry[1]) if (entry[0] == (node_num*per_node)) or (entry[0] == hb_hrmor): - mem_object = simics.SIM_object_name(entry[1]) - #print "Found entry %s for hrmor %d" % (mem_object, hb_hrmor) - break + target = entry[5] + # Check if there is a target that needs to be investigated that + # points to another object or map + if target != None: + #print "Continuous trace target = %s" % (target) + smm_map_entries = target.map + for smm_entry in smm_map_entries: + if (smm_entry[0] == (node_num*per_node)) or (entry[0] == hb_hrmor): + mem_object = simics.SIM_object_name(smm_entry[1]) + #print "Found entry %s for hrmor %x" % (mem_object, hb_hrmor) + break + break + else: + mem_object = simics.SIM_object_name(entry[1]) + #print "Found entry %s for hrmor %d" % (mem_object, hb_hrmor) + break + if mem_object == None: print "Could not find entry for hrmor %d" % (hb_hrmor) SIM_break_simulation( "No memory for trace" ) |