diff options
author | Chris Cain <cjcain@us.ibm.com> | 2018-09-10 12:57:39 -0500 |
---|---|---|
committer | Christopher J. Cain <cjcain@us.ibm.com> | 2018-09-26 11:17:55 -0500 |
commit | b67db9d09b181dfe8bd0a77cfdca511d124b291e (patch) | |
tree | 58b9af1b2f45aea26706bf4533a2d2f0d05c8a92 /src/occ_405/cmdh/cmdh_dbug_cmd.c | |
parent | 3e23a4ef97bc78aa8c8cf691407fdf9b8da30664 (diff) | |
download | talos-occ-b67db9d09b181dfe8bd0a77cfdca511d124b291e.tar.gz talos-occ-b67db9d09b181dfe8bd0a77cfdca511d124b291e.zip |
Support for NVDIMMs
Change-Id: I8ccf44287bc72a73b16662ba29b71e731c70b30e
RTC:173789
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/65917
Reviewed-by: Martha Broyles <mbroyles@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Tested-by: Christopher J. Cain <cjcain@us.ibm.com>
Reviewed-by: Christopher J. Cain <cjcain@us.ibm.com>
Diffstat (limited to 'src/occ_405/cmdh/cmdh_dbug_cmd.c')
-rwxr-xr-x | src/occ_405/cmdh/cmdh_dbug_cmd.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/occ_405/cmdh/cmdh_dbug_cmd.c b/src/occ_405/cmdh/cmdh_dbug_cmd.c index ac5aa91..6aa22b0 100755 --- a/src/occ_405/cmdh/cmdh_dbug_cmd.c +++ b/src/occ_405/cmdh/cmdh_dbug_cmd.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -51,6 +51,7 @@ // Externs //*************************************************************************/ extern uint64_t G_inject_dimm; +uint8_t G_injected_epow_asserted = 0; extern gpe_shared_data_t G_shared_gpe_data; //*************************************************************************/ @@ -634,9 +635,37 @@ void cmdh_dbug_allow_trace( const cmdh_fsp_cmd_t * i_cmd_ptr, } - // Function Specification // +// Name: cmdh_dbug_trigger_epow +// +// Description: Injects a fake epow event to trigger the EPOW asserted code path +// for debug purposes. It will be cleared after event is processed. +// +// End Function Specification +void cmdh_dbug_trigger_epow( void ) +{ + // Make sure gpio is valid + uint8_t l_epow_value = 1; + const bool l_epow_valid = apss_gpio_get(G_sysConfigData.apss_gpio_map.nvdimm_epow, &l_epow_value); + if (l_epow_valid) + { + G_injected_epow_asserted = 1; + TRAC_INFO("cmdh_dbug_trigger_epow: DEBUG - Injecting EPOW for NVDIMM testing"); + G_rsp_status = ERRL_RC_SUCCESS; + } + else + { + TRAC_ERR("cmdh_dbug_trigger_epow: Rejected because EPOW GPIO is not valid"); + G_rsp_status = ERRL_RC_INVALID_DATA; + } + + return; +} + + +/// Function Specification +// // Name: cmdh_dbug_dimm_inject // // Description: Set/Clear internal debug flags @@ -1119,6 +1148,10 @@ void cmdh_dbug_cmd (const cmdh_fsp_cmd_t * i_cmd_ptr, cmdh_dbug_internal_flags( i_cmd_ptr, o_rsp_ptr ); break; + case DBUG_TRIGGER_EPOW: // NVDIMM EPOW injection + cmdh_dbug_trigger_epow(); + break; + case DBUG_FLUSH_DCACHE: dcache_flush_all(); break; |