diff --git a/src/arch/arm/ArmSystem.py b/src/arch/arm/ArmSystem.py index f4aedaf980..a86fc88221 100644 --- a/src/arch/arm/ArmSystem.py +++ b/src/arch/arm/ArmSystem.py @@ -65,3 +65,4 @@ class LinuxArmSystem(ArmSystem): 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 --git a/src/arch/arm/linux/system.cc b/src/arch/arm/linux/system.cc index 0d9e73a53a..d537717ec0 100644 --- a/src/arch/arm/linux/system.cc +++ b/src/arch/arm/linux/system.cc @@ -114,10 +114,12 @@ LinuxArmSystem::initState() 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;