summaryrefslogtreecommitdiffstats
path: root/src/build/debug/simics-debug-framework.py
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2014-04-17 14:27:33 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-06-02 12:13:33 -0500
commite3a418419bd7fcf34bed25113111f06ec86ab9bb (patch)
treeaf54d96cbd17415982928ade5efd0ccd9ae57240 /src/build/debug/simics-debug-framework.py
parenta8e490184f0f436d8fa1e175c7f9d7368923340b (diff)
downloadtalos-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-xsrc/build/debug/simics-debug-framework.py23
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" )
OpenPOWER on IntegriCloud