diff options
author | Dean Sanner <dsanner@us.ibm.com> | 2013-10-08 14:48:49 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-10-10 21:53:56 -0500 |
commit | 4541c4a6046f2c8c325e4ef8b277b8da25bbec4e (patch) | |
tree | 83e6fac89ded5dd30496c7295aaa410645c44114 /src/usr/devtree/devtree.C | |
parent | 1a6ffb4281f186e1b6d08aff1163f55770e7a810 (diff) | |
download | blackbird-hostboot-4541c4a6046f2c8c325e4ef8b277b8da25bbec4e.tar.gz blackbird-hostboot-4541c4a6046f2c8c325e4ef8b277b8da25bbec4e.zip |
Updates to devtree for Stradale BU
Change-Id: I5d38b819d50e2f68e2d3b0de5ec3f020c49a9fc6
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6559
Tested-by: Jenkins Server
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 | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/src/usr/devtree/devtree.C b/src/usr/devtree/devtree.C index 562bf876c..eac9f1b0e 100644 --- a/src/usr/devtree/devtree.C +++ b/src/usr/devtree/devtree.C @@ -69,7 +69,8 @@ void devTree::initialize(uint64_t i_addr, size_t i_maxSize) TRACFCOMP( g_trac_devtree, "FDT located @ v:%p p:0x%x", mSpace, mPhysAddr); mHeader->magicNumber = DT_MAGIC; - mHeader->totalSize = sizeof(*mHeader) + (sizeof(dtReserveEntry_t) * 2); + mHeader->totalSize = (sizeof(*mHeader) + + (sizeof(dtReserveEntry_t) * DT_MAX_MEM_RESERVE)); mHeader->offsetStruct = mHeader->totalSize; mHeader->offsetStrings = mHeader->totalSize; mHeader->offsetReservedMemMap = sizeof(*mHeader); @@ -92,26 +93,18 @@ void devTree::initialize(uint64_t i_addr, size_t i_maxSize) mHeader->sizeStruct += structSizeAdded; mHeader->totalSize += structSizeAdded; - /* Setup the memory reserve map to include the region that - Hostboot places the SLW and OCC images*/ - dtReserveEntry* reserveMemMap = (dtReserveEntry*) - (mSpace + mHeader->offsetReservedMemMap); - reserveMemMap->address = 0x0A000000; /*160MB-192MB*/; - reserveMemMap->size = MEGABYTE * 32; - /* Add the standard root node properties. */ dtOffset_t rootNode = findNode("/"); addPropertyCell32(rootNode, "#address-cells", 2); addPropertyCell32(rootNode, "#size-cells", 2); addPropertyString(rootNode, "compatible", "ibm,powernv"); - addPropertyString(rootNode, "model", "P8_Sim"); - - addNode(rootNode, "chosen"); + //TODO RTC:88056 - store model type in attributes? + addPropertyString(rootNode, "model", "rhesus"); - // Add the initial vpd and location code nodes. - addProperty(rootNode, "ibm,vpd"); - addProperty(rootNode, "ibm,loc-code"); + //"Get" the phandle -- this will add one to root node as + //it doesn't already have one + getPhandle(rootNode); } void devTree::setBootCpu(uint32_t pir) @@ -686,6 +679,32 @@ void devTree::appendPropertyBytes(dtOffset_t parentNode, } } +int devTree::populateReservedMem(uint64_t i_addrs[], + uint64_t i_sizes[], + size_t i_num) +{ + int rc = 1; + + //if requested num is less than max, update + if(i_num < DT_MAX_MEM_RESERVE) + { + dtReserveEntry* reserveMemMap = reinterpret_cast<dtReserveEntry*> + (mSpace + mHeader->offsetReservedMemMap); + + for(size_t i=0; i<i_num; i++) + { + reserveMemMap->address = i_addrs[i]; + reserveMemMap->size = i_sizes[i]; + + reserveMemMap++; + } + + rc = 0; + } + + return rc; +} + /******************** Internal Methods |