summaryrefslogtreecommitdiffstats
path: root/src/include/kernel/vmmmgr.H
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/include/kernel/vmmmgr.H
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/include/kernel/vmmmgr.H')
-rw-r--r--src/include/kernel/vmmmgr.H22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/include/kernel/vmmmgr.H b/src/include/kernel/vmmmgr.H
index 0c11ffeb8..7b8bd07bc 100644
--- a/src/include/kernel/vmmmgr.H
+++ b/src/include/kernel/vmmmgr.H
@@ -185,6 +185,22 @@ class VmmManager
*/
static uint64_t findKernelAddress(uint64_t i_vaddr);
+ /**
+ * @brief Allocates a block of virtual memory that extends the VMM
+ * space upto 32MEG of Mainstore.
+ */
+ static int mmExtend( void);
+
+ /** @fn mm_linear_map()
+ * @brief Allocates a block of memory of the given size
+ * to at a specified address (direct pa to va mapping)
+ * @param[in] i_paddr - physical address of the location for the block
+ * @param[in] i_size - size of the block requested
+ *
+ * @return int - 0 for successful add, non-zero otherwise
+ */
+ static int mmLinearMap(void *i_paddr, uint64_t i_size);
+
protected:
VmmManager();
~VmmManager() {};
@@ -223,11 +239,17 @@ class VmmManager
int _mmRemovePages(VmmManager::PAGE_REMOVAL_OPS i_op,void* i_vaddr,
uint64_t i_size,task_t* i_task);
+ /** See mmExtend */
+ int _mmExtend( void );
+
/** See devMap */
void* _devMap(void* ra, uint64_t i_devDataSize);
/** See devUnmap */
int _devUnmap(void* ea);
+ /** See mmLinearMap */
+ int _mmLinearMap(void*, uint64_t);
+
public:
friend class Block;
friend class StackSegment;
OpenPOWER on IntegriCloud