summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/usr/hwas/hostbootIstep.H16
-rw-r--r--src/include/usr/hwpf/istepreasoncodes.H5
-rw-r--r--src/include/usr/isteps/istep06list.H31
-rw-r--r--src/include/usr/isteps/istep07list.H32
-rw-r--r--src/include/usr/isteps/istep08list.H2
-rw-r--r--src/include/usr/isteps/istep09list.H57
-rw-r--r--src/include/usr/isteps/istep10list.H142
-rw-r--r--src/include/usr/isteps/istep11list.H47
-rw-r--r--src/include/usr/isteps/istep12list.H20
-rw-r--r--src/include/usr/isteps/istep13list.H48
-rw-r--r--src/include/usr/isteps/istep14list.H44
-rw-r--r--src/include/usr/isteps/istep15list.H9
-rw-r--r--src/include/usr/isteps/istep16list.H46
-rw-r--r--src/include/usr/isteps/istep18list.H23
-rw-r--r--src/include/usr/isteps/istep21list.H70
-rw-r--r--src/usr/hwas/hostbootIstep.C31
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C26
-rw-r--r--src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.H14
-rw-r--r--src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C10
-rw-r--r--src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.H6
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/dram_initialization.C84
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/dram_initialization.H34
-rw-r--r--src/usr/hwpf/hwp/dram_training/dram_training.C34
-rw-r--r--src/usr/hwpf/hwp/dram_training/dram_training.H32
-rw-r--r--src/usr/hwpf/hwp/mc_config/mc_config.C91
-rw-r--r--src/usr/hwpf/hwp/mc_config/mc_config.H10
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C161
-rw-r--r--src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.H19
-rw-r--r--src/usr/hwpf/hwp/sbe_centaur_init/sbe_centaur_init.C1
-rw-r--r--src/usr/hwpf/hwp/slave_sbe/slave_sbe.C71
-rw-r--r--src/usr/hwpf/hwp/slave_sbe/slave_sbe.H39
-rw-r--r--src/usr/hwpf/hwp/start_payload/start_payload.C134
-rw-r--r--src/usr/hwpf/hwp/start_payload/start_payload.H25
33 files changed, 952 insertions, 462 deletions
diff --git a/src/include/usr/hwas/hostbootIstep.H b/src/include/usr/hwas/hostbootIstep.H
index ef1489f4b..ceca11f1c 100644
--- a/src/include/usr/hwas/hostbootIstep.H
+++ b/src/include/usr/hwas/hostbootIstep.H
@@ -33,6 +33,18 @@
namespace HWAS
{
+/**
+ * @brief host_stub empty function returning success
+ *
+ * stub function to be called for un-implemented host steps
+ *
+ * param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
+ * or NULL.
+ * return any error logs to istep
+ */
+void* host_stub( void *io_pArgs );
+
+
// hostboot only functions that are called by the istep dispatcher
// and then call the HWAS common functions
@@ -100,7 +112,7 @@ void* host_gard( void *io_pArgs );
void* host_cancontinue_clear( void *io_pArgs );
/**
- * @brief proc_xmit_sbe vSBE Init of Slave Chips
+ * @brief host_PRD_hwreconfig Hook for PRD to handle reconfigure
*
* TBD
*
@@ -108,7 +120,7 @@ void* host_cancontinue_clear( void *io_pArgs );
* or NULL.
* return any error logs to istep
*/
-void* proc_xmit_sbe( void *io_pArgs );
+void* host_PRD_hwreconfig( void *io_pArgs );
} // namespace HWAS
#endif // HOSTBOOTISTEP_H_
diff --git a/src/include/usr/hwpf/istepreasoncodes.H b/src/include/usr/hwpf/istepreasoncodes.H
index 6ff163c6a..bd976d77d 100644
--- a/src/include/usr/hwpf/istepreasoncodes.H
+++ b/src/include/usr/hwpf/istepreasoncodes.H
@@ -76,7 +76,7 @@ enum istepModuleId
ISTEP_MSS_DRAMINIT = 0x1b,
ISTEP_MSS_DRAMINIT_TRAINING = 0x1c,
ISTEP_MSS_DRAMINIT_MC = 0x1d,
- ISTEP_MSS_VOLT = 0x1e,
+ ISTEP_HOST_COLLECT_DIMM_SPD = 0x1e,
ISTEP_MSS_FREQ = 0x1f,
ISTEP_MSS_EFF_CONFIG = 0x20,
ISTEP_SBE_CENTAUR_INIT = 0x21,
@@ -95,6 +95,9 @@ enum istepModuleId
ISTEP_LOAD_PORE_IMAGE = 0x2e,
ISTEP_APPLY_PORE_GEN_CPU_REGS = 0x2f,
ISTEP_PROC_PORESLW_INIT = 0x30,
+ ISTEP_HOST_RUNTIME_SETUP = 0x31,
+ ISTEP_HOST_VERIFY_HDAT = 0x32,
+ ISTEP_HOST_START_PAYLOAD = 0x33,
};
/**
diff --git a/src/include/usr/isteps/istep06list.H b/src/include/usr/isteps/istep06list.H
index e86f07e2e..2a23fe81c 100644
--- a/src/include/usr/isteps/istep06list.H
+++ b/src/include/usr/isteps/istep06list.H
@@ -27,6 +27,7 @@
* @file istep6list.H
*
* list of functions called by HWAS (ISTEP 6) - "named isteps"
+ * IPL FLow Doc v1.18 (10/18/12)
*
* Please see the note in initsvcstructs.H for description of
* the ISTEPNAME macro.
@@ -53,8 +54,10 @@ namespace INITSERVICE
* 6. host_gard : Do Gard
* 7. host_cancontinue_clear : Clear deconfigured states
* 8. proc_revert_sbe_mcs_setup : Clean up MCS extent regs
- * 9. proc_check_slave_sbe_seeprom_complete : Check Slave SBE Complete
- * 10. proc_xmit_sbe : vSBE Init of Slave Chips
+ * 9. host_slave_sbe_config
+ * 10. host_sbe_start
+ * 11. proc_check_slave_sbe_seeprom_complete : Check Slave SBE Complete
+ * 12. proc_xmit_sbe : vSBE Init of Slave Chips
*
*/
const TaskInfo g_istep06[] = {
@@ -132,7 +135,25 @@ const TaskInfo g_istep06[] = {
}
},
{
- ISTEPNAME(06,09,"proc_check_slave_sbe_seeprom_complete"),
+ ISTEPNAME(06,09,"host_slave_sbe_config"),
+ SLAVE_SBE::call_host_slave_sbe_config,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+
+ {
+ ISTEPNAME(06,10,"host_sbe_start"),
+ SLAVE_SBE::call_host_sbe_start,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+
+ {
+ ISTEPNAME(06,11,"proc_check_slave_sbe_seeprom_complete"),
SLAVE_SBE::call_proc_check_slave_sbe_seeprom_complete,
{
START_FN,
@@ -140,8 +161,8 @@ const TaskInfo g_istep06[] = {
}
},
{
- ISTEPNAME(06,10,"proc_xmit_sbe"),
- HWAS::proc_xmit_sbe,
+ ISTEPNAME(06,12,"proc_xmit_sbe"),
+ SLAVE_SBE::call_proc_xmit_sbe,
{
START_FN,
EXT_IMAGE,
diff --git a/src/include/usr/isteps/istep07list.H b/src/include/usr/isteps/istep07list.H
index c9645f8cc..44dd0083f 100644
--- a/src/include/usr/isteps/istep07list.H
+++ b/src/include/usr/isteps/istep07list.H
@@ -28,17 +28,19 @@
* @file istep07list.H
*
* IStep 07 Nest Chiplets
- * IPL FLow Doc v1.03 (06/26/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
- * 07.1 proc_a_x_pci_dmi_pll_setup
+ * 07.1 proc_a_x_pci_dmi_pll_initf
+ * : PLL Initfile for A, X, PCIe, DMI
+ * 07.2 proc_a_x_pci_dmi_pll_setup
* : Setup PLL for A, X, PCIe, DMI
- * 07.2 proc_startclock_chiplets
+ * 07.3 proc_startclock_chiplets
* : Start clocks on A, X, PCIe chiplets
- * 07.3 proc_chiplet_scominit
+ * 07.4 proc_chiplet_scominit
* : Apply scom inits to chiplets
- * 07.4 proc_pcie_scominit
+ * 07.5 proc_pcie_scominit
* : Apply scom inits to PCIe chiplets
- * 07.5 proc_scomoverride_chiplets
+ * 07.6 proc_scomoverride_chiplets
* : Apply sequenced scom inits
*
* *****************************************************************
@@ -69,9 +71,17 @@ namespace INITSERVICE
EXT_IMAGE,
}
},
+ {
+ ISTEPNAME(07,01,"proc_a_x_pci_dmi_pll_initf"),
+ NEST_CHIPLETS::call_proc_a_x_pci_dmi_pll_initf,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
{
- ISTEPNAME(07,01,"proc_a_x_pci_dmi_pll_setup"),
+ ISTEPNAME(07,02,"proc_a_x_pci_dmi_pll_setup"),
NEST_CHIPLETS::call_proc_a_x_pci_dmi_pll_setup,
{
START_FN,
@@ -81,7 +91,7 @@ namespace INITSERVICE
{
- ISTEPNAME(07,02,"proc_startclock_chiplets"),
+ ISTEPNAME(07,03,"proc_startclock_chiplets"),
NEST_CHIPLETS::call_proc_startclock_chiplets,
{
START_FN,
@@ -91,7 +101,7 @@ namespace INITSERVICE
{
- ISTEPNAME(07,03,"proc_chiplet_scominit"),
+ ISTEPNAME(07,04,"proc_chiplet_scominit"),
NEST_CHIPLETS::call_proc_chiplet_scominit,
{
START_FN,
@@ -101,7 +111,7 @@ namespace INITSERVICE
{
- ISTEPNAME(07,04,"proc_pcie_scominit"),
+ ISTEPNAME(07,05,"proc_pcie_scominit"),
NEST_CHIPLETS::call_proc_pcie_scominit,
{
START_FN,
@@ -111,7 +121,7 @@ namespace INITSERVICE
{
- ISTEPNAME(07,05,"proc_scomoverride_chiplets"),
+ ISTEPNAME(07,06,"proc_scomoverride_chiplets"),
NEST_CHIPLETS::call_proc_scomoverride_chiplets,
{
START_FN,
diff --git a/src/include/usr/isteps/istep08list.H b/src/include/usr/isteps/istep08list.H
index b029a328f..54b90aeab 100644
--- a/src/include/usr/isteps/istep08list.H
+++ b/src/include/usr/isteps/istep08list.H
@@ -28,7 +28,7 @@
* @file istep08list.H
*
* IStep 08 EDI, EI Initialization
- * IPL FLow Doc v1.08 (08/13/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
* 08.1 fabric_erepair
* : Restore Fabric/EDI Bus eRepair data
diff --git a/src/include/usr/isteps/istep09list.H b/src/include/usr/isteps/istep09list.H
index 37b7190e2..55ceaba80 100644
--- a/src/include/usr/isteps/istep09list.H
+++ b/src/include/usr/isteps/istep09list.H
@@ -1,25 +1,25 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/include/usr/isteps/istep09list.H $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2012
-//
-// p1
-//
-// Object Code Only (OCO) source materials
-// Licensed Internal Code Source Materials
-// IBM HostBoot Licensed Internal Code
-//
-// The source code for this program is not published or other-
-// wise divested of its trade secrets, irrespective of what has
-// been deposited with the U.S. Copyright Office.
-//
-// Origin: 30
-//
-// IBM_PROLOG_END
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/isteps/istep09list.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
#ifndef __ISTEPS_ISTEP09LIST_H
#define __ISTEPS_ISTEP09LIST_H
@@ -28,11 +28,14 @@
* @file istep09list.H
*
* IStep 09 Activate PowerBus
- * IPL FLow Doc v1.01 (03/26/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
* 09.1 proc_build_smp
* : Integrate PgP Islands into SMP
*
+ * 09.2 host_slave_sbe_update
+ * : placeholder for secure boot
+ *
* *****************************************************************
* THIS FILE WAS GENERATED ON 2012-04-11:1607
* *****************************************************************
@@ -70,6 +73,14 @@ namespace INITSERVICE
EXT_IMAGE,
}
},
+ {
+ ISTEPNAME(09,02,"host_slave_sbe_update"),
+ ACTIVATE_POWERBUS::call_host_slave_sbe_update,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
// END OF LIST!
diff --git a/src/include/usr/isteps/istep10list.H b/src/include/usr/isteps/istep10list.H
index 824681e93..8b287e679 100644
--- a/src/include/usr/isteps/istep10list.H
+++ b/src/include/usr/isteps/istep10list.H
@@ -29,15 +29,42 @@
* @file istep10list.H
*
* Step 10 Hostboot SBE Centaur Init
- * IPL FLow Doc v1.01 (03/26/12)
+ * IPL FLow Doc v1.18 (10/10/12)
*
+ * 10.1 host_PRD_hwreconfig
+ * : Hook for PRD to handle reconfig
+ * 10.2 cen_sbe_istep_pnor
+ * : TP Chiplet init
+ * 10.3 cen_sbe_tp_chiplet_init1
+ * : TP Chiplet init
+ * 10.4 cen_sbe_npll_initf
+ * : Program Nest PLL
+ * 10.5 cen_sbe_tp_chiplet_init2
+ * : Cen TP Chiplet init 2
+ * 10.6 cen_sbe_tp_arrayinit
+ * : Cen TP Chiplet array init
+ * 10.7 cen_sbe_tp_chiplet_init3
+ * : Cen TP Chiplet Start clocks
+ * 10.8 cen_sbe_chiplet_init
+ * : Cen Chiplet Init
+ * 10.9 cen_sbe_arrayinit
+ * : Chiplet arrayinit
+ * 10.10 cen_sbe_dts_init
+ * : Cen DTS init
+ * 10.11 cen_sbe_initf
+ * : Cen Scan overrides
+ * 10.12 cen_sbe_do_manual_inits
+ * : Manual Cen Scans
+ * 10.13 cen_sbe_nest_startclocks
+ * : Start Cen Nest
+ * 10.14 cen_sbe_scominits
+ * : Perform any Cen scom inits
+
* Please see the note in initsvcstructs.H for description of
* the ISTEPNAME macro.
*
*/
-
-
#include <initservice/initsvcstructs.H>
#include <initservice/initsvcreasoncodes.H>
@@ -58,13 +85,120 @@ const TaskInfo g_istep10[] = {
}
},
{
- ISTEPNAME(10,01,"cen_sbe_tp_chiplet_init1"),
+ ISTEPNAME(10,01,"host_PRD_hwreconfig"),
+ HWAS::host_PRD_hwreconfig,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+
+ {
+ ISTEPNAME(10,02,"cen_sbe_istep_pnor"),
SBE_CENTAUR_INIT::call_sbe_centaur_init,
{
START_FN,
EXT_IMAGE,
}
},
+ {
+ ISTEPNAME(10,03,"cen_sbe_tp_chiplet_init1"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,04,"cen_sbe_npll_initf"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,05,"cen_sbe_tp_chiplet_init2"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,06,"cen_sbe_tp_arrayinit"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,07,"cen_sbe_tp_chiplet_init3"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,08,"cen_sbe_chiplet_init"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,09,"cen_sbe_tp_arrayinit"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,10,"cen_sbe_dts_init"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,11,"cen_sbe_initf"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,12,"cen_sbe_do_manual_inits"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(10,13,"cen_sbe_nest_startclocks"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+
+ ISTEPNAME(10,14,"cen_sbe_scominits"),
+ HWAS::host_stub,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+
// END OF LIST!
};
diff --git a/src/include/usr/isteps/istep11list.H b/src/include/usr/isteps/istep11list.H
index 31b174de2..142f8308a 100644
--- a/src/include/usr/isteps/istep11list.H
+++ b/src/include/usr/isteps/istep11list.H
@@ -1,32 +1,31 @@
-/* IBM_PROLOG_BEGIN_TAG
- * This is an automatically generated prolog.
- *
- * $Source: src/include/usr/isteps/istep11list.H $
- *
- * IBM CONFIDENTIAL
- *
- * COPYRIGHT International Business Machines Corp. 2011-2012
- *
- * p1
- *
- * Object Code Only (OCO) source materials
- * Licensed Internal Code Source Materials
- * IBM HostBoot Licensed Internal Code
- *
- * The source code for this program is not published or other-
- * wise divested of its trade secrets, irrespective of what has
- * been deposited with the U.S. Copyright Office.
- *
- * Origin: 30
- *
- * IBM_PROLOG_END_TAG
- */
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/isteps/istep11list.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2011,2012 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
#ifndef __ISTEPS_ISTEP11LIST_H
#define __ISTEPS_ISTEP11LIST_H
/**
* list of functions called for DMI Training - ISTEP 11 according to Dean's
- * HostBoot IPL Flow v1.08
+ * IPL Flow Doc v1.18 (10/18/12)
*
* 11.1. dmi_scominit
* : Scom setup on centaur
diff --git a/src/include/usr/isteps/istep12list.H b/src/include/usr/isteps/istep12list.H
index 0fce06b7a..28d2d5b02 100644
--- a/src/include/usr/isteps/istep12list.H
+++ b/src/include/usr/isteps/istep12list.H
@@ -28,15 +28,13 @@
* @file istep12list.H
*
* IStep 12 Step 12 MC Config
- * IPL FLow Doc v1.08 (08/13/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
* 12.1 host_collect_dimm_spd
* : Collect Master dimm SPD
- * 12.2 mss_volt
- * : Calc dimm voltage
- * 12.3 mss_freq
+ * 12.2 mss_freq
* : Calc dimm frequency
- * 12.4 mss_eff_config
+ * 12.3 mss_eff_config
* : Determine effective config
*
* *****************************************************************
@@ -76,15 +74,7 @@ const TaskInfo g_istep12[] = {
}
},
{
- ISTEPNAME(12,02,"mss_volt"),
- MC_CONFIG::call_mss_volt,
- {
- START_FN,
- EXT_IMAGE,
- }
- },
- {
- ISTEPNAME(12,03,"mss_freq"),
+ ISTEPNAME(12,02,"mss_freq"),
MC_CONFIG::call_mss_freq,
{
START_FN,
@@ -92,7 +82,7 @@ const TaskInfo g_istep12[] = {
}
},
{
- ISTEPNAME(12,04,"mss_eff_config"),
+ ISTEPNAME(12,03,"mss_eff_config"),
MC_CONFIG::call_mss_eff_config,
{
START_FN,
diff --git a/src/include/usr/isteps/istep13list.H b/src/include/usr/isteps/istep13list.H
index fe982d0e9..5f4a627d9 100644
--- a/src/include/usr/isteps/istep13list.H
+++ b/src/include/usr/isteps/istep13list.H
@@ -28,27 +28,29 @@
* @file istep13list.H
*
* IStep 13 Step 13 DRAM Training
- * IPL FLow Doc v1.08 (08/13/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
* 13.1 host_disable_vddr
* : Disable VDDR on CanContinue loops
- * 13.2 mem_pll_setup
+ * 13.2 mem_pll_initf
+ * : PLL Initfile for MBAs
+ * 13.3 mem_pll_setup
* : Setup PLL for MBAs
- * 13.3 mem_startclocks
+ * 13.4 mem_startclocks
* : Start clocks on MBAs
- * 13.4 host_enable_vddr
+ * 13.5 host_enable_vddr
* : Enable the VDDR3 Voltage Rail
- * 13.5 mss_scominit
+ * 13.6 mss_scominit
* : Perform scom inits to MC and PHY
- * 13.6 mss_ddr_phy_reset
+ * 13.7 mss_ddr_phy_reset
* : Soft reset of DDR PHY macros
- * 13.7 mss_draminit
+ * 13.8 mss_draminit
* : Dram initialize
- * 13.8 mss_draminit_training
+ * 13.9 mss_draminit_training
* : Dram training
- * 13.9 mss_draminit_trainadv
+ * 13.10 mss_draminit_trainadv
* : Advanced dram training
- * 13.10 mss_draminit_mc
+ * 13.11 mss_draminit_mc
* : Hand off control to MC
*
* *****************************************************************
@@ -88,7 +90,15 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,02,"mem_pll_setup"),
+ ISTEPNAME(13,02,"mem_pll_initf"),
+ DRAM_TRAINING::call_mem_pll_initf,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(13,03,"mem_pll_setup"),
DRAM_TRAINING::call_mem_pll_setup,
{
START_FN,
@@ -96,7 +106,7 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,03,"mem_startclocks"),
+ ISTEPNAME(13,04,"mem_startclocks"),
DRAM_TRAINING::call_mem_startclocks,
{
START_FN,
@@ -104,7 +114,7 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,04,"host_enable_vddr"),
+ ISTEPNAME(13,05,"host_enable_vddr"),
DRAM_TRAINING::call_host_enable_vddr,
{
START_FN,
@@ -112,7 +122,7 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,05,"mss_scominit"),
+ ISTEPNAME(13,06,"mss_scominit"),
DRAM_TRAINING::call_mss_scominit,
{
START_FN,
@@ -120,7 +130,7 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,06,"mss_ddr_phy_reset"),
+ ISTEPNAME(13,07,"mss_ddr_phy_reset"),
DRAM_TRAINING::call_mss_ddr_phy_reset,
{
START_FN,
@@ -128,7 +138,7 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,07,"mss_draminit"),
+ ISTEPNAME(13,08,"mss_draminit"),
DRAM_TRAINING::call_mss_draminit,
{
START_FN,
@@ -136,7 +146,7 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,08,"mss_draminit_training"),
+ ISTEPNAME(13,09,"mss_draminit_training"),
DRAM_TRAINING::call_mss_draminit_training,
{
START_FN,
@@ -144,7 +154,7 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,09,"mss_draminit_trainadv"),
+ ISTEPNAME(13,10,"mss_draminit_trainadv"),
DRAM_TRAINING::call_mss_draminit_trainadv,
{
START_FN,
@@ -152,7 +162,7 @@ const TaskInfo g_istep13[] = {
}
},
{
- ISTEPNAME(13,10,"mss_draminit_mc"),
+ ISTEPNAME(13,11,"mss_draminit_mc"),
DRAM_TRAINING::call_mss_draminit_mc,
{
START_FN,
diff --git a/src/include/usr/isteps/istep14list.H b/src/include/usr/isteps/istep14list.H
index efd697a3f..6ab917036 100644
--- a/src/include/usr/isteps/istep14list.H
+++ b/src/include/usr/isteps/istep14list.H
@@ -28,24 +28,24 @@
* @file istep14list.H
*
* IStep 14 Dram Initialization
- * IPL FLow Doc v1.08 (08/13/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
* 14.1 host_startPRD_dram
* : Load PRD for DRAM domain
* 14.2 mss_extent_setup
* MSS Extent Setup
- * 14.3 mss_memdiag
- * Mainstore Pattern Testing
- * 14.4 mss_scrub
+ * 14.3 mss_scrub
* : Start background scrub
- * 14.5 mss_thermal_init
+ * 14.4 mss_thermal_init
* : Initialize the thermal sensor
- * 14.6 proc_setup_bars
+ * 14.5 proc_setup_bars
* : Setup Memory BARs
- * 14.7 proc_pcie_config
+ * 14.6 proc_pcie_config
* : Configure the PHBs
- * 14.8 proc_exit_cache_contained
+ * 14.7 proc_exit_cache_contained
* : Allow execution from memory
+ * 14.8 host_mpipl_service
+ * : Perform MPIPL tasks
*
* *****************************************************************
* THIS FILE WAS GENERATED ON 2012-04-11:1608
@@ -94,11 +94,9 @@ namespace INITSERVICE
EXT_IMAGE,
}
},
-
-
{
- ISTEPNAME(14,03,"mss_memdiag"),
- DRAM_INITIALIZATION::call_mss_memdiag,
+ ISTEPNAME(14,03,"mss_scrub"),
+ DRAM_INITIALIZATION::call_mss_scrub,
{
START_FN,
EXT_IMAGE,
@@ -107,8 +105,8 @@ namespace INITSERVICE
{
- ISTEPNAME(14,04,"mss_scrub"),
- DRAM_INITIALIZATION::call_mss_scrub,
+ ISTEPNAME(14,04,"mss_thermal_init"),
+ DRAM_INITIALIZATION::call_mss_thermal_init,
{
START_FN,
EXT_IMAGE,
@@ -117,8 +115,8 @@ namespace INITSERVICE
{
- ISTEPNAME(14,05,"mss_thermal_init"),
- DRAM_INITIALIZATION::call_mss_thermal_init,
+ ISTEPNAME(14,05,"proc_setup_bars"),
+ DRAM_INITIALIZATION::call_proc_setup_bars,
{
START_FN,
EXT_IMAGE,
@@ -127,8 +125,8 @@ namespace INITSERVICE
{
- ISTEPNAME(14,06,"proc_setup_bars"),
- DRAM_INITIALIZATION::call_proc_setup_bars,
+ ISTEPNAME(14,06,"proc_pcie_config"),
+ DRAM_INITIALIZATION::call_proc_pcie_config,
{
START_FN,
EXT_IMAGE,
@@ -137,18 +135,16 @@ namespace INITSERVICE
{
- ISTEPNAME(14,07,"proc_pcie_config"),
- DRAM_INITIALIZATION::call_proc_pcie_config,
+ ISTEPNAME(14,07,"proc_exit_cache_contained"),
+ DRAM_INITIALIZATION::call_proc_exit_cache_contained,
{
START_FN,
EXT_IMAGE,
}
},
-
-
{
- ISTEPNAME(14,08,"proc_exit_cache_contained"),
- DRAM_INITIALIZATION::call_proc_exit_cache_contained,
+ ISTEPNAME(14,08,"host_mpipl_service"),
+ DRAM_INITIALIZATION::call_host_mpipl_service,
{
START_FN,
EXT_IMAGE,
diff --git a/src/include/usr/isteps/istep15list.H b/src/include/usr/isteps/istep15list.H
index a64579dbc..661ab204a 100644
--- a/src/include/usr/isteps/istep15list.H
+++ b/src/include/usr/isteps/istep15list.H
@@ -28,7 +28,7 @@
* @file istep15list.H
*
* IStep 15 Build Winkle Images
- * IPL FLow Doc v1.08 (08/13/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
* 15.1 host_build_winkle
* : Build runtime winkle images
@@ -74,8 +74,6 @@ namespace INITSERVICE
EXT_IMAGE,
}
},
-
-
{
ISTEPNAME(15,02,"proc_set_pore_bar"),
BUILD_WINKLE_IMAGES::call_proc_set_pore_bar,
@@ -84,10 +82,9 @@ namespace INITSERVICE
EXT_IMAGE,
}
},
-
{
- ISTEPNAME(15,03,"proc_poreslw_init"),
- BUILD_WINKLE_IMAGES::call_proc_poreslw_init,
+ ISTEPNAME(15,03,"p8_poreslw_init"),
+ BUILD_WINKLE_IMAGES::call_p8_poreslw_init,
{
START_FN,
EXT_IMAGE,
diff --git a/src/include/usr/isteps/istep16list.H b/src/include/usr/isteps/istep16list.H
index 28a1d8de5..d1c978bab 100644
--- a/src/include/usr/isteps/istep16list.H
+++ b/src/include/usr/isteps/istep16list.H
@@ -1,25 +1,25 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/include/usr/isteps/istep16list.H $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2012
-//
-// p1
-//
-// Object Code Only (OCO) source materials
-// Licensed Internal Code Source Materials
-// IBM HostBoot Licensed Internal Code
-//
-// The source code for this program is not published or other-
-// wise divested of its trade secrets, irrespective of what has
-// been deposited with the U.S. Copyright Office.
-//
-// Origin: 30
-//
-// IBM_PROLOG_END
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/isteps/istep16list.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
#ifndef __ISTEPS_ISTEP16LIST_H
#define __ISTEPS_ISTEP16LIST_H
@@ -28,7 +28,7 @@
* @file istep16list.H
*
* IStep 16 Core Activate
- * IPL FLow Doc v1.01 (03/26/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
* 16.1 host_activate_master
* : Activate master core
diff --git a/src/include/usr/isteps/istep18list.H b/src/include/usr/isteps/istep18list.H
index 69a282c8b..324fcaa39 100644
--- a/src/include/usr/isteps/istep18list.H
+++ b/src/include/usr/isteps/istep18list.H
@@ -28,9 +28,9 @@
* @file istep18list.H
*
* IStep 18 Establish System SMP
- * IPL FLow Doc v1.08 (08/13/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
- * 18.8 host_coalesce_host
+ * 18.10 host_coalesce_host
* : Create single host image
*
* *****************************************************************
@@ -125,9 +125,26 @@ namespace INITSERVICE
EXT_IMAGE,
}
},
+ {
+ ISTEPNAME(18,08,""),
+ NULL,
+ {
+ NONE,
+ EXT_IMAGE,
+ }
+ },
+ {
+
+ ISTEPNAME(18,09,""),
+ NULL,
+ {
+ NONE,
+ EXT_IMAGE,
+ }
+ },
{
- ISTEPNAME(18,08,"host_coalesce_host"),
+ ISTEPNAME(18,10,"host_coalesce_host"),
ESTABLISH_SYSTEM_SMP::call_host_coalesce_host,
{
START_FN,
diff --git a/src/include/usr/isteps/istep21list.H b/src/include/usr/isteps/istep21list.H
index e3418ddb8..2212ec181 100644
--- a/src/include/usr/isteps/istep21list.H
+++ b/src/include/usr/isteps/istep21list.H
@@ -1,25 +1,25 @@
-// IBM_PROLOG_BEGIN_TAG
-// This is an automatically generated prolog.
-//
-// $Source: src/include/usr/isteps/istep21list.H $
-//
-// IBM CONFIDENTIAL
-//
-// COPYRIGHT International Business Machines Corp. 2012
-//
-// p1
-//
-// Object Code Only (OCO) source materials
-// Licensed Internal Code Source Materials
-// IBM HostBoot Licensed Internal Code
-//
-// The source code for this program is not published or other-
-// wise divested of its trade secrets, irrespective of what has
-// been deposited with the U.S. Copyright Office.
-//
-// Origin: 30
-//
-// IBM_PROLOG_END
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/isteps/istep21list.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2012 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
#ifndef __ISTEPS_ISTEP21LIST_H
#define __ISTEPS_ISTEP21LIST_H
@@ -28,9 +28,13 @@
* @file istep21list.H
*
* IStep 21 Start Payload
- * IPL FLow Doc v1.01 (03/26/12)
+ * IPL FLow Doc v1.18 (10/18/12)
*
- * 21.1 host_start_payload
+ * 21.1 host_runtime_setup
+ * : Start Payload
+ * 21.2 host_verify_hdat
+ * : Start Payload
+ * 21.3 host_start_payload
* : Start Payload
*
* *****************************************************************
@@ -63,7 +67,23 @@ namespace INITSERVICE
},
{
- ISTEPNAME(21,01,"host_start_payload"),
+ ISTEPNAME(21,01,"host_runtime_setup"),
+ START_PAYLOAD::call_host_runtime_setup,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(21,02,"host_verify_hdat"),
+ START_PAYLOAD::call_host_verify_hdat,
+ {
+ START_FN,
+ EXT_IMAGE,
+ }
+ },
+ {
+ ISTEPNAME(21,03,"host_start_payload"),
START_PAYLOAD::call_host_start_payload,
{
START_FN,
diff --git a/src/usr/hwas/hostbootIstep.C b/src/usr/hwas/hostbootIstep.C
index b7b8d09ba..7fde0b52a 100644
--- a/src/usr/hwas/hostbootIstep.C
+++ b/src/usr/hwas/hostbootIstep.C
@@ -43,7 +43,7 @@ namespace HWAS
// functions called from the istep dispatcher -- hostboot only
//******************************************************************************
-// host_init_fsi function
+// host_init_fsi function (step 6.3)
//******************************************************************************
void* host_init_fsi( void *io_pArgs )
{
@@ -57,7 +57,7 @@ void* host_init_fsi( void *io_pArgs )
}
//******************************************************************************
-// host_set_ipl_parms function
+// host_set_ipl_parms function (step 6.4)
//******************************************************************************
void* host_set_ipl_parms( void *io_pArgs )
{
@@ -72,7 +72,7 @@ void* host_set_ipl_parms( void *io_pArgs )
}
//******************************************************************************
-// host_discover_targets function
+// host_discover_targets function (step 6.5)
//******************************************************************************
void* host_discover_targets( void *io_pArgs )
{
@@ -88,7 +88,7 @@ void* host_discover_targets( void *io_pArgs )
}
//******************************************************************************
-// host_gard function
+// host_gard function (step 6.6)
//******************************************************************************
void* host_gard( void *io_pArgs )
{
@@ -102,7 +102,7 @@ void* host_gard( void *io_pArgs )
}
//******************************************************************************
-// host_cancontinue_clear function
+// host_cancontinue_clear functioni (step 6.7)
//******************************************************************************
void* host_cancontinue_clear( void *io_pArgs )
{
@@ -119,17 +119,30 @@ void* host_cancontinue_clear( void *io_pArgs )
}
//******************************************************************************
-// proc_xmit_sbe function
+// host_PRD_hwreconfig function
//******************************************************************************
-void* proc_xmit_sbe( void *io_pArgs )
+void* host_PRD_hwreconfig( void *io_pArgs )
{
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "proc_xmit_sbe entry" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "host_PRD_hwreconfig entry" );
+
errlHndl_t errl = NULL;
// stub -- nothing here currently
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "proc_xmit_sbe exit" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "host_PRD_hwreconfig exit" );
+
+ return errl;
+}
+//******************************************************************************
+// host_stub function
+//******************************************************************************
+void* host_stub( void *io_pArgs )
+{
+ errlHndl_t errl = NULL;
+ // no function required
return errl;
}
diff --git a/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C b/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C
index a796d69e9..5180bf7e3 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C
+++ b/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.C
@@ -70,12 +70,9 @@ using namespace TARGETING;
using namespace EDI_EI_INITIALIZATION;
using namespace fapi;
-
-
-//
-// Wrapper function to call 09.1 :
-// proc_build_smp
-//
+//******************************************************************************
+// wrapper funciton to call step 9.01 - proc_build_smp
+//******************************************************************************
void* call_proc_build_smp( void *io_pArgs )
{
@@ -224,5 +221,22 @@ void* call_proc_build_smp( void *io_pArgs )
return l_StepError.getErrorHandle();
}
+//******************************************************************************
+// wrapper function to call step 9.02 - host_slave_sbe_update
+//******************************************************************************
+void * call_host_slave_sbe_update( void * io_pArgs )
+{
+ errlHndl_t l_errl = NULL;
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_slave_sbe_update entry" );
+
+ // call p8_customize_image.C
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_slave_sbe_update exit" );
+
+ return l_errl;
+}
}; // end namespace
diff --git a/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.H b/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.H
index 19215788d..bb7a19fcc 100644
--- a/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.H
+++ b/src/usr/hwpf/hwp/activate_powerbus/activate_powerbus.H
@@ -75,8 +75,20 @@ namespace ACTIVATE_POWERBUS
* return any error logs to istep
*
*/
-void* call_proc_build_smp( void *io_pArgs );
+void* call_proc_build_smp( void *io_pArgs );
+/**
+ * @brief host_slave_sbe_update
+ *
+ * 09.2 : : Placeholder for secureboot where Hostboot must update
+ * SEEPROM because FSP cannot.
+ *
+ * param[in,out] - pointer to any arguments, usually NULL
+ *
+ * return any error logs to istep
+ *
+ */
+void* call_host_slave_sbe_update( void * io_pArgs );
}; // end namespace
diff --git a/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C b/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C
index a3b4e45c7..7fc304142 100644
--- a/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C
+++ b/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C
@@ -82,6 +82,7 @@ using namespace TARGETING;
using namespace fapi;
using namespace DeviceFW;
+
// @@@@@ CUSTOM BLOCK: @@@@@
/**
@@ -603,19 +604,18 @@ void* call_proc_set_pore_bar( void *io_pArgs )
return l_stepError.getErrorHandle();
}
-
//
// Wrapper function to call 15.3 :
-// proc_poreslw_init
+// p8_poreslw_init
//
-void* call_proc_poreslw_init( void *io_pArgs )
+void* call_p8_poreslw_init( void *io_pArgs )
{
errlHndl_t l_errl = NULL;
ISTEP_ERROR::IStepError l_stepError;
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_proc_poreslw_init entry" );
+ "call_p8_poreslw_init entry" );
// @@@@@ CUSTOM BLOCK: @@@@@
@@ -681,7 +681,7 @@ void* call_proc_poreslw_init( void *io_pArgs )
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_proc_poreslw_init exit" );
+ "call_p8_poreslw_init exit" );
// end task, returning any errorlogs to IStepDisp
return l_stepError.getErrorHandle();
diff --git a/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.H b/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.H
index 077021be1..a032774c4 100644
--- a/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.H
+++ b/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.H
@@ -76,7 +76,6 @@ namespace BUILD_WINKLE_IMAGES
{
-
/**
* @brief host_build_winkle
*
@@ -106,7 +105,7 @@ void* call_proc_set_pore_bar( void *io_pArgs );
/**
- * @brief proc_poreslw_init
+ * @brief p8_poreslw_init
*
* 15.3 : : Initialize the PORE-SLW engine
*
@@ -115,8 +114,7 @@ void* call_proc_set_pore_bar( void *io_pArgs );
* return any error logs to istep
*
*/
-void* call_proc_poreslw_init( void *io_pArgs );
-
+void* call_p8_poreslw_init( void *io_pArgs );
}; // end namespace
diff --git a/src/usr/hwpf/hwp/dram_initialization/dram_initialization.C b/src/usr/hwpf/hwp/dram_initialization/dram_initialization.C
index 9c2d0667a..edffb9420 100644
--- a/src/usr/hwpf/hwp/dram_initialization/dram_initialization.C
+++ b/src/usr/hwpf/hwp/dram_initialization/dram_initialization.C
@@ -87,8 +87,6 @@ using namespace TARGETING;
using namespace EDI_EI_INITIALIZATION;
using namespace fapi;
-
-
//
// Wrapper function to call 14.1 :
// host_startPRD_dram
@@ -183,6 +181,30 @@ void* call_mss_extent_setup( void *io_pArgs )
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"SUCCESS : mss_extent_setup completed ok" );
+
+ // call mss_memdiag
+ l_errl = call_mss_memdiag(io_pArgs);
+
+ if( l_errl )
+ {
+ /*@
+ * @errortype
+ * @reasoncode ISTEP_DRAM_INITIALIZATION_FAILED
+ * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
+ * @moduleid ISTEP_MSS_MEMDIAG
+ * @userdata1 bytes 0-1: plid identifying first error
+ * bytes 2-3: reason code of first error
+ * @userdata2 bytes 0-1: total number of elogs included
+ * bytes 2-3: N/A
+ * @devdesc call to mss_memdiag has failed, see error log
+ * identified by the plid in user data
+ */
+ l_stepError.addErrorDetails(ISTEP_DRAM_INITIALIZATION_FAILED,
+ ISTEP_MSS_MEMDIAG,
+ l_errl );
+
+ errlCommit( l_errl, HWPF_COMP_ID );
+ }
}
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
@@ -193,17 +215,14 @@ void* call_mss_extent_setup( void *io_pArgs )
}
//
-// Wrapper function to call 14.3 :
-// mss_memdiag
+// Wrapper function to call mss_memdiag
//
-void* call_mss_memdiag( void *io_pArgs )
+errlHndl_t call_mss_memdiag( void *io_pArgs )
{
using namespace MDIA;
errlHndl_t l_errl = NULL;
- IStepError l_stepError;
-
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_mss_memdiag entry" );
@@ -236,38 +255,17 @@ void* call_mss_memdiag( void *io_pArgs )
} while (0);
- if( l_errl )
- {
- /*@
- * @errortype
- * @reasoncode ISTEP_DRAM_INITIALIZATION_FAILED
- * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
- * @moduleid ISTEP_MSS_MEMDIAG
- * @userdata1 bytes 0-1: plid identifying first error
- * bytes 2-3: reason code of first error
- * @userdata2 bytes 0-1: total number of elogs included
- * bytes 2-3: N/A
- * @devdesc call to mss_memdiag has failed, see error log
- * identified by the plid in user data
- */
- l_stepError.addErrorDetails(ISTEP_DRAM_INITIALIZATION_FAILED,
- ISTEP_MSS_MEMDIAG,
- l_errl );
-
- errlCommit( l_errl, HWPF_COMP_ID );
- }
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"call_mss_memdiag exit" );
// end task, returning any errorlogs to IStepDisp
- return l_stepError.getErrorHandle();
+ return l_errl;
}
-
//
-// Wrapper function to call 14.4 :
+// Wrapper function to call 14.3 :
// mss_scrub
//
void* call_mss_scrub( void *io_pArgs )
@@ -320,7 +318,7 @@ void* call_mss_scrub( void *io_pArgs )
//
-// Wrapper function to call 14.5 :
+// Wrapper function to call 14.4 :
// mss_thermal_init
//
void* call_mss_thermal_init( void *io_pArgs )
@@ -373,7 +371,7 @@ void* call_mss_thermal_init( void *io_pArgs )
//
-// Wrapper function to call 14.6 :
+// Wrapper function to call 14.5 :
// proc_setup_bars
//
void* call_proc_setup_bars( void *io_pArgs )
@@ -600,7 +598,7 @@ void* call_proc_setup_bars( void *io_pArgs )
//
-// Wrapper function to call 14.7 :
+// Wrapper function to call 14.6 :
// proc_pcie_config
//
void* call_proc_pcie_config( void *io_pArgs )
@@ -653,7 +651,7 @@ void* call_proc_pcie_config( void *io_pArgs )
//
-// Wrapper function to call 14.8 :
+// Wrapper function to call 14.7 :
// proc_exit_cache_contained
//
void* call_proc_exit_cache_contained( void *io_pArgs )
@@ -747,4 +745,22 @@ void* call_proc_exit_cache_contained( void *io_pArgs )
}
+//
+// Wrapper function to call 14.8 :
+// call_host_mpipl_service
+//
+void* call_host_mpipl_service( void *io_pArgs )
+{
+ errlHndl_t l_errl = NULL;
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_mpipl_service entry" );
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_mpipl_service exit" );
+
+ return l_errl;
+
+}
+
}; // end namespace
diff --git a/src/usr/hwpf/hwp/dram_initialization/dram_initialization.H b/src/usr/hwpf/hwp/dram_initialization/dram_initialization.H
index c9c6c98a6..04f3206b8 100644
--- a/src/usr/hwpf/hwp/dram_initialization/dram_initialization.H
+++ b/src/usr/hwpf/hwp/dram_initialization/dram_initialization.H
@@ -24,6 +24,8 @@
#ifndef __DRAM_INITIALIZATION_DRAM_INITIALIZATION_H
#define __DRAM_INITIALIZATION_DRAM_INITIALIZATION_H
+#include <errl/errlentry.H>
+
/**
* @file dram_initialization.H
*
@@ -101,7 +103,6 @@ namespace DRAM_INITIALIZATION
{
-
/**
* @brief host_startPRD_dram
*
@@ -115,7 +116,6 @@ namespace DRAM_INITIALIZATION
void* call_host_startPRD_dram( void *io_pArgs );
-
/**
* @brief mss_extent_setup
*
@@ -128,26 +128,22 @@ void* call_host_startPRD_dram( void *io_pArgs );
*/
void* call_mss_extent_setup( void *io_pArgs );
-
-
/**
* @brief mss_memdiag
*
- * 14.3 : Mainstore Pattern Testing
+ * Mainstore Pattern Testing
*
* param[in,out] - pointer to any arguments, usually NULL
*
* return pointer to any errlogs
*
*/
-void* call_mss_memdiag( void *io_pArgs );
-
-
+errlHndl_t call_mss_memdiag( void *io_pArgs );
/**
* @brief mss_scrub
*
- * 14.4 : : Start background scrub
+ * 14.3 : : Start background scrub
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -161,7 +157,7 @@ void* call_mss_scrub( void *io_pArgs );
/**
* @brief mss_thermal_init
*
- * 14.5 : : Initialize the thermal sensor
+ * 14.4 : : Initialize the thermal sensor
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -175,7 +171,7 @@ void* call_mss_thermal_init( void *io_pArgs );
/**
* @brief proc_setup_bars
*
- * 14.6 : : Setup Memory BARs
+ * 14.5 : : Setup Memory BARs
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -189,7 +185,7 @@ void* call_proc_setup_bars( void *io_pArgs );
/**
* @brief proc_pcie_config
*
- * 14.7 : : Configure the PHBs
+ * 14.6 : : Configure the PHBs
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -203,7 +199,7 @@ void* call_proc_pcie_config( void *io_pArgs );
/**
* @brief proc_exit_cache_contained
*
- * 14.8 : : Allow execution from memory
+ * 14.7 : : Allow execution from memory
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -213,6 +209,18 @@ void* call_proc_pcie_config( void *io_pArgs );
void* call_proc_exit_cache_contained( void *io_pArgs );
+/**
+ * @brief host_mpipl_service
+ *
+ * 14.8 : : Perform MPIPL tasks
+ *
+ * param[in,out] - pointer to any arguments, usually NULL
+ *
+ * return pointer to any errlogs
+ *
+ */
+void* call_host_mpipl_service( void *io_pArgs);
+
}; // end namespace
#endif
diff --git a/src/usr/hwpf/hwp/dram_training/dram_training.C b/src/usr/hwpf/hwp/dram_training/dram_training.C
index 6a31ad17f..b160a04c2 100644
--- a/src/usr/hwpf/hwp/dram_training/dram_training.C
+++ b/src/usr/hwpf/hwp/dram_training/dram_training.C
@@ -152,10 +152,24 @@ void* call_host_disable_vddr( void *io_pArgs )
return l_err;
}
+//
+// Wrapper function to call 13.2 : mem_pll_initf
+//
+void* call_mem_pll_initf( void *io_pArgs )
+{
+ errlHndl_t l_err = NULL;
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mem_pll_initf entry" );
+
+ // call cen_mem_pll_initf.C
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mem_pll_initf exit" );
+
+ return l_err;
+}
//
-// Wrapper function to call 13.2 : mem_pll_setup
+// Wrapper function to call 13.3 : mem_pll_setup
//
void* call_mem_pll_setup( void *io_pArgs )
{
@@ -267,10 +281,8 @@ void* call_mem_pll_setup( void *io_pArgs )
return l_err;
}
-
-
//
-// Wrapper function to call 13.3 : mem_startclocks
+// Wrapper function to call 13.4 : mem_startclocks
//
void* call_mem_startclocks( void *io_pArgs )
{
@@ -351,7 +363,7 @@ void* call_mem_startclocks( void *io_pArgs )
//
-// Wrapper function to call 13.4 : host_enable_vddr
+// Wrapper function to call 13.5 : host_enable_vddr
//
void* call_host_enable_vddr( void *io_pArgs )
{
@@ -412,7 +424,7 @@ void* call_host_enable_vddr( void *io_pArgs )
//
-// Wrapper function to call 13.5 : mss_scominit
+// Wrapper function to call 13.6 : mss_scominit
//
void* call_mss_scominit( void *io_pArgs )
{
@@ -487,7 +499,7 @@ void* call_mss_scominit( void *io_pArgs )
}
//
-// Wrapper function to call 13.6 : mss_ddr_phy_reset
+// Wrapper function to call 13.7 : mss_ddr_phy_reset
//
void* call_mss_ddr_phy_reset( void *io_pArgs )
{
@@ -572,7 +584,7 @@ void* call_mss_ddr_phy_reset( void *io_pArgs )
//
-// Wrapper function to call 13.7 : mss_draminit
+// Wrapper function to call 13.8 : mss_draminit
//
void* call_mss_draminit( void *io_pArgs )
{
@@ -659,7 +671,7 @@ void* call_mss_draminit( void *io_pArgs )
//
-// Wrapper function to call 13.8 : mss_draminit_training
+// Wrapper function to call 13.9 : mss_draminit_training
//
void* call_mss_draminit_training( void *io_pArgs )
{
@@ -746,7 +758,7 @@ void* call_mss_draminit_training( void *io_pArgs )
}
//
-// Wrapper function to call 13.9 : mss_draminit_trainadv
+// Wrapper function to call 13.10 : mss_draminit_trainadv
//
void* call_mss_draminit_trainadv( void *io_pArgs )
{
@@ -805,7 +817,7 @@ void* call_mss_draminit_trainadv( void *io_pArgs )
}
//
-// Wrapper function to call 13.10 : mss_draminit_mc
+// Wrapper function to call 13.11 : mss_draminit_mc
//
void* call_mss_draminit_mc( void *io_pArgs )
{
diff --git a/src/usr/hwpf/hwp/dram_training/dram_training.H b/src/usr/hwpf/hwp/dram_training/dram_training.H
index e7039c5f7..9e256036e 100644
--- a/src/usr/hwpf/hwp/dram_training/dram_training.H
+++ b/src/usr/hwpf/hwp/dram_training/dram_training.H
@@ -115,8 +115,6 @@
namespace DRAM_TRAINING
{
-
-
/**
* @brief host_disable_vddr
*
@@ -129,12 +127,22 @@ namespace DRAM_TRAINING
*/
void* call_host_disable_vddr( void * io_pArgs );
-
+/**
+ * @brief mem_pll_pll_initf
+ *
+ * 13.2 : : PLL init file for MBAs
+ *
+ * param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
+ * or NULL.
+ * return any errlogs to istep
+ *
+ */
+void* call_mem_pll_initf( void * io_pArgs );
/**
* @brief mem_pll_setup
*
- * 13.2 : : Setup PLL for MBAs
+ * 13.3 : : Setup PLL for MBAs
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -148,7 +156,7 @@ void* call_mem_pll_setup( void * io_pArgs );
/**
* @brief mem_startclocks
*
- * 13.3 : : Start clocks on MBAs
+ * 13.4 : : Start clocks on MBAs
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -162,7 +170,7 @@ void* call_mem_startclocks( void * io_pArgs );
/**
* @brief host_enable_vddr
*
- * 13.4 : : Enable the VDDR3 Voltage Rail
+ * 13.5 : : Enable the VDDR3 Voltage Rail
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -177,7 +185,7 @@ void* call_host_enable_vddr( void * io_pArgs );
/**
* @brief mss_scominit
*
- * 13.5 : : Perform scom inits to MC and PHY
+ * 13.6 : : Perform scom inits to MC and PHY
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -191,7 +199,7 @@ void* call_mss_scominit( void * io_pArgs );
/**
* @brief mss_ddr_phy_reset
*
- * 13.6 : : Soft reset of DDR PHY macros
+ * 13.7 : : Soft reset of DDR PHY macros
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -205,7 +213,7 @@ void* call_mss_ddr_phy_reset( void * io_pArgs );
/**
* @brief mss_draminit
*
- * 13.7 : : Dram initialize
+ * 13.8 : : Dram initialize
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -218,7 +226,7 @@ void* call_mss_draminit( void * io_pArgs );
/**
* @brief mss_draminit_training
*
- * 13.8 : : Dram training
+ * 13.9 : : Dram training
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -232,7 +240,7 @@ void* call_mss_draminit_training( void * io_pArgs );
/**
* @brief mss_draminit_trainadv
*
- * 13.9 : : Advanced dram training
+ * 13.10 : : Advanced dram training
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -246,7 +254,7 @@ void* call_mss_draminit_trainadv( void * io_pArgs );
/**
* @brief mss_draminit_mc
*
- * 13.10 : : Hand off control to MC
+ * 13.11 : : Hand off control to MC
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
diff --git a/src/usr/hwpf/hwp/mc_config/mc_config.C b/src/usr/hwpf/hwp/mc_config/mc_config.C
index 05e6e0835..f3bd67b63 100644
--- a/src/usr/hwpf/hwp/mc_config/mc_config.C
+++ b/src/usr/hwpf/hwp/mc_config/mc_config.C
@@ -90,68 +90,46 @@ void* call_host_collect_dimm_spd( void *io_pArgs )
{
errlHndl_t l_err = NULL;
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_host_collect_dimm_spd entry" );
+ IStepError l_StepError;
-#if 0
- // @@@@@ CUSTOM BLOCK: @@@@@
- // figure out what targets we need
- // customize any other inputs
- // set up loops to go through all targets (if parallel, spin off a task)
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_host_collect_dimm_spd entry" );
- // print call to hwp and dump physical path of the target(s)
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "===== host_collect_dimm_spd HWP(? ? ? )",
- ?
- ?
- ? );
- // dump physical path to targets
- EntityPath l_path;
- l_path = l_@targetN_target->getAttr<ATTR_PHYS_PATH>();
- l_path.dump();
-
- // cast OUR type of target to a FAPI type of target.
- const fapi::Target l_fapi_@targetN_target(
- TARGET_TYPE_MEMBUF_CHIP,
- reinterpret_cast<void *>
- (const_cast<TARGETING::Target*>(l_@targetN_target)) );
-
- // call the HWP with each fapi::Target
- l_fapirc = host_collect_dimm_spd( ? , ?, ? );
+ l_err = call_mss_volt( io_pArgs );
- // process return code.
- if ( l_fapirc== fapi::FAPI_RC_SUCCESS )
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : host_collect_dimm_spd HWP(? ? ? )" );
- }
- else
+ if( l_err )
{
- /**
- * @todo fapi error - just print out for now...
+ /*@
+ * @errortype
+ * @reasoncode ISTEP_MC_CONFIG_FAILED
+ * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
+ * @moduleid ISTEP_HOST_COLLECT_DIMM_SPD
+ * @userdata1 bytes 0-1: plid identifying first error
+ * bytes 2-3: reason code of first error
+ * @userdata2 bytes 0-1: total number of elogs included
+ * bytes 2-3: N/A
+ * @devdesc call to mss_volt has failed
+ *
*/
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X: host_collect_dimm_spd HWP(? ? ?) ",
- static_cast<uint32_t>(l_fapirc) );
- }
- // @@@@@ END CUSTOM BLOCK: @@@@@
-#endif
+ l_StepError.addErrorDetails(ISTEP_MC_CONFIG_FAILED,
+ ISTEP_HOST_COLLECT_DIMM_SPD,
+ l_err );
+ errlCommit( l_err, HWPF_COMP_ID );
+
+ }
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_host_collect_dimm_spd exit" );
return l_err;
}
-
//
-// Wrapper function to call 12.2 : mss_volt
+// Wrapper function to call mss_volt
//
-void* call_mss_volt( void *io_pArgs )
+errlHndl_t call_mss_volt( void *io_pArgs )
{
errlHndl_t l_err = NULL;
- IStepError l_StepError;
-
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_volt entry" );
TARGETING::TargetHandleList l_membufTargetList;
@@ -192,23 +170,6 @@ void* call_mss_volt( void *io_pArgs )
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"ERROR 0x%.8X: mss_volt HWP( ) ", l_err->reasonCode());
- /*@
- * @errortype
- * @reasoncode ISTEP_MC_CONFIG_FAILED
- * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
- * @moduleid ISTEP_MSS_VOLT
- * @userdata1 bytes 0-1: plid identifying first error
- * bytes 2-3: reason code of first error
- * @userdata2 bytes 0-1: total number of elogs included
- * bytes 2-3: N/A
- * @devdesc call to mss_volt has failed
- *
- */
- l_StepError.addErrorDetails(ISTEP_MC_CONFIG_FAILED,
- ISTEP_MSS_VOLT,
- l_err );
-
- errlCommit( l_err, HWPF_COMP_ID );
}
else
@@ -219,11 +180,11 @@ void* call_mss_volt( void *io_pArgs )
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_volt exit" );
- return l_StepError.getErrorHandle();
+ return l_err;
}
//
-// Wrapper function to call 12.3 : mss_freq
+// Wrapper function to call 12.2 : mss_freq
//
void* call_mss_freq( void *io_pArgs )
{
@@ -375,7 +336,7 @@ errlHndl_t call_mss_eff_grouping()
}
//
-// Wrapper function to call 12.4 : mss_eff_config
+// Wrapper function to call 12.3 : mss_eff_config
//
void* call_mss_eff_config( void *io_pArgs )
{
diff --git a/src/usr/hwpf/hwp/mc_config/mc_config.H b/src/usr/hwpf/hwp/mc_config/mc_config.H
index 5108eb706..4326619bc 100644
--- a/src/usr/hwpf/hwp/mc_config/mc_config.H
+++ b/src/usr/hwpf/hwp/mc_config/mc_config.H
@@ -75,7 +75,7 @@
// Includes
/******************************************************************************/
#include <stdint.h>
-
+#include <errl/errlentry.H>
namespace MC_CONFIG
{
@@ -98,21 +98,21 @@ void* call_host_collect_dimm_spd( void * io_pArgs );
/**
* @brief mss_volt
*
- * 12.2 : : Calc dimm voltage
+ * Calc dimm voltage
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
* return any error logs to istep
*
*/
-void* call_mss_volt( void * io_pArgs );
+errlHndl_t call_mss_volt( void * io_pArgs );
/**
* @brief mss_freq
*
- * 12.3 : : Calc dimm frequency
+ * 12.2 : : Calc dimm frequency
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
@@ -126,7 +126,7 @@ void* call_mss_freq( void * io_pArgs );
/**
* @brief mss_eff_config
*
- * 12.4 : : Determine effective config
+ * 12.3 : : Determine effective config
*
* param[in,out] io_pArgs - (normally) a pointer to a TaskArgs struct,
* or NULL.
diff --git a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
index beb512982..40791be2a 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
+++ b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.C
@@ -59,7 +59,8 @@
// -- prototype includes --
// Add any customized routines that you don't want overwritten into
-// "start_clocks_on_nest_chiplets_custom.C" and include the prototypes here.
+// "start_clocks_on_nest_chiplets_custom.C" and include
+// the prototypes here.
// #include "nest_chiplets_custom.H"
#include "nest_chiplets.H"
#include "proc_start_clocks_chiplets/proc_start_clocks_chiplets.H"
@@ -77,44 +78,45 @@ using namespace ERRORLOG;
using namespace TARGETING;
using namespace fapi;
-
-
-//
-// Wrapper function to call 07.1 :
-// proc_a_x_pci_dmi_pll_setup
-//
-void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs )
+//*****************************************************************************
+// wrapper function to call step 7.01 - proc_a_x_pci_dmi_pll_initf
+//*****************************************************************************
+void* call_proc_a_x_pci_dmi_pll_initf( void *io_pArgs )
{
errlHndl_t l_err = NULL;
IStepError l_StepError;
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_a_x_pci_dmi_pll_setup entry" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_a_x_pci_dmi_pll_initf entry" );
//TODO - Enable this procedure in SIMICs when RTC 46643 is done.
// For now, only run this procedure in VPO.
if ( !(TARGETING::is_vpo()) )
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "WARNING: proc_a_x_pci_dmi_pll_setup HWP is disabled in SIMICS run!");
+ "WARNING: proc_a_x_pci_dmi_pll_initf HWP"
+ " is disabled in SIMICS run!");
// end task
return l_err ;
}
uint8_t l_cpuNum = 0;
+
TARGETING::TargetHandleList l_cpuTargetList;
+
getAllChips(l_cpuTargetList, TYPE_PROC);
for ( l_cpuNum=0; l_cpuNum < l_cpuTargetList.size(); l_cpuNum++ )
{
const TARGETING::Target* l_cpu_target = l_cpuTargetList[l_cpuNum];
const fapi::Target l_fapi_proc_target(
- TARGET_TYPE_PROC_CHIP,
- reinterpret_cast<void *>
- ( const_cast<TARGETING::Target*>(l_cpu_target) ) );
+ TARGET_TYPE_PROC_CHIP,
+ reinterpret_cast<void *>
+ ( const_cast<TARGETING::Target*>(l_cpu_target) ) );
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Running proc_a_x_pci_dmi_pll_setup HWP on...");
+ "Running proc_a_x_pci_dmi_pll_initf HWP");
EntityPath l_path;
l_path = l_cpu_target->getAttr<ATTR_PHYS_PATH>();
l_path.dump();
@@ -130,7 +132,8 @@ void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs )
if (l_err)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X: proc_a_x_pci_dmi_pll_initf HWP returns error",
+ "ERROR 0x%.8X: proc_a_x_pci_dmi_pll_initf"
+ " HWP returns error",
l_err->reasonCode());
ErrlUserDetailsTarget myDetails(l_cpu_target);
@@ -155,13 +158,60 @@ void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs )
errlCommit( l_err, HWPF_COMP_ID );
- break;
+ break;
}
else
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
"SUCCESS: proc_a_x_pci_dmi_pll_initf HWP( )" );
}
+ }
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_a_x_pci_dmi_pll_initf exit" );
+ return l_err;
+}
+
+//*****************************************************************************
+// wrapper function to call step 7.02 - proc_a_x_pci_dmi_pll_setup
+//*****************************************************************************
+void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs )
+{
+ errlHndl_t l_err = NULL;
+
+ IStepError l_StepError;
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_a_x_pci_dmi_pll_setup entry" );
+
+ //TODO - Enable this procedure in SIMICs when RTC 46643 is done.
+ // For now, only run this procedure in VPO.
+ if ( !(TARGETING::is_vpo()) )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "WARNING: proc_a_x_pci_dmi_pll_setup HWP "
+ "is disabled in SIMICS run!");
+ // end task
+ return l_err ;
+ }
+
+ uint8_t l_procNum = 0;
+ TARGETING::TargetHandleList l_procTargetList;
+ getAllChips(l_procTargetList, TYPE_PROC);
+
+ for ( l_procNum=0; l_procNum < l_procTargetList.size(); l_procNum++ )
+ {
+ const TARGETING::Target* l_proc_target = l_procTargetList[l_procNum];
+ const fapi::Target l_fapi_proc_target(
+ TARGET_TYPE_PROC_CHIP,
+ reinterpret_cast<void *>
+ ( const_cast<TARGETING::Target*>(l_proc_target) ) );
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "Running proc_a_x_pci_dmi_pll_setup HWP on...");
+ EntityPath l_path;
+ l_path = l_proc_target->getAttr<ATTR_PHYS_PATH>();
+ l_path.dump();
// call proc_a_x_pci_dmi_pll_setup
FAPI_INVOKE_HWP(l_err, proc_a_x_pci_dmi_pll_setup,
@@ -178,7 +228,7 @@ void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs )
HWP returns error",
l_err->reasonCode());
- ErrlUserDetailsTarget myDetails(l_cpu_target);
+ ErrlUserDetailsTarget myDetails(l_proc_target);
// capture the target data in the elog
myDetails.addToLog(l_err );
@@ -209,25 +259,24 @@ void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs )
}
}
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_a_x_pci_dmi_pll_setup exit" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_a_x_pci_dmi_pll_setup exit" );
// end task, returning any errorlogs to IStepDisp
return l_StepError.getErrorHandle();
}
-
-
-//
-// Wrapper function to call 07.2 :
-// proc_startclock_chiplets
-//
+//*****************************************************************************
+// wrapper function to call step 7.03 - proc_startclock_chiplets
+//*****************************************************************************
void* call_proc_startclock_chiplets( void *io_pArgs )
{
errlHndl_t l_err = NULL;
IStepError l_StepError;
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_startclock_chiplets entry" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_startclock_chiplets entry" );
uint8_t l_cpuNum = 0;
@@ -243,7 +292,8 @@ void* call_proc_startclock_chiplets( void *io_pArgs )
( const_cast<TARGETING::Target*>(l_cpu_target) )
);
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "Running proc_startclock_chiplets HWP on..." );
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "Running proc_startclock_chiplets HWP on..." );
// dump physical path to targets
EntityPath l_path;
l_path = l_cpu_target->getAttr<ATTR_PHYS_PATH>();
@@ -257,8 +307,10 @@ void* call_proc_startclock_chiplets( void *io_pArgs )
true); // pcie
if (l_err)
{
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "ERROR 0x%.8X : proc_startclock_chiplets HWP returns error",
- l_err->reasonCode());
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%.8X : proc_startclock_chiplets HWP "
+ "returns error",
+ l_err->reasonCode());
ErrlUserDetailsTarget myDetails(l_cpu_target);
@@ -286,44 +338,45 @@ void* call_proc_startclock_chiplets( void *io_pArgs )
}
else
{
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS : proc_startclock_chiplets HWP( )" );
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "SUCCESS : proc_startclock_chiplets HWP( )" );
}
}
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_startclock_chiplets exit" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_startclock_chiplets exit" );
// end task, returning any errorlogs to IStepDisp
return l_StepError.getErrorHandle();
}
-
-//
-// Wrapper function to call 07.3 :
-// proc_chiplet_scominit
-//
+//******************************************************************************
+// wrapper function ito call step 7.04 - proc_chiplet_scominit
+//******************************************************************************
void* call_proc_chiplet_scominit( void *io_pArgs )
{
errlHndl_t l_err = NULL;
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_chiplet_scominit entry" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_chiplet_scominit entry" );
// proc_chiplet_scominit will be called when there are initfiles to execute
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_chiplet_scominit exit" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_chiplet_scominit exit" );
return l_err;
}
-
-//
-// Wrapper function to call 07.4 :
-// proc_pcie_scominit
-//
+//*****************************************************************************
+// wrapper function to call step 7.05 - proc_pcie_scominit
+//******************************************************************************
void* call_proc_pcie_scominit( void *io_pArgs )
{
errlHndl_t l_errl = NULL;
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_pcie_scominit entry" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_pcie_scominit entry" );
#if 0
// @@@@@ CUSTOM BLOCK: @@@@@
@@ -370,18 +423,16 @@ void* call_proc_pcie_scominit( void *io_pArgs )
// @@@@@ END CUSTOM BLOCK: @@@@@
#endif
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_pcie_scominit exit" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_pcie_scominit exit" );
// end task, returning any errorlogs to IStepDisp
return l_errl;
}
-
-
-//
-// Wrapper function to call 07.5 :
-// proc_scomoverride_chiplets
-//
+//*****************************************************************************
+// wrapper function to call step 7.06 - proc_scomoverride_chiplets
+//*****************************************************************************
void* call_proc_scomoverride_chiplets( void *io_pArgs )
{
errlHndl_t l_errl = NULL;
@@ -396,7 +447,8 @@ void* call_proc_scomoverride_chiplets( void *io_pArgs )
if (l_errl)
{
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X : proc_scomoverride_chiplets HWP returns error",
+ "ERROR 0x%.8X : proc_scomoverride_chiplets "
+ "HWP returns error",
l_errl->reasonCode());
/*@
* @errortype
@@ -417,11 +469,12 @@ void* call_proc_scomoverride_chiplets( void *io_pArgs )
}
else
{
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS : proc_scomoverride_chiplets HWP");
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ "SUCCESS : proc_scomoverride_chiplets HWP");
}
-
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_proc_scomoverride_chiplets exit" );
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_scomoverride_chiplets exit" );
// end task, returning any errorlogs to IStepDisp
return l_StepError.getErrorHandle();
diff --git a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.H b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.H
index 915a23f0d..c600273a3 100644
--- a/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.H
+++ b/src/usr/hwpf/hwp/nest_chiplets/nest_chiplets.H
@@ -88,11 +88,22 @@ namespace NEST_CHIPLETS
{
+/**
+ * @brief proc_a_x_pci_dmi_pll_initf
+ *
+ * 07.1 : : PLL init file for A, X, PCIe, DMI
+ *
+ * param[in,out] - pointer to any arguments, usually NULL
+ *
+ * return any error logs to istep
+ *
+ */
+void* call_proc_a_x_pci_dmi_pll_initf( void *io_pArgs );
/**
* @brief proc_a_x_pci_dmi_pll_setup
*
- * 07.1 : : Setup PLL for A, X, PCIe, DMI
+ * 07.2 : : Setup PLL for A, X, PCIe, DMI
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -106,7 +117,7 @@ void* call_proc_a_x_pci_dmi_pll_setup( void *io_pArgs );
/**
* @brief proc_startclock_chiplets
*
- * 07.2 : : Start clocks on A, X, PCIe chiplets
+ * 07.3 : : Start clocks on A, X, PCIe chiplets
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -134,7 +145,7 @@ void* call_proc_chiplet_scominit( void *io_pArgs );
/**
* @brief proc_pcie_scominit
*
- * 07.4 : : Apply scom inits to PCIe chiplets
+ * 07.5 : : Apply scom inits to PCIe chiplets
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -148,7 +159,7 @@ void* call_proc_pcie_scominit( void *io_pArgs );
/**
* @brief proc_scomoverride_chiplets
*
- * 07.5 : : Apply sequenced scom inits
+ * 07.6 : : Apply sequenced scom inits
*
* param[in,out] - pointer to any arguments, usually NULL
*
diff --git a/src/usr/hwpf/hwp/sbe_centaur_init/sbe_centaur_init.C b/src/usr/hwpf/hwp/sbe_centaur_init/sbe_centaur_init.C
index 3db1c23a7..9888d549f 100644
--- a/src/usr/hwpf/hwp/sbe_centaur_init/sbe_centaur_init.C
+++ b/src/usr/hwpf/hwp/sbe_centaur_init/sbe_centaur_init.C
@@ -70,6 +70,7 @@ using namespace TARGETING;
using namespace fapi;
using namespace vsbe;
+
//
// Wrapper function to call step 10 : sbe_centaur_init
//
diff --git a/src/usr/hwpf/hwp/slave_sbe/slave_sbe.C b/src/usr/hwpf/hwp/slave_sbe/slave_sbe.C
index 98979db12..b340e2089 100644
--- a/src/usr/hwpf/hwp/slave_sbe/slave_sbe.C
+++ b/src/usr/hwpf/hwp/slave_sbe/slave_sbe.C
@@ -61,10 +61,10 @@ using namespace ERRORLOG;
namespace SLAVE_SBE
{
-//
-// Wrapper function to call 6.8 :
-// proc_revert_sbe_mcs_setup
-//
+
+//******************************************************************************
+// call_proc_revert_sbe_mcs_setup function (step 6.08)
+//******************************************************************************
void* call_proc_revert_sbe_mcs_setup(void *io_pArgs)
{
errlHndl_t l_errl = NULL;
@@ -110,7 +110,6 @@ void* call_proc_revert_sbe_mcs_setup(void *io_pArgs)
l_errl );
errlCommit( l_errl, HWPF_COMP_ID );
-
}
else
{
@@ -126,11 +125,45 @@ void* call_proc_revert_sbe_mcs_setup(void *io_pArgs)
}
-//
-// Wrapper function to call 6.9 :
-// proc_check_slave_sbe_seeprom_complete
-//
-void* call_proc_check_slave_sbe_seeprom_complete(void *io_pArgs)
+//******************************************************************************
+// call_host_slave_sbe function (step 6.09)
+//******************************************************************************
+void* call_host_slave_sbe_config(void *io_pArgs)
+{
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_slave_sbe_config entry" );
+
+ errlHndl_t l_err = NULL;
+
+ // $TODO RTC: Story 41184 implement slave_sbe_config
+ // call proc_read_nest_freq.C
+ // call proc_setup_sbe_config.C
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_slave_sbe_config exit" );
+
+ return l_err;
+
+}
+
+//******************************************************************************
+// call_host_sbe_start function (step 6.10)
+//******************************************************************************
+void* call_host_sbe_start( void *io_pArgs )
+{
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_host_sbe_start entry" );
+ errlHndl_t errl = NULL;
+
+ // call proc_sbe_start.C
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_host_sbe_start exit" );
+
+ return errl;
+}
+//******************************************************************************
+// call_proc_check_slave_sbe_seeprom_complete function (step 6.11)
+//******************************************************************************
+void* call_proc_check_slave_sbe_seeprom_complete( void *io_pArgs )
{
errlHndl_t l_errl = NULL;
@@ -231,5 +264,23 @@ void* call_proc_check_slave_sbe_seeprom_complete(void *io_pArgs)
return l_errl ;
}
+//******************************************************************************
+// call_proc_xmit_sbe (step 6.12)
+//******************************************************************************
+void* call_proc_xmit_sbe(void *io_pArgs )
+{
+ errlHndl_t l_errl = NULL;
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_xmit_sbe entry" );
+
+ // call proc_xmit_sbe.C
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_proc_xmit_sbe exit" );
+
+ return l_errl;
+}
+
}
diff --git a/src/usr/hwpf/hwp/slave_sbe/slave_sbe.H b/src/usr/hwpf/hwp/slave_sbe/slave_sbe.H
index a2cd1dbc4..6067dce78 100644
--- a/src/usr/hwpf/hwp/slave_sbe/slave_sbe.H
+++ b/src/usr/hwpf/hwp/slave_sbe/slave_sbe.H
@@ -69,18 +69,51 @@ namespace SLAVE_SBE
*/
void* call_proc_revert_sbe_mcs_setup(void *io_pArgs);
+/**
+ * @brief host_slave_sbe_config
+ *
+ * 6.9 : :
+ *
+ * param[in,out] - pointer to any arguments, usually NULL
+ *
+ * return any error logs to istep
+ */
+void* call_host_slave_sbe_config(void *io_pArgs);
/**
- * brief proc_check_slave_sbe_seeprom_complete
+ * @brief host_sbe_start
*
- * 6.9 : Check Slave SBE Complete
+ * 6.10 : :
*
* param[in,out] - pointer to any arguments, usually NULL
*
- * return any error logs to istep
+ * return any error logs to istep
+ */
+void* call_host_sbe_start(void *io_pArgs);
+
+/**
+ * @brief proc_check_slave_sbe_seeprom_complete
+ *
+ * 6.11 : :
+ *
+ * param[in,out] - pointer to any arguments, usually NULL
+ *
+ * return any error logs to istep
*/
void* call_proc_check_slave_sbe_seeprom_complete(void *io_pArgs);
+/**
+ * @brief proc_xmit_sbe
+ *
+ * 6.12 : :
+ *
+ * param[in,out] - pointer to any arguments, usually NULL
+ *
+ * return any error logs to istep
+ */
+void* call_proc_xmit_sbe(void *io_pArgs);
+
+
}; // end namespace
#endif
diff --git a/src/usr/hwpf/hwp/start_payload/start_payload.C b/src/usr/hwpf/hwp/start_payload/start_payload.C
index fe6c351b7..d7bd14adb 100644
--- a/src/usr/hwpf/hwp/start_payload/start_payload.C
+++ b/src/usr/hwpf/hwp/start_payload/start_payload.C
@@ -53,6 +53,7 @@
#include <mbox/mboxif.H>
#include <initservice/isteps_trace.H>
+#include <hwpisteperror.H>
// targeting support
#include <targeting/common/commontargeting.H>
@@ -73,6 +74,7 @@ namespace START_PAYLOAD
using namespace TARGETING;
using namespace fapi;
using namespace ISTEP;
+using namespace ISTEP_ERROR;
/**
* @brief This function will call the Initservice interface to shutdown
@@ -98,61 +100,107 @@ errlHndl_t callShutdown ( void );
errlHndl_t notifyFsp ( bool i_istepModeFlag,
TARGETING::SpFunctions i_spFuncs );
-
//
// Wrapper function to call 21.1 :
-// host_start_payload
+// host_runtime_setup
//
-void* call_host_start_payload( void *io_pArgs )
+void* call_host_runtime_setup( void *io_pArgs )
{
- errlHndl_t l_errl = NULL;
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_host_start_payload entry" );
+ "call_host_runtime_setup entry" );
+
+ errlHndl_t l_err = NULL;
+
+ IStepError l_StepError;
+
+ // Need to wait here until Fsp tells us go
+ INITSERVICE::waitForSyncPoint();
do
{
- // Need to wait here until Fsp tells us go
- INITSERVICE::waitForSyncPoint();
-
// Need to load up the runtime module if it isn't already loaded
if ( !VFS::module_is_loaded( "libruntime.so" ) )
{
- l_errl = VFS::module_load( "libruntime.so" );
- if ( l_errl )
+ l_err = VFS::module_load( "libruntime.so" );
+
+ if ( l_err )
{
// load module returned with errl set
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "Could not load runtime module" );
-
- // break out of do block
+ "Could not load runtime module" );
+ // break from do loop if error occured
break;
}
}
- // Host Start Payload procedure, per documentation from Patrick.
- // - Verify target image
- // - TODO - Done via call to Secure Boot ROM.
- // - Will be done in future sprints
+ // Write the HostServices attributes into mainstore
+ l_err = RUNTIME::populate_attributes();
- // - Update HDAT with updated SLW images
- // - TODO - Once we know where they go in the HDAT
+ // - Update HDAT with tpmd logs
- //@todo : Move this to new sub-step with RTC:49501
- // Write the HostServices attributes into mainstore
- l_errl = RUNTIME::populate_attributes();
- if( l_errl )
- {
- break;
- }
+ } while(0);
- // - Run CXX testcases
- l_errl = INITSERVICE::executeUnitTests();
+ if( l_err )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "istep start_payload_failed see plid 0x%x", l_err->plid());
- if( l_errl )
- {
- break;
- }
+ l_StepError.addErrorDetails(ISTEP_START_PAYLOAD_FAILED,
+ ISTEP_HOST_RUNTIME_SETUP, l_err );
+
+ errlCommit(l_err, ISTEP_COMP_ID);
+
+ }
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_runtime_setup exit" );
+
+ return l_StepError.getErrorHandle();
+}
+
+//
+// Wrapper function to call 21.2 :
+// host_start_payload
+//
+void* call_host_verify_hdat( void *io_pArgs )
+{
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_verify_hdat entry" );
+
+ errlHndl_t l_err = NULL;
+
+ // Host Start Payload procedure, per documentation from Patrick.
+ // - Verify target image
+ // - TODO - Done via call to Secure Boot ROM.
+ // - Will be done in future sprints
+
+ // stub for now..
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_verify_hdat exit" );
+
+ return l_err;
+}
+//
+// Wrapper function to call 21.3 :
+// host_start_payload
+//
+void* call_host_start_payload( void *io_pArgs )
+{
+ errlHndl_t l_errl = NULL;
+
+ IStepError l_StepError;
+
+ TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "call_host_start_payload entry" );
+
+
+ // - Run CXX testcases
+ l_errl = INITSERVICE::executeUnitTests();
+
+ if( l_errl == NULL )
+ {
// - Call shutdown using payload base, and payload entry.
// - base/entry will be from system attributes
@@ -160,17 +208,25 @@ void* call_host_start_payload( void *io_pArgs )
// NOTE: this call will not return if successful.
l_errl = callShutdown();
- if( l_errl )
- {
- break;
- }
- } while( 0 );
+ };
+
+ if( l_errl )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "istep start_payload_failed see plid 0x%x", l_errl->plid());
+
+ l_StepError.addErrorDetails(ISTEP_START_PAYLOAD_FAILED,
+ ISTEP_HOST_START_PAYLOAD, l_errl );
+
+ errlCommit(l_errl, ISTEP_COMP_ID);
+
+ }
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "call_host_start_payload exit" );
+ "call_host_start_payload exit" );
// end task, returning any errorlogs to IStepDisp
- return l_errl;
+ return l_StepError.getErrorHandle();
}
diff --git a/src/usr/hwpf/hwp/start_payload/start_payload.H b/src/usr/hwpf/hwp/start_payload/start_payload.H
index b4f620842..036efe967 100644
--- a/src/usr/hwpf/hwp/start_payload/start_payload.H
+++ b/src/usr/hwpf/hwp/start_payload/start_payload.H
@@ -59,12 +59,34 @@
namespace START_PAYLOAD
{
+/**
+ * @brief host_runtime_setup
+ *
+ * 21.1 : : Host Runtime Setup
+ *
+ * param[in,out] - pointer to any arguments, usually NULL
+ *
+ * return any error logs to istep
+ *
+ */
+void* call_host_runtime_setup( void *io_pArgs );
+/**
+ * @brief host_verify_hdat
+ *
+ * 21.2 : : Secureboot verification of PHYP/AVP image load
+ *
+ * param[in,out] - pointer to any arguments, usually NULL
+ *
+ * return any error logs to istep
+ *
+ */
+void* call_host_verify_hdat( void *io_pArgs );
/**
* @brief host_start_payload
*
- * 21.1 : : Start Payload
+ * 21.3 : : Start Payload
*
* param[in,out] - pointer to any arguments, usually NULL
*
@@ -74,6 +96,7 @@ namespace START_PAYLOAD
void* call_host_start_payload( void *io_pArgs );
+
}; // end namespace
#endif
OpenPOWER on IntegriCloud