summaryrefslogtreecommitdiffstats
path: root/src/lib
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/lib
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/lib')
-rw-r--r--src/lib/syscall_mm.C20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/syscall_mm.C b/src/lib/syscall_mm.C
index 72c520db6..7b6ba672d 100644
--- a/src/lib/syscall_mm.C
+++ b/src/lib/syscall_mm.C
@@ -25,6 +25,8 @@
#include <arch/ppc.H>
#include <kernel/vmmmgr.H>
+
+
using namespace Systemcalls;
/**
@@ -81,6 +83,7 @@ int mm_set_permission(void* va, uint64_t size, uint64_t access_type)
return (int64_t)_syscall3(MM_SET_PERMISSION, va, (void*)size, (void*)access_type);
}
+
/**
* System call to return the physical address backing a virtual address
*/
@@ -88,3 +91,20 @@ uint64_t mm_virt_to_phys( void* i_vaddr )
{
return (uint64_t) _syscall1(MM_VIRT_TO_PHYS,i_vaddr);
}
+
+/**
+ * System call to extend Memory to 32Meg.
+ */
+int mm_extend(void)
+{
+ return (int64_t)_syscall0(MM_EXTEND);
+}
+
+
+/**
+ * System call to create a block of memory at a specific physical address
+ */
+int mm_linear_map(void *i_paddr, uint64_t i_size)
+{
+ return (int64_t)_syscall2(MM_LINEAR_MAP, i_paddr, (void*)i_size);
+}
OpenPOWER on IntegriCloud