summaryrefslogtreecommitdiffstats
path: root/src/occ_405/cmdh/cmdh_dbug_cmd.c
diff options
context:
space:
mode:
authorChris Cain <cjcain@us.ibm.com>2018-09-10 12:57:39 -0500
committerChristopher J. Cain <cjcain@us.ibm.com>2018-09-26 11:17:55 -0500
commitb67db9d09b181dfe8bd0a77cfdca511d124b291e (patch)
tree58b9af1b2f45aea26706bf4533a2d2f0d05c8a92 /src/occ_405/cmdh/cmdh_dbug_cmd.c
parent3e23a4ef97bc78aa8c8cf691407fdf9b8da30664 (diff)
downloadtalos-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-xsrc/occ_405/cmdh/cmdh_dbug_cmd.c37
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;
OpenPOWER on IntegriCloud