summaryrefslogtreecommitdiffstats
path: root/src/kernel/vmmmgr.C
diff options
context:
space:
mode:
authorMissy Connell <missyc@us.ibm.com>2012-09-10 16:05:01 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-10-09 17:10:32 -0500
commit1bf8c6b8376efacd03e3ec62d5ded5b2be4bff39 (patch)
treec266815232142e67f15a61ffcbdf09407737f259 /src/kernel/vmmmgr.C
parentfb1836fd7b1b8839815595db08ae740ec7b86347 (diff)
downloadtalos-hostboot-1bf8c6b8376efacd03e3ec62d5ded5b2be4bff39.tar.gz
talos-hostboot-1bf8c6b8376efacd03e3ec62d5ded5b2be4bff39.zip
Extend VMM to 32M
Add mmLinearMap to create block at a specified phys addr. Added iv_MaptoPhy in the block to indicate we are physically mapped block and to not apply the HRMOR. Change-Id: I75ddb19b82ae9a2035ff873edff8a34a33c74639 RTC:43401 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1846 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/kernel/vmmmgr.C')
-rw-r--r--src/kernel/vmmmgr.C29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/kernel/vmmmgr.C b/src/kernel/vmmmgr.C
index b7c98a0c5..d5152bf11 100644
--- a/src/kernel/vmmmgr.C
+++ b/src/kernel/vmmmgr.C
@@ -41,7 +41,6 @@ VmmManager::VmmManager() : lock()
void VmmManager::init()
{
- printk("Starting VMM...\n");
VmmManager& v = Singleton<VmmManager>::instance();
@@ -57,7 +56,6 @@ void VmmManager::init()
v.initPTEs();
v.initSDR1(); /*no effect*/ // BEAM Fix.
- printk("...done.\n");
};
void VmmManager::init_slb()
@@ -209,6 +207,20 @@ void VmmManager::_flushPageTable( void )
lock.unlock();
}
+
+int VmmManager::mmExtend(void)
+{
+ return Singleton<VmmManager>::instance()._mmExtend();
+}
+
+int VmmManager::_mmExtend(void)
+{
+ lock.lock();
+ int rc = BaseSegment::mmExtend();
+ lock.unlock();
+ return rc;
+}
+
void* VmmManager::_devMap(void* ra, uint64_t i_devDataSize)
{
void* ea = NULL;
@@ -247,3 +259,16 @@ uint64_t VmmManager::findKernelAddress(uint64_t i_vaddr)
}
return phys;
}
+
+int VmmManager::mmLinearMap(void *i_paddr, uint64_t i_size)
+{
+ return Singleton<VmmManager>::instance()._mmLinearMap(i_paddr, i_size);
+}
+
+int VmmManager::_mmLinearMap(void *i_paddr, uint64_t i_size)
+{
+ lock.lock();
+ int rc = BaseSegment::mmLinearMap(i_paddr, i_size);
+ lock.unlock();
+ return rc;
+}
OpenPOWER on IntegriCloud