changeset f07639e4b676 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=f07639e4b676
description:
        ARM: guard masked symbol tables by default

        Symbol tables masked with the loadAddrMask create redundant entries
        that could conflict with kernel function events that rely on the
        original addresses.  This patch guards the creation of those masked
        symbol tables by default, with an option to enable them when needed
        (for early-stage kernel debugging, etc.)

diffstat:

 src/arch/arm/ArmSystem.py    |   1 +
 src/arch/arm/linux/system.cc |  10 ++++++----
 2 files changed, 7 insertions(+), 4 deletions(-)

diffs (28 lines):

diff -r 8601533b6f70 -r f07639e4b676 src/arch/arm/ArmSystem.py
--- a/src/arch/arm/ArmSystem.py Thu May 10 18:04:27 2012 -0500
+++ b/src/arch/arm/ArmSystem.py Thu May 10 18:04:27 2012 -0500
@@ -65,3 +65,4 @@
     machine_type = Param.ArmMachineType('RealView_PBX',
         "Machine id from http://www.arm.linux.org.uk/developer/machines/";)
     atags_addr = Param.Addr(0x100, "Address where default atags structure 
should be written")
+    early_kernel_symbols = Param.Bool(False, "enable early kernel symbol 
tables before MMU")
diff -r 8601533b6f70 -r f07639e4b676 src/arch/arm/linux/system.cc
--- a/src/arch/arm/linux/system.cc      Thu May 10 18:04:27 2012 -0500
+++ b/src/arch/arm/linux/system.cc      Thu May 10 18:04:27 2012 -0500
@@ -114,10 +114,12 @@
     ArmSystem::initState();
 
     // Load symbols at physical address, we might not want
-    // to do this perminately, for but early bootup work
-    // it is helpfulp.
-    kernel->loadGlobalSymbols(kernelSymtab, loadAddrMask);
-    kernel->loadGlobalSymbols(debugSymbolTable, loadAddrMask);
+    // to do this permanently, for but early bootup work
+    // it is helpful.
+    if (params()->early_kernel_symbols) {
+        kernel->loadGlobalSymbols(kernelSymtab, loadAddrMask);
+        kernel->loadGlobalSymbols(debugSymbolTable, loadAddrMask);
+    }
 
     // Setup boot data structure
     AtagCore *ac = new AtagCore;
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to