diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2011-07-25 16:41:57 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2011-07-29 15:12:07 -0500 |
commit | a4ad138162e1c2b0e7ae008d38d91a0094393bd7 (patch) | |
tree | 7c3068ebd522d36a3f3e9083303e3cf66ac281a3 /src/kernel/basesegment.C | |
parent | 786c6a4a3aa85bb9f240a86735eb8f6ac277c109 (diff) | |
download | talos-hostboot-a4ad138162e1c2b0e7ae008d38d91a0094393bd7.tar.gz talos-hostboot-a4ad138162e1c2b0e7ae008d38d91a0094393bd7.zip |
Reduce memory footprint to 3MB.
Change-Id: I309bc63bdb27baa21f65de05e12324b9c4ce3407
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/212
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/kernel/basesegment.C')
-rw-r--r-- | src/kernel/basesegment.C | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/kernel/basesegment.C b/src/kernel/basesegment.C index 70d91ac72..467f8209c 100644 --- a/src/kernel/basesegment.C +++ b/src/kernel/basesegment.C @@ -5,6 +5,7 @@ #include <kernel/segmentmgr.H> #include <kernel/block.H> #include <kernel/vmmmgr.H> +#include <kernel/cpuid.H> BaseSegment::~BaseSegment() { @@ -21,8 +22,22 @@ void BaseSegment::_init() // Assign segment to segment manager. SegmentManager::addSegment(this, SegmentManager::BASE_SEGMENT_ID); - // Create initial static 8MB block. - iv_block = new Block(0x0, 0x800000); + // Create initial static 3 or 8MB block. + uint64_t iv_baseBlockSize = 0; + switch (CpuID::getCpuType()) + { + case CpuID::POWER7: + case CpuID::POWER7_PLUS: + case CpuID::POWER8_VENICE: + iv_baseBlockSize = VmmManager::EIGHT_MEG; + break; + + case CpuID::POWER8_SALERNO: + default: + iv_baseBlockSize = VmmManager::THREE_MEG; + break; + } + iv_block = new Block(0x0, iv_baseBlockSize); iv_block->setParent(this); // Set default page permissions on block. |