summaryrefslogtreecommitdiffstats
path: root/src/usr/devtree/devtree.C
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2013-10-08 14:48:49 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-10-10 21:53:56 -0500
commit4541c4a6046f2c8c325e4ef8b277b8da25bbec4e (patch)
tree83e6fac89ded5dd30496c7295aaa410645c44114 /src/usr/devtree/devtree.C
parent1a6ffb4281f186e1b6d08aff1163f55770e7a810 (diff)
downloadblackbird-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.C47
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
OpenPOWER on IntegriCloud