diff options
author | CamVan Nguyen <ctnguyen@us.ibm.com> | 2011-11-02 10:25:41 -0500 |
---|---|---|
committer | Andrew J. Geissler <andrewg@us.ibm.com> | 2011-11-02 10:53:51 -0500 |
commit | b72ee9b1f333be7847d694bfa2c5fbafa2e4c487 (patch) | |
tree | 14868c0c6d98653b6669961fba660f2238609969 /src/usr/hwpf/hwp/fapiTestHwp.C | |
parent | a9546cd1f115920da46cc485762e643f93c1fffc (diff) | |
download | talos-hostboot-b72ee9b1f333be7847d694bfa2c5fbafa2e4c487.tar.gz talos-hostboot-b72ee9b1f333be7847d694bfa2c5fbafa2e4c487.zip |
Updated hwpExecInitFile test case in hwpInitialTest
Added unit test for hwpExecInitFile
Trace initfile version
Change-Id: I5ff2ba7d5977a157a47f5f59252b52e17bf69d2f
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/476
Tested-by: Jenkins Server
Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/fapiTestHwp.C')
-rw-r--r-- | src/usr/hwpf/hwp/fapiTestHwp.C | 198 |
1 files changed, 3 insertions, 195 deletions
diff --git a/src/usr/hwpf/hwp/fapiTestHwp.C b/src/usr/hwpf/hwp/fapiTestHwp.C index 3a340f9fa..bedec2702 100644 --- a/src/usr/hwpf/hwp/fapiTestHwp.C +++ b/src/usr/hwpf/hwp/fapiTestHwp.C @@ -274,208 +274,16 @@ fapi::ReturnCode hwpInitialTest(const fapi::Target & i_chip) // 9. hwpExecInitFile test // -------------------------------------------------------- - l_rc = testExecInitFile(i_chip); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: Error from testExecInitFile"); - break; - } - else - { - FAPI_INF("hwpInitialTest: Test testExecInitFile passed"); - } - - } while (0); - - return l_rc; -} - - -//****************************************************************************** -// testExecInitFile function - function to test sample initfile -//****************************************************************************** -fapi::ReturnCode testExecInitFile(const fapi::Target & i_chip) -{ - typedef struct ifScom { - uint64_t addr; - uint64_t origData; - uint64_t writtenData; - }ifScom_t; - - //Note: this data is based on the sample.initfile. - //If the initfile changes, this data will also need to be changed. - ifScom_t l_ifScomData[] = - { - {0x000000000006002b, 0, 0x0000000000000183}, - {0x000000000006002c, 0, 0x0000000000000183}, - {0x000000000006800b, 0, 0}, - {0x000000000006800c, 0, 0x8000000000000000 >> 0x17}, - {0x0000000013010002, 0, 0x0000000000000181}, - {0x0000000013013283, 0, 0x3c90000000000000 | - 0x8000000000000000 >> 0x0c | - 0x8000000000000000 >> 0x0d | - 0x0306400412000000 >> 0x0e}, - {0x0000000013013284, 0, 0x3c90000000000000}, - {0x0000000013013285, 0, 0x8000000000000000 >> 0x0f | - 0x8000000000000000 >> 0x10 | - 0x8000000000000000 >> 0x13 | - 0x0306400412000000 >> 0x15 }, - {0x0000000013013286, 0, 0}, - {0x0000000013013287, 0, 0x0000000000000182}, - {0x0000000013013288, 0, 0x0000000000000192}, - {0x0000000013013289, 0, 0x8000000000000000 >> 0x17}, - {0x0000000013030007, 0, 0x0000000000000182} - }; - - fapi::ReturnCode l_rc = fapi::FAPI_RC_SUCCESS; - uint32_t l_ecmdRc = ECMD_DBUF_SUCCESS; - ecmdDataBufferBase l_ScomData(64); - - do { - // Set up some attributes for testing - uint8_t l_uint8 = 1; - l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT8_1, NULL, l_uint8); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: " - "ATTR_SCRATCH_UINT8_1. Error from SET"); - break; - } - - l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT8_2, NULL, l_uint8); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: " - "ATTR_SCRATCH_UINT8_2. Error from SET"); - break; - } - - uint32_t l_uint32 = 3; - l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT32_1, NULL, l_uint32); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: " - "ATTR_SCRATCH_UINT32_1. Error from SET"); - break; - } - - uint64_t l_uint64 = 2; - l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT64_1, NULL, l_uint64); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: " - "ATTR_SCRATCH_UINT64_1. Error from SET"); - break; - } - - uint8_t l_uint8array1[32]; - l_uint8array1[2] = 1; - l_rc = FAPI_ATTR_SET(ATTR_SCRATCH_UINT8_ARRAY_1, NULL, l_uint8array1); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: " - "ATTR_SCRATCH_UINT8_ARRAY_1. Error from SET"); - break; - } - - // Save original scom data to restore at end of test - for (uint32_t i = 0; i < sizeof(l_ifScomData)/sizeof(ifScom_t); i++) - { - l_rc = fapiGetScom(i_chip, l_ifScomData[i].addr, l_ScomData); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: Error from " - "fapiGetScom"); - break; - } - - l_ifScomData[i].origData = l_ScomData.getDoubleWord(0); - } - - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - break; - } - - // Set scom data to 0 to start from known state for bit ops - l_ScomData.setDoubleWord(0, 0ll); - for (uint32_t i = 0; i < sizeof(l_ifScomData)/sizeof(ifScom_t); i++) - { - l_rc = fapiPutScom(i_chip, l_ifScomData[i].addr, l_ScomData); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: Error from " - "fapiPutScom"); - break; - } - } - - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - break; - } - - //Call Hwp to execute the initfile + //Call Hwp to execute the sample initfile FAPI_EXEC_HWP(l_rc, hwpExecInitFile, i_chip, "sample.if"); - if (l_rc != fapi::FAPI_RC_SUCCESS) { FAPI_ERR("hwpInitialTest: Error from hwpExecInitFile"); break; } - - //Verify the data written - for (uint32_t i = 0; i < sizeof(l_ifScomData)/sizeof(ifScom_t); i++) - { - l_rc = fapiGetScom(i_chip, l_ifScomData[i].addr, l_ScomData); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: Error from " - "fapiGetScom"); - break; - } - - if (l_ScomData.getDoubleWord(0) != l_ifScomData[i].writtenData) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: GetScom addr " - "0x%.16llX data read 0x%.16llX data expected 0x%.16llX", - l_ifScomData[i].addr, l_ScomData.getDoubleWord(0), - l_ifScomData[i].writtenData); - l_rc = fapi::RC_HWP_EXEC_INITFILE_TEST_FAILED; - break; - } - } - - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - break; - } - - // Restore the original Scom data - for (uint32_t i = 0; i < sizeof(l_ifScomData)/sizeof(ifScom_t); i++) - { - l_ecmdRc = l_ScomData.setDoubleWord(0, l_ifScomData[i].origData); - if (l_ecmdRc != ECMD_DBUF_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: fapiPutScom to " - "restore, error from ecmdDataBuffer setDoubleWord() - " - "rc 0x%.8X", l_ecmdRc); - l_rc = l_ecmdRc; - break; - } - - l_rc = fapiPutScom(i_chip, l_ifScomData[i].addr, l_ScomData); - if (l_rc != fapi::FAPI_RC_SUCCESS) - { - FAPI_ERR("hwpInitialTest: testExecInitFile: Error from " - "fapiGetScom"); - break; - } - } - - if (l_rc != fapi::FAPI_RC_SUCCESS) + else { - break; + FAPI_INF("hwpInitialTest: hwpExecInitFile passed"); } } while (0); |