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.)
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user