summaryrefslogtreecommitdiffstats
path: root/src/import/chips/ocmb/explorer
diff options
context:
space:
mode:
authorStephen Glancy <sglancy@us.ibm.com>2018-08-20 14:32:40 -0500
committerRaja Das <rajadas2@in.ibm.com>2019-07-26 00:52:38 -0500
commitdbef65eb4b465e9295cc27d1c5159d5dc7b3acaf (patch)
treef7c2064350c18506dc02c6b3eefe79f3b4a0b8f0 /src/import/chips/ocmb/explorer
parente5d4f0e7b7d8cbd721d0617a5091b64c9cad09b0 (diff)
downloadtalos-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/chips/ocmb/explorer')
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c.H14
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/i2c/exp_i2c_fields.H40
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/shared/exp_consts.H5
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
OpenPOWER on IntegriCloud