diff options
author | Stephen Glancy <sglancy@us.ibm.com> | 2018-08-20 14:32:40 -0500 |
---|---|---|
committer | Raja Das <rajadas2@in.ibm.com> | 2019-07-26 00:52:38 -0500 |
commit | dbef65eb4b465e9295cc27d1c5159d5dc7b3acaf (patch) | |
tree | f7c2064350c18506dc02c6b3eefe79f3b4a0b8f0 /src/import | |
parent | e5d4f0e7b7d8cbd721d0617a5091b64c9cad09b0 (diff) | |
download | talos-sbe-dbef65eb4b465e9295cc27d1c5159d5dc7b3acaf.tar.gz talos-sbe-dbef65eb4b465e9295cc27d1c5159d5dc7b3acaf.zip |
Adds explorer OMI training code
Change-Id: Iedccb7e86f512474650db17ee6443e3ccaa8dc1e
Original-Change-Id: Ic4fcd226eea7478ffff6cacb830f8e1e83e6f247
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/64919
Reviewed-by: Louis Stermole <stermole@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: RYAN P. KING <rpking@us.ibm.com>
Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Diffstat (limited to 'src/import')
3 files changed, 37 insertions, 22 deletions
diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c.H b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c.H index 866e1277..3d7ae5c9 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c.H +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c.H @@ -62,7 +62,7 @@ inline fapi2::ReturnCode status_code( const fapi2::Target<fapi2::TARGET_TYPE_OCM const std::vector<uint8_t>& i_data ) { // Set to a high number to make sure check for SUCCESS (== 0) isn't a fluke - size_t l_status = ~(0); + uint8_t l_status = ~(0); FAPI_TRY( status::get_status_code(i_target, i_data, l_status) ); // Technically many cmds have their own status code decoding..but SUCCESS is always 0. @@ -92,7 +92,8 @@ inline void fw_status_setup(size_t& o_size, std::vector<uint8_t>& o_cmd_id) { o_size = FW_STATUS_BYTE_LEN; - o_cmd_id.assign({FW_STATUS}); + o_cmd_id.clear(); + o_cmd_id.push_back(FW_STATUS); } /// @@ -125,7 +126,16 @@ fapi_try_exit: inline void boot_config_setup(std::vector<uint8_t>& io_data) { + // Need data length as well - boot config can only ever be written + io_data.insert(io_data.begin(), FW_BOOT_CONFIG_BYTE_LEN); + + // Then add the command io_data.insert(io_data.begin(), FW_BOOT_CONFIG); + + // Written commands need to be in the form of + // CMD + // DATA LEN + // DATA } /// diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c_fields.H b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c_fields.H index 2a8b8301..df60c4e5 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c_fields.H +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c_fields.H @@ -86,7 +86,7 @@ struct fieldTraits; template <> struct fieldTraits<fields::SERDES_FREQ> { - static constexpr size_t COMPARISON_VAL = 0x0F; + static constexpr uint8_t COMPARISON_VAL = 0x0F; static constexpr const char* FIELD_STR = "SerDes Frequency"; template <typename T> @@ -100,7 +100,7 @@ struct fieldTraits<fields::SERDES_FREQ> template <> struct fieldTraits<fields::LANE_MODE> { - static constexpr size_t COMPARISON_VAL = 0x02; + static constexpr uint8_t COMPARISON_VAL = 0x02; static constexpr const char* FIELD_STR = "Lane mode"; template <typename T> @@ -114,7 +114,7 @@ struct fieldTraits<fields::LANE_MODE> template <> struct fieldTraits<fields::BOOT_MODE> { - static constexpr size_t COMPARISON_VAL = 0x01; + static constexpr uint8_t COMPARISON_VAL = 0x01; static constexpr const char* FIELD_STR = "Boot mode"; template <typename T> @@ -128,7 +128,7 @@ struct fieldTraits<fields::BOOT_MODE> template <> struct fieldTraits<fields::DL_LAYER_BOOT_MODE> { - static constexpr size_t COMPARISON_VAL = 0x01; + static constexpr uint8_t COMPARISON_VAL = 0x01; static constexpr const char* FIELD_STR = "DL Layer Boot mode"; template <typename T> @@ -142,7 +142,7 @@ struct fieldTraits<fields::DL_LAYER_BOOT_MODE> template <> struct fieldTraits<fields::TRANSPORT_LAYER> { - static constexpr size_t COMPARISON_VAL = 0x02; + static constexpr uint8_t COMPARISON_VAL = 0x02; static constexpr const char* FIELD_STR = "Transport Layer"; template <typename T> @@ -156,7 +156,7 @@ struct fieldTraits<fields::TRANSPORT_LAYER> template <> struct fieldTraits<fields::LOOPBACK_TEST> { - static constexpr size_t COMPARISON_VAL = 0x01; + static constexpr uint8_t COMPARISON_VAL = 0x01; static constexpr const char* FIELD_STR = "OpenCapi looptest test"; template <typename T> @@ -170,7 +170,7 @@ struct fieldTraits<fields::LOOPBACK_TEST> template <> struct fieldTraits<fields::FW_MODE> { - static constexpr size_t COMPARISON_VAL = 0x01; + static constexpr uint8_t COMPARISON_VAL = 0x01; static constexpr const char* FIELD_STR = "FW Mode"; template <typename T> @@ -184,7 +184,7 @@ struct fieldTraits<fields::FW_MODE> template<> struct fieldTraits<fields::CMD_ID> { - static constexpr size_t COMPARISON_VAL = 0xFF; + static constexpr uint8_t COMPARISON_VAL = 0xFF; static constexpr const char* FIELD_STR = "Command ID"; template <typename T> @@ -198,7 +198,7 @@ struct fieldTraits<fields::CMD_ID> template<> struct fieldTraits<fields::STATUS_CODE> { - static constexpr size_t COMPARISON_VAL = 0xFF; + static constexpr uint8_t COMPARISON_VAL = 0xFF; static constexpr const char* FIELD_STR = "Status Code"; template <typename T> @@ -212,7 +212,7 @@ struct fieldTraits<fields::STATUS_CODE> template<> struct fieldTraits<fields::BOOT_STAGE> { - static constexpr size_t COMPARISON_VAL = 0x03; + static constexpr uint8_t COMPARISON_VAL = 0x03; static constexpr const char* FIELD_STR = "Boot Stage"; template <typename T> @@ -275,7 +275,7 @@ namespace boot_cfg /// inline fapi2::ReturnCode get_serdes_freq(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::SERDES_FREQ>(i_target, i_data, o_setting); } @@ -303,7 +303,7 @@ inline fapi2::ReturnCode set_serdes_freq(const fapi2::Target<fapi2::TARGET_TYPE_ /// inline fapi2::ReturnCode get_lane_mode(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::LANE_MODE>(i_target, i_data, o_setting); } @@ -331,7 +331,7 @@ inline fapi2::ReturnCode set_lane_mode(const fapi2::Target<fapi2::TARGET_TYPE_OC /// inline fapi2::ReturnCode get_boot_mode(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::BOOT_MODE>(i_target, i_data, o_setting); } @@ -358,7 +358,7 @@ inline fapi2::ReturnCode set_boot_mode(const fapi2::Target<fapi2::TARGET_TYPE_OC /// inline fapi2::ReturnCode get_dl_layer_boot_mode(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::DL_LAYER_BOOT_MODE>(i_target, i_data, o_setting); } @@ -386,7 +386,7 @@ inline fapi2::ReturnCode set_dl_layer_boot_mode(const fapi2::Target<fapi2::TARGE /// inline fapi2::ReturnCode get_transport_layer(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::TRANSPORT_LAYER>(i_target, i_data, o_setting); } @@ -415,7 +415,7 @@ inline fapi2::ReturnCode set_transport_layer(const fapi2::Target<fapi2::TARGET_T /// inline fapi2::ReturnCode get_loopback_test(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::LOOPBACK_TEST>(i_target, i_data, o_setting); } @@ -443,7 +443,7 @@ inline fapi2::ReturnCode set_loopback_test(const fapi2::Target<fapi2::TARGET_TYP /// inline fapi2::ReturnCode get_fw_mode(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::FW_MODE>(i_target, i_data, o_setting); } @@ -476,7 +476,7 @@ namespace status /// inline fapi2::ReturnCode get_boot_stage(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::BOOT_STAGE>(i_target, i_data, o_setting); } @@ -490,7 +490,7 @@ inline fapi2::ReturnCode get_boot_stage(const fapi2::Target<fapi2::TARGET_TYPE_O /// inline fapi2::ReturnCode get_status_code(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::STATUS_CODE>(i_target, i_data, o_setting); } @@ -504,7 +504,7 @@ inline fapi2::ReturnCode get_status_code(const fapi2::Target<fapi2::TARGET_TYPE_ /// inline fapi2::ReturnCode get_cmd_id(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target, const std::vector<uint8_t>& i_data, - size_t& o_setting) + uint8_t& o_setting) { return get_field<fields::CMD_ID>(i_target, i_data, o_setting); } diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H index bd2d51fd..803f7a45 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H @@ -33,6 +33,9 @@ // *HWP Level: 2 // *HWP Consumed by: CI +#ifndef EXP_CONSTS_H +#define EXP_CONSTS_H + namespace mss { namespace exp @@ -120,3 +123,5 @@ enum boot_stages }// i2c }// exp }// mss + +#endif |