diff options
| author | Roland Veloz <rveloz@us.ibm.com> | 2017-08-30 17:32:48 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-09-18 15:33:08 -0400 |
| commit | 0ab063c088f59890c409b7d00e0bf6afcf07dc16 (patch) | |
| tree | aed9b66e9b0873d86e5a3ae6f26869123327d0cd /src/usr/isteps/pm/runtime/test | |
| parent | 7c816980c3829cce89f7a18a65dc70c1876ad813 (diff) | |
| download | blackbird-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.H | 185 |
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 |

