diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2014-01-19 22:06:28 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-02-11 15:30:46 -0600 |
commit | b7733595ec491960fa6c97f5ad1fb2c47ac5592c (patch) | |
tree | f4a169250428db5411fb42e2f9d7a5f3dd96b927 /src/usr/devtree/devtree.C | |
parent | 18bdf83d7705bd3c519b195ce095e39181214435 (diff) | |
download | blackbird-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.C | 25 |
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); + } } } |