diff options
author | Missy Connell <missyc@us.ibm.com> | 2012-09-10 16:05:01 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-10-09 17:10:32 -0500 |
commit | 1bf8c6b8376efacd03e3ec62d5ded5b2be4bff39 (patch) | |
tree | c266815232142e67f15a61ffcbdf09407737f259 /src/kernel/vmmmgr.C | |
parent | fb1836fd7b1b8839815595db08ae740ec7b86347 (diff) | |
download | talos-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.C | 29 |
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; +} |