summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/pm/runtime/test
diff options
context:
space:
mode:
authorRoland Veloz <rveloz@us.ibm.com>2017-08-30 17:32:48 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-09-18 15:33:08 -0400
commit0ab063c088f59890c409b7d00e0bf6afcf07dc16 (patch)
treeaed9b66e9b0873d86e5a3ae6f26869123327d0cd /src/usr/isteps/pm/runtime/test
parent7c816980c3829cce89f7a18a65dc70c1876ad813 (diff)
downloadblackbird-hostboot-0ab063c088f59890c409b7d00e0bf6afcf07dc16.tar.gz
blackbird-hostboot-0ab063c088f59890c409b7d00e0bf6afcf07dc16.zip
Added code to send an Error Log to FSP via the firmware_request
Change-Id: I6ce94d9cbf62fa7d2afe53b83b6bc5588a39a5d6 RTC:178947 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45442 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/pm/runtime/test')
-rw-r--r--src/usr/isteps/pm/runtime/test/firmwareRequestTest.H185
1 files changed, 128 insertions, 57 deletions
diff --git a/src/usr/isteps/pm/runtime/test/firmwareRequestTest.H b/src/usr/isteps/pm/runtime/test/firmwareRequestTest.H
index 2ac57ddd5..73ae4b0a2 100644
--- a/src/usr/isteps/pm/runtime/test/firmwareRequestTest.H
+++ b/src/usr/isteps/pm/runtime/test/firmwareRequestTest.H
@@ -32,63 +32,134 @@ class FirmwareRequestTest : public CxxTest::TestSuite
{
public:
/**
- * @brief: testFirmwareRequest
- * tests that the firmware_request is being accessed properly
+ * @brief: testFirmwareRequestHcodeUpdate
+ * test the firmware_request's HCODE update call
*/
- void testFirmwareRequest (void)
+ void testFirmwareRequestHcodeUpdate (void)
{
- TRACFCOMP(g_trac_pnor, ENTER_MRK
- "FirmwareRequestTest::testFirmwareRequest" );
-
- if (g_hostInterfaces == NULL ||
- g_hostInterfaces->firmware_request == NULL)
- {
- TS_FAIL("FirmwareRequestTest::testFirmwareRequest: "
- "Hypervisor firmware_request interface not linked");
- }
- else
- {
- hostInterfaces::hbrt_fw_msg l_req_fw_msg;
- l_req_fw_msg.io_type =
- hostInterfaces::HBRT_FW_MSG_TYPE_REQ_HCODE_UPDATE;
- l_req_fw_msg.req_hcode_update.i_chipId = 0;
- l_req_fw_msg.req_hcode_update.i_section = 0;
- l_req_fw_msg.req_hcode_update.i_operation = 0;
- l_req_fw_msg.req_hcode_update.i_scomAddr = 0;
- l_req_fw_msg.req_hcode_update.i_scomData = 0;
-
-
- hostInterfaces::hbrt_fw_msg l_resp_fw_msg;
- uint64_t l_resp_fw_msg_size = sizeof(l_resp_fw_msg);
- int rc = g_hostInterfaces->firmware_request(sizeof(l_resp_fw_msg),
- &l_req_fw_msg, &l_resp_fw_msg_size, &l_resp_fw_msg);
-
- TRACFCOMP(g_trac_pnor, "FirmwareRequestTest::testFirmwareRequest: "
- "rc:%d, type:%d, resp:%d",
- rc, l_resp_fw_msg.io_type,
- l_resp_fw_msg.resp_generic.o_status);
-
- if (rc != 1)
- {
- TS_FAIL("FirmwareRequestTest::testFirmwareRequest: "
- "firware_request failed - returned wrong value");
- }
-
- if (l_resp_fw_msg.io_type !=
+ TRACFCOMP(g_trac_pnor, ENTER_MRK
+ "FirmwareRequestTest::testFirmwareRequestHcodeUpdate");
+
+ if (g_hostInterfaces == NULL ||
+ g_hostInterfaces->firmware_request == NULL)
+ {
+ TS_FAIL("FirmwareRequestTest::testFirmwareRequestHcodeUpdate: "
+ "Hypervisor firmware_request interface not linked");
+ }
+ else
+ {
+ // Test HCODE Update
+ // populate the firmware_request structure with arbitrary data
+ hostInterfaces::hbrt_fw_msg l_req_fw_msg;
+ l_req_fw_msg.io_type =
+ hostInterfaces::HBRT_FW_MSG_TYPE_REQ_HCODE_UPDATE;
+ l_req_fw_msg.req_hcode_update.i_chipId = 0x100;
+ l_req_fw_msg.req_hcode_update.i_section = 20;
+ l_req_fw_msg.req_hcode_update.i_operation = 30;
+ l_req_fw_msg.req_hcode_update.i_scomAddr = 0x400;
+ l_req_fw_msg.req_hcode_update.i_scomData = 0x500;
+
+
+ hostInterfaces::hbrt_fw_msg l_resp_fw_msg;
+ uint64_t l_resp_fw_msg_size = sizeof(l_resp_fw_msg);
+ size_t rc = g_hostInterfaces->firmware_request(
+ sizeof(l_req_fw_msg), &l_req_fw_msg,
+ &l_resp_fw_msg_size, &l_resp_fw_msg);
+
+ TRACFCOMP(g_trac_pnor,
+ "FirmwareRequestTest::testFirmwareRequestHcodeUpdate: "
+ "rc:%d, type:%d, resp:%d",
+ rc, l_resp_fw_msg.io_type,
+ l_resp_fw_msg.resp_generic.o_status);
+
+ if (rc != 1)
+ {
+ TS_FAIL("FirmwareRequestTest::testFirmwareRequestHcodeUpdate: "
+ "firware_request - hcode update failed - "
+ "returned wrong value");
+ }
+
+ if (l_resp_fw_msg.io_type !=
+ hostInterfaces::HBRT_FW_MSG_TYPE_RESP_GENERIC)
+ {
+ TS_FAIL("FirmwareRequestTest::testFirmwareRequestHcodeUpdate: "
+ "firware_request - hcode update failed - "
+ "received incorrect msg_type");
+ }
+
+ if (l_resp_fw_msg.resp_generic.o_status != 264)
+ {
+ TS_FAIL("FirmwareRequestTest::testFirmwareRequestHcodeUpdate: "
+ "firware_request - hcode update failed - "
+ "received incorrect resp");
+ }
+ } // end else
+ TRACFCOMP(g_trac_pnor, EXIT_MRK
+ "FirmwareRequestTest::testFirmwareRequestHcodeUpdate");
+
+ } // end testFirmwareRequestHcodeUpdate
+
+ /**
+ * @brief: testFirmwareRequestErrLogToFsp
+ * test the firmware_request's error log to FSP
+ */
+ void testFirmwareRequestErrLogToFsp (void)
+ {
+ TRACFCOMP(g_trac_pnor, ENTER_MRK
+ "FirmwareRequestTest::testFirmwareRequestErrLogToFsp");
+
+ if (g_hostInterfaces == NULL ||
+ g_hostInterfaces->firmware_request == NULL)
+ {
+ TS_FAIL("FirmwareRequestTest::testFirmwareRequestErrLogToFsp: "
+ "Hypervisor firmware_request interface not linked");
+ }
+ else
+ {
+ // Test error log to FSP
+ // populate the firmware_request structure with arbitrary data
+ hostInterfaces::hbrt_fw_msg l_req_fw_msg;
+ l_req_fw_msg.io_type =hostInterfaces::HBRT_FW_MSG_TYPE_ERROR_LOG;
+ l_req_fw_msg.error_log.i_plid = 0x300;
+ l_req_fw_msg.error_log.i_errlSize = 1;
+ l_req_fw_msg.error_log.i_data = 0xAA;
+
+ hostInterfaces::hbrt_fw_msg l_resp_fw_msg;
+ uint64_t l_resp_fw_msg_size = sizeof(l_resp_fw_msg);
+ size_t rc = g_hostInterfaces->firmware_request(
+ sizeof(l_req_fw_msg), &l_req_fw_msg,
+ &l_resp_fw_msg_size, &l_resp_fw_msg);
+
+ TRACFCOMP(g_trac_pnor,
+ "FirmwareRequestTest::testFirmwareRequestErrLogToFsp: "
+ "rc:%d, type:%d, resp:%d",
+ rc, l_resp_fw_msg.io_type,
+ l_resp_fw_msg.resp_generic.o_status);
+
+ if (rc != 0)
+ {
+ TS_FAIL("FirmwareRequestTest::testFirmwareRequestErrLogToFsp: "
+ "firware_request - error log failed - "
+ "returned wrong value");
+ }
+
+ if (l_resp_fw_msg.io_type !=
hostInterfaces::HBRT_FW_MSG_TYPE_RESP_GENERIC)
- {
- TS_FAIL("FirmwareRequestTest::testFirmwareRequest: "
- "firware_request failed - received incorrect msg_type");
- }
-
- if (l_resp_fw_msg.resp_generic.o_status != 264)
- {
- TS_FAIL("FirmwareRequestTest::testFirmwareRequest: "
- "firware_request failed - received incorrect resp");
- }
-
- TRACFCOMP(g_trac_pnor, EXIT_MRK
- "FirmwareRequestTest::testFirmwareRequest");
- }
- }
-};
+ {
+ TS_FAIL("FirmwareRequestTest::testFirmwareRequestErrLogToFsp: "
+ "firware_request - error log failed - "
+ "received incorrect msg_type");
+ }
+
+ if (l_resp_fw_msg.resp_generic.o_status != 20)
+ {
+ TS_FAIL("FirmwareRequestTest::testFirmwareRequestErrLogToFsp: "
+ "firware_request - error log failed - "
+ "received incorrect resp");
+ }
+ } // end else
+ TRACFCOMP(g_trac_pnor, EXIT_MRK
+ "FirmwareRequestTest::testFirmwareRequestErrLogToFsp");
+
+ } // end testFirmwareRequestErrLogToFsp
+}; // end class FirmwareRequestTest
OpenPOWER on IntegriCloud