summaryrefslogtreecommitdiffstats
path: root/src/usr/devtree/devtree.C
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2014-01-19 22:06:28 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-02-11 15:30:46 -0600
commitb7733595ec491960fa6c97f5ad1fb2c47ac5592c (patch)
treef4a169250428db5411fb42e2f9d7a5f3dd96b927 /src/usr/devtree/devtree.C
parent18bdf83d7705bd3c519b195ce095e39181214435 (diff)
downloadblackbird-hostboot-b7733595ec491960fa6c97f5ad1fb2c47ac5592c.tar.gz
blackbird-hostboot-b7733595ec491960fa6c97f5ad1fb2c47ac5592c.zip
HBRT: Build small devtree for HDAT-based Sapphire.
Change-Id: I06fb4c6d07a82146b19a38457d2114569c53a571 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8147 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/usr/devtree/devtree.C')
-rw-r--r--src/usr/devtree/devtree.C25
1 files changed, 18 insertions, 7 deletions
diff --git a/src/usr/devtree/devtree.C b/src/usr/devtree/devtree.C
index eac9f1b0e..62b5763ba 100644
--- a/src/usr/devtree/devtree.C
+++ b/src/usr/devtree/devtree.C
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2013 */
+/* COPYRIGHT International Business Machines Corp. 2013,2014 */
/* */
/* p1 */
/* */
@@ -55,14 +55,22 @@ uint32_t devTree::getSize()
return mHeader->totalSize;
}
-void devTree::initialize(uint64_t i_addr, size_t i_maxSize)
+void devTree::initialize(uint64_t i_addr, size_t i_maxSize, bool i_virtual)
{
/* Initialize the device tree header. */
mMaxSize = i_maxSize;
- mPhysAddr = i_addr;
- mSpace= static_cast<char*>
- (mm_block_map(reinterpret_cast<void*>(mPhysAddr),
- mMaxSize));
+ if (i_virtual)
+ {
+ mPhysAddr = 0;
+ mSpace = reinterpret_cast<char*>(i_addr);
+ }
+ else
+ {
+ mPhysAddr = i_addr;
+ mSpace= static_cast<char*>
+ (mm_block_map(reinterpret_cast<void*>(mPhysAddr),
+ mMaxSize));
+ }
memset(mSpace, 0, mMaxSize);
mNextPhandle = 1;
@@ -724,7 +732,10 @@ devTree::devTree()
*/
devTree::~devTree()
{
- mm_block_unmap(mSpace);
+ if (mPhysAddr)
+ {
+ mm_block_unmap(mSpace);
+ }
}
}
OpenPOWER on IntegriCloud