summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2016-11-04 10:47:33 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-11-14 11:43:54 -0500
commit5eeea6b14a4b2e0d1d908f238d02699e1e0e86fa (patch)
tree58cd5bf2bf7fd28534ef3fd41ced66bb537a9e72 /src/include/usr
parent79365796a27a6de1d7b55cd41201480b3dd45194 (diff)
downloadtalos-hostboot-5eeea6b14a4b2e0d1d908f238d02699e1e0e86fa.tar.gz
talos-hostboot-5eeea6b14a4b2e0d1d908f238d02699e1e0e86fa.zip
Save Attribute Data in real memory in case of MPIPL
As an initial step towards our goal of booting from previous attr data and not re-finding out targeting/attr data from PNOR, this commit saves the targ/attr data that we put into HDAT to a memory address that HB owns (phyp shouldn't ever touch) so that we can use the info on the MPIPL path. Ideally this info would be coming from RT but that is the next step. This just proves that it can be done and outlines how we should do it. Change-Id: I664a8742eb35bcef011b6c274bf44e71ebf84d5d RTC: 157652 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/32259 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/runtime/runtime_reasoncodes.H4
-rw-r--r--src/include/usr/targeting/attrrp.H10
-rw-r--r--src/include/usr/targeting/common/targreasoncodes.H20
-rw-r--r--src/include/usr/vmmconst.h13
4 files changed, 27 insertions, 20 deletions
diff --git a/src/include/usr/runtime/runtime_reasoncodes.H b/src/include/usr/runtime/runtime_reasoncodes.H
index ad6427668..ab75d4bfd 100644
--- a/src/include/usr/runtime/runtime_reasoncodes.H
+++ b/src/include/usr/runtime/runtime_reasoncodes.H
@@ -53,6 +53,7 @@ namespace RUNTIME
// customize_attrs_for_payload.C
MOD_CUST_COMP_NON_PHYP_RT_TARGET = 0x12,
MOD_CUST_CONF_HBRT_HYP_IDS = 0x13,
+ MOD_POPULATE_RTDATABYNODE = 0x14, /**< populate_hbruntime.C */
};
enum RuntimeReasonCode
@@ -84,7 +85,8 @@ namespace RUNTIME
RC_NOT_ENOUGH_SPACE = RUNTIME_COMP_ID | 0x18,
RT_UNIT_TARGET_NOT_FOUND = RUNTIME_COMP_ID | 0x19,
RT_TARGET_TYPE_NOT_SUPPORTED = RUNTIME_COMP_ID | 0x1A,
- RT_NO_PROC_TARGET = RUNTIME_COMP_ID | 0x1B
+ RT_NO_PROC_TARGET = RUNTIME_COMP_ID | 0x1B,
+ RC_UNMAP_FAIL = RUNTIME_COMP_ID | 0x1C,
};
enum UserDetailsTypes
diff --git a/src/include/usr/targeting/attrrp.H b/src/include/usr/targeting/attrrp.H
index 99b9800ff..429ea3840 100644
--- a/src/include/usr/targeting/attrrp.H
+++ b/src/include/usr/targeting/attrrp.H
@@ -155,7 +155,7 @@ class AttrRP
* reported back through the TaskArgs structure to the init
* service.
*/
- static void init(errlHndl_t& io_taskRetErrl);
+ static void init(errlHndl_t& io_taskRetErrl, bool i_isMpipl = false);
#ifndef __HOSTBOOT_RUNTIME
/**
@@ -193,9 +193,9 @@ class AttrRP
*/
AttrRP()
#ifndef __HOSTBOOT_RUNTIME
- : iv_msgQ(NULL), iv_sections(NULL), iv_sectionCount(0)
+ : iv_msgQ(NULL), iv_sections(NULL), iv_sectionCount(0), iv_isMpipl(false)
#else
- : iv_sections(NULL), iv_sectionCount(0)
+ : iv_sections(NULL), iv_sectionCount(0), iv_isMpipl(false)
#endif
{
};
@@ -258,7 +258,7 @@ class AttrRP
* output, a NULL error log handle on success, or !NULL handle
* on failure
*/
- void startup(errlHndl_t& io_taskRetErrl);
+ void startup(errlHndl_t& io_taskRetErrl, bool i_isMpipl = false);
#ifndef __HOSTBOOT_RUNTIME
@@ -323,6 +323,8 @@ class AttrRP
// Count of attribute sections.
size_t iv_sectionCount;
+
+ bool iv_isMpipl;
};
/**
diff --git a/src/include/usr/targeting/common/targreasoncodes.H b/src/include/usr/targeting/common/targreasoncodes.H
index b26b60d9e..979513cd5 100644
--- a/src/include/usr/targeting/common/targreasoncodes.H
+++ b/src/include/usr/targeting/common/targreasoncodes.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -38,14 +38,15 @@ namespace TARGETING
enum TargetingModuleId
{
- TARG_MOD_TEST = 0x01,
- TARG_MOD_ATTRRP = 0x02,
- TARG_MOD_ATTR_SYNC = 0x03,
- TARG_RT_GET_RT_TARGET = 0x04,
- TARG_RT_GET_HB_TARGET = 0x05,
- TARG_GET_ATTR_OVER = 0x06,
- TARG_WRITE_PERM_ATTR = 0x07,
-
+ TARG_MOD_TEST = 0x01,
+ TARG_MOD_ATTR_SYNC = 0x02,
+ TARG_RT_GET_RT_TARGET = 0x03,
+ TARG_RT_GET_HB_TARGET = 0x04,
+ TARG_GET_ATTR_OVER = 0x05,
+ TARG_WRITE_PERM_ATTR = 0x06,
+ TARG_PARSE_ATTR_SECT_HEADER = 0x07,
+ TARG_MSG_SERVICE_TASK = 0x08,
+ TARG_CREATE_VMM_SECTIONS = 0x09,
};
enum TargetingReasonCode
@@ -68,6 +69,7 @@ enum TargetingReasonCode
TARG_RC_WRITE_PERM_ATTR_TARGET_FAIL = TARG_COMP_ID | 0x10,
TARG_RC_WRITE_ATTR_OVER_WRONG_PNOR_SEC = TARG_COMP_ID | 0x11,
TARG_RC_WRITE_ATTR_OVER_NO_TANK_LAYER = TARG_COMP_ID | 0x12,
+ TARG_RC_MM_BLOCK_MAP_FAIL = TARG_COMP_ID | 0x13,
};
}; // End TARGETING namespace
diff --git a/src/include/usr/vmmconst.h b/src/include/usr/vmmconst.h
index b155d894f..676e54f5a 100644
--- a/src/include/usr/vmmconst.h
+++ b/src/include/usr/vmmconst.h
@@ -202,14 +202,15 @@ enum BlockPriority
#define VMM_SIZE_RMVPAGE_TEST (8 * PAGESIZE)
/** Chunk of physical memory to use for HostServices Attributes */
-#define HSVC_TEST_MEMORY_ADDR (VMM_MEMORY_SIZE + 32*MEGABYTE)
-#define HSVC_TEST_SYSDATA_SIZE (4*KILOBYTE) /* match FSP HDAT code */
-#define HSVC_TEST_NODEDATA_SIZE (256000) /* match FSP HDAT code */
-#define HSVC_TEST_MEMORY_SIZE \
- ALIGN_PAGE((HSVC_TEST_SYSDATA_SIZE+HSVC_TEST_NODEDATA_SIZE))
+#define MPIPL_ATTR_DATA_ADDR (VMM_MEMORY_SIZE + 32*MEGABYTE)
+#define MPIPL_SYSDATA_SIZE (4*KILOBYTE) /* match FSP HDAT code */
+#define MPIPL_NODEDATA_SIZE (256000) /* match FSP HDAT code */
+#define MPIPL_ATTR_DATA_SIZE \
+ ALIGN_PAGE((MPIPL_SYSDATA_SIZE+MPIPL_NODEDATA_SIZE))
+#define MPIPL_ATTR_VMM_SIZE 0x8001000
/* Chunk of physical memory used for Dump Source Table */
-#define DUMP_TEST_MEMORY_ADDR (HSVC_TEST_MEMORY_ADDR + HSVC_TEST_MEMORY_SIZE)
+#define DUMP_TEST_MEMORY_ADDR (MPIPL_ATTR_DATA_ADDR + MPIPL_ATTR_DATA_SIZE)
#define DUMP_TEST_MEMORY_SIZE (4*MEGABYTE)
/** Location of the TCE Table */
OpenPOWER on IntegriCloud