diff options
author | CHRISTINA L. GRAVES <clgraves@us.ibm.com> | 2015-12-03 12:56:23 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-05-18 18:06:43 -0400 |
commit | 7a8e3b08fc80463f7e23083713b675984381fc6b (patch) | |
tree | de35bb1f3d5d73dcd1d718a0b305d8d32152e3b7 | |
parent | 04c34aeb5a973559735030a3e8afbd8311579fd2 (diff) | |
download | talos-hostboot-7a8e3b08fc80463f7e23083713b675984381fc6b.tar.gz talos-hostboot-7a8e3b08fc80463f7e23083713b675984381fc6b.zip |
Fix for data not being written correctly and for an error Dean saw
Change-Id: I5a4a2cf34d3d6d773b983783d2cc68c2e9dd7d65
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/22433
Tested-by: Jenkins Server
Reviewed-by: Joseph J. McGill <jmcgill@us.ibm.com>
Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24706
Tested-by: FSP CI Jenkins
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r-- | src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C | 49 |
1 files changed, 21 insertions, 28 deletions
diff --git a/src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C b/src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C index c67574d67..705cf26e2 100644 --- a/src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C +++ b/src/import/chips/p9/procedures/hwp/nest/p9_adu_coherent_utils.C @@ -245,35 +245,33 @@ extern "C" { if (i_rnw) { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_TTYPE_CI_PR_RD, - ALTD_CMD_TTYPE_START_BIT, ALTD_CMD_TTYPE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TTYPE_START_BIT, ALTD_CMD_TTYPE_NUM_BITS>(ALTD_CMD_TTYPE_CI_PR_RD); } else { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_TTYPE_CI_PR_WR, - ALTD_CMD_TTYPE_START_BIT, ALTD_CMD_TTYPE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TTYPE_START_BIT, ALTD_CMD_TTYPE_NUM_BITS>(ALTD_CMD_TTYPE_CI_PR_WR); } //if tsize = 1 if (((i_flags & FLAG_SIZE) >> FLAG_SIZE_SHIFT) == 1) { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_CI_TSIZE_1, ALTD_CMD_TSIZE_START_BIT, - ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, + ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_CI_TSIZE_1); } else if (((i_flags & FLAG_SIZE) >> FLAG_SIZE_SHIFT) == 2) { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_CI_TSIZE_2, ALTD_CMD_TSIZE_START_BIT, - ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, + ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_CI_TSIZE_2); } else if (((i_flags & FLAG_SIZE) >> FLAG_SIZE_SHIFT) == 4) { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_CI_TSIZE_4, ALTD_CMD_TSIZE_START_BIT, - ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, + ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_CI_TSIZE_4); } else { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_CI_TSIZE_8, ALTD_CMD_TSIZE_START_BIT, - ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, + ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_CI_TSIZE_8); } } //if it's not a CI write/read @@ -283,37 +281,31 @@ extern "C" //set the tsize to 8 if (i_rnw) { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_TTYPE_CL_DMA_RD, - ALTD_CMD_TTYPE_START_BIT, ALTD_CMD_TTYPE_NUM_BITS); - altd_cmd_reg_data.insertFromRight(ALTD_CMD_DMAR_TSIZE, ALTD_CMD_TSIZE_START_BIT, - ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TTYPE_START_BIT, ALTD_CMD_TTYPE_NUM_BITS>(ALTD_CMD_TTYPE_CL_DMA_RD); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, + ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_DMAR_TSIZE); } //if a write set pr_dma_wr //set the tsize to 8 else { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_TTYPE_DMA_PR_WR, - ALTD_CMD_TTYPE_START_BIT, ALTD_CMD_TTYPE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TTYPE_START_BIT, ALTD_CMD_TTYPE_NUM_BITS>(ALTD_CMD_TTYPE_DMA_PR_WR); if (((i_flags & FLAG_SIZE) >> FLAG_SIZE_SHIFT) == 1) { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_DMAW_TSIZE_1, - ALTD_CMD_TSIZE_START_BIT, ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_DMAW_TSIZE_1); } else if (((i_flags & FLAG_SIZE) >> FLAG_SIZE_SHIFT) == 2) { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_DMAW_TSIZE_2, - ALTD_CMD_TSIZE_START_BIT, ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_DMAW_TSIZE_2); } else if (((i_flags & FLAG_SIZE) >> FLAG_SIZE_SHIFT) == 4) { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_DMAW_TSIZE_4, - ALTD_CMD_TSIZE_START_BIT, ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_DMAW_TSIZE_4); } else { - altd_cmd_reg_data.insertFromRight(ALTD_CMD_DMAW_TSIZE_8, - ALTD_CMD_TSIZE_START_BIT, ALTD_CMD_TSIZE_NUM_BITS); + altd_cmd_reg_data.insertFromRight<ALTD_CMD_TSIZE_START_BIT, ALTD_CMD_TSIZE_NUM_BITS>(ALTD_CMD_DMAW_TSIZE_8); } } } @@ -373,8 +365,9 @@ extern "C" //if we want to write the ecc data get the data if (i_flags & FLAG_ECC) { - force_ecc_reg_data.insertFromRight<ALTD_DATA_TX_ECC_START_BIT, ALTD_DATA_TX_ECC_END_BIT> - ((uint64_t)i_write_data[eccIndex]); + force_ecc_reg_data.insertFromRight < ALTD_DATA_TX_ECC_START_BIT, + (ALTD_DATA_TX_ECC_END_BIT - ALTD_DATA_TX_ECC_START_BIT) + 1 > + ((uint64_t)i_write_data[eccIndex]); } //if we want to overwrite the ecc data |