diff options
author | Richard J. Knight <rjknight@us.ibm.com> | 2012-10-26 12:34:46 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-11-15 09:57:35 -0600 |
commit | 7e9680f99f9dccf871b364f034f1eb19e9a1ae30 (patch) | |
tree | 259da5ff97d113ce61190923e1f231480d216195 | |
parent | b8d95068b788c0f1b1587996ef2852df7d338f37 (diff) | |
download | talos-hostboot-7e9680f99f9dccf871b364f034f1eb19e9a1ae30.tar.gz talos-hostboot-7e9680f99f9dccf871b364f034f1eb19e9a1ae30.zip |
Updates to IPL flow to match doc v1.18
Change-Id: I9fe83e777fde516b6ddbadd2eea4969b87e601fa
RTC: 50424
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2167
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
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 |