diff options
| author | crgeddes <crgeddes@us.ibm.com> | 2016-11-04 10:47:33 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-11-14 11:43:54 -0500 |
| commit | 5eeea6b14a4b2e0d1d908f238d02699e1e0e86fa (patch) | |
| tree | 58cd5bf2bf7fd28534ef3fd41ced66bb537a9e72 /src/include/usr | |
| parent | 79365796a27a6de1d7b55cd41201480b3dd45194 (diff) | |
| download | talos-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.H | 4 | ||||
| -rw-r--r-- | src/include/usr/targeting/attrrp.H | 10 | ||||
| -rw-r--r-- | src/include/usr/targeting/common/targreasoncodes.H | 20 | ||||
| -rw-r--r-- | src/include/usr/vmmconst.h | 13 |
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 */ |

