summaryrefslogtreecommitdiffstats
path: root/src/kernel/basesegment.C
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2011-07-25 16:41:57 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2011-07-29 15:12:07 -0500
commita4ad138162e1c2b0e7ae008d38d91a0094393bd7 (patch)
tree7c3068ebd522d36a3f3e9083303e3cf66ac281a3 /src/kernel/basesegment.C
parent786c6a4a3aa85bb9f240a86735eb8f6ac277c109 (diff)
downloadtalos-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.C19
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.
OpenPOWER on IntegriCloud