diff options
Diffstat (limited to 'src/arch/sparc')
-rw-r--r-- | src/arch/sparc/process.hh | 6 | ||||
-rw-r--r-- | src/arch/sparc/system.cc | 12 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/arch/sparc/process.hh b/src/arch/sparc/process.hh index eeb267116..f8f19f290 100644 --- a/src/arch/sparc/process.hh +++ b/src/arch/sparc/process.hh @@ -78,8 +78,7 @@ class Sparc32Process : public SparcProcess Sparc32Process(ProcessParams * params, ObjectFile *objFile) : SparcProcess(params, objFile, 0) { - Addr brk_point = objFile->dataBase() + objFile->dataSize() + - objFile->bssSize(); + Addr brk_point = objFile->maxSegmentAddr(); brk_point = roundUp(brk_point, SparcISA::PageBytes); // Reserve 8M for main stack. @@ -123,8 +122,7 @@ class Sparc64Process : public SparcProcess Sparc64Process(ProcessParams * params, ObjectFile *objFile) : SparcProcess(params, objFile, 2047) { - Addr brk_point = objFile->dataBase() + objFile->dataSize() + - objFile->bssSize(); + Addr brk_point = objFile->maxSegmentAddr(); brk_point = roundUp(brk_point, SparcISA::PageBytes); Addr max_stack_size = 8 * 1024 * 1024; diff --git a/src/arch/sparc/system.cc b/src/arch/sparc/system.cc index 5896061a6..e9615b00c 100644 --- a/src/arch/sparc/system.cc +++ b/src/arch/sparc/system.cc @@ -137,22 +137,22 @@ SparcSystem::initState() System::initState(); // Load reset binary into memory - reset->setTextBase(params()->reset_addr); + reset->setLoadOffset(params()->reset_addr); reset->loadSegments(physProxy); // Load the openboot binary - openboot->setTextBase(params()->openboot_addr); + openboot->setLoadOffset(params()->openboot_addr); openboot->loadSegments(physProxy); // Load the hypervisor binary - hypervisor->setTextBase(params()->hypervisor_addr); + hypervisor->setLoadOffset(params()->hypervisor_addr); hypervisor->loadSegments(physProxy); // Load the nvram image - nvram->setTextBase(params()->nvram_addr); + nvram->setLoadOffset(params()->nvram_addr); nvram->loadSegments(physProxy); // Load the hypervisor description image - hypervisor_desc->setTextBase(params()->hypervisor_desc_addr); + hypervisor_desc->setLoadOffset(params()->hypervisor_desc_addr); hypervisor_desc->loadSegments(physProxy); // Load the partition description image - partition_desc->setTextBase(params()->partition_desc_addr); + partition_desc->setLoadOffset(params()->partition_desc_addr); partition_desc->loadSegments(physProxy); |