diff options
author | CamVan Nguyen <ctnguyen@us.ibm.com> | 2012-12-15 11:28:16 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-12-15 16:59:01 -0600 |
commit | 8badd89016edda6a4ba8167534cf28e3c95a348d (patch) | |
tree | b92fb07a19d7f5003ec160befef43a867c5fb2c8 /src | |
parent | 9b6d06aa0f837274aa8daca95bdd6c7cb596dd31 (diff) | |
download | blackbird-hostboot-8badd89016edda6a4ba8167534cf28e3c95a348d.tar.gz blackbird-hostboot-8badd89016edda6a4ba8167534cf28e3c95a348d.zip |
Fix for PutScomUnderMask op.
Change-Id: I30f3571946b25c8d9377db81558c353bfd632bfe
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2719
Tested-by: Jenkins Server
Reviewed-by: MIKE J. JONES <mjjones@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/hwpf/hwp/fapiHwpExecInitFile.C | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/usr/hwpf/hwp/fapiHwpExecInitFile.C b/src/usr/hwpf/hwp/fapiHwpExecInitFile.C index 43bf57bb5..8bc6f4c41 100644 --- a/src/usr/hwpf/hwp/fapiHwpExecInitFile.C +++ b/src/usr/hwpf/hwp/fapiHwpExecInitFile.C @@ -60,6 +60,9 @@ * camvanng 06/27/2012 Fix bug in targetId * camvanng 09/07/2012 Optimization - do PutScom vs PutScomUnderMask * if the combined bit mask enables all 64 bits + * camvanng 12/15/2012 For PutScomUnderMask ops, grab only valid bits + * of the data when the data length is greater + * then number of bits specified. */ #include <fapiHwpExecInitFile.H> @@ -1491,10 +1494,6 @@ fapi::ReturnCode writeScom(ifData_t & i_ifData, uint16_t l_len = i_ifData.scoms[l_scomNum]->len; uint64_t l_tmpMask = 0; // mask for PutScomUnderMask ops - //Shift data to the right offset; data is right aligned - l_tmpData <<= (64 - (l_offset + l_len)); - l_data |= l_tmpData; - //Create mask for (uint64_t i = l_offset; i < (l_offset + l_len); i++) { @@ -1502,6 +1501,12 @@ fapi::ReturnCode writeScom(ifData_t & i_ifData, } l_mask |= l_tmpMask; + //Shift data to the right offset and grab only the valid + //bits; data is right aligned + l_tmpData <<= (64 - (l_offset + l_len)); + l_tmpData &= l_tmpMask; + l_data |= l_tmpData; + FAPI_DBG("fapiHwpExecInitFile: writeScom: data 0x%.16llX " "mask 0x%.16llX len %u offset %u", l_tmpData, l_tmpMask, l_len, l_offset); |