summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCHRISTINA L. GRAVES <clgraves@us.ibm.com>2015-12-03 12:56:23 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-05-18 18:06:43 -0400
commit7a8e3b08fc80463f7e23083713b675984381fc6b (patch)
treede35bb1f3d5d73dcd1d718a0b305d8d32152e3b7
parent04c34aeb5a973559735030a3e8afbd8311579fd2 (diff)
downloadtalos-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.C49
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
OpenPOWER on IntegriCloud