summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp
diff options
context:
space:
mode:
authorCamVan Nguyen <ctnguyen@us.ibm.com>2012-06-19 00:51:48 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-06-26 13:53:55 -0500
commit2ca475148bef81d13f6d4bdfda376691c3a0f9d1 (patch)
tree328c58898b03b480d1670a1ff7682e7473d9a3e2 /src/usr/hwpf/hwp
parent280e4323aaed2d4d58ea738f9bd004281b606067 (diff)
downloadblackbird-hostboot-2ca475148bef81d13f6d4bdfda376691c3a0f9d1.tar.gz
blackbird-hostboot-2ca475148bef81d13f6d4bdfda376691c3a0f9d1.zip
SCOM Initfile: Ability to do bitwise OR and AND operations
Change-Id: Ie3836bc2e3ca580761c71ea810cd9c6c55da54b6 RTC: 43757 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1220 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp')
-rw-r--r--src/usr/hwpf/hwp/fapiHwpExecInitFile.C11
-rwxr-xr-xsrc/usr/hwpf/hwp/initfiles/sample.initfile6
2 files changed, 14 insertions, 3 deletions
diff --git a/src/usr/hwpf/hwp/fapiHwpExecInitFile.C b/src/usr/hwpf/hwp/fapiHwpExecInitFile.C
index 6c5d6040b..42fc1b766 100644
--- a/src/usr/hwpf/hwp/fapiHwpExecInitFile.C
+++ b/src/usr/hwpf/hwp/fapiHwpExecInitFile.C
@@ -57,6 +57,7 @@
* data column
* SW146714 camvanng 06/08/2012 Use two bytes to store row
* rpn sequence byte count
+ * camvanng 06/15/2012 Ability to do bitwise OR and AND operations
*/
#include <fapiHwpExecInitFile.H>
@@ -1831,6 +1832,14 @@ uint64_t rpnBinaryOp(IfRpnOp i_op, uint64_t i_val1, uint64_t i_val2,
result = i_val1 >> i_val2;
break;
+ case (BITWISEAND):
+ result = i_val1 & i_val2;
+ break;
+
+ case (BITWISEOR):
+ result = i_val1 | i_val2;
+ break;
+
default:
FAPI_ERR("fapiHwpExecInitFile: rpnBinaryOp, invalid operator %d",
i_op);
@@ -1964,6 +1973,8 @@ fapi::ReturnCode rpnDoOp(rpnStack_t * io_rpnStack, IfRpnOp i_op, uint32_t i_any)
case (MOD):
case (SHIFTLEFT):
case (SHIFTRIGHT):
+ case (BITWISEAND):
+ case (BITWISEOR):
//pop the first value
val2 = rpnPop(io_rpnStack);
diff --git a/src/usr/hwpf/hwp/initfiles/sample.initfile b/src/usr/hwpf/hwp/initfiles/sample.initfile
index d86be3957..6e3c0b178 100755
--- a/src/usr/hwpf/hwp/initfiles/sample.initfile
+++ b/src/usr/hwpf/hwp/initfiles/sample.initfile
@@ -131,9 +131,9 @@ scom 0x000000000006800c {
scom 0x000000000006800c {
bits , scom_data , expr ;
- 24:31, (MBA1.ATTR_CHIP_UNIT_POS + SYS.ATTR_SCRATCH_UINT8_ARRAY_2[1][2][3]) , SYS.ATTR_SCRATCH_UINT8_1 != 1;
- 24:31, (MBA1.ATTR_CHIP_UNIT_POS + SYS.ATTR_SCRATCH_UINT8_ARRAY_2[1][2][3] + 1) / 2, !(SYS.ATTR_SCRATCH_UINT8_1 == 3);
- 32:63, (SYS.ATTR_SCRATCH_UINT32_1 * 20) << 8 , SYS.ATTR_SCRATCH_UINT32_1 == 3;
+ 24:31, (MBA1.ATTR_CHIP_UNIT_POS + SYS.ATTR_SCRATCH_UINT8_ARRAY_2[1][2][3]) , (SYS.ATTR_SCRATCH_UINT8_1 | 0b00000001) != 1;
+ 24:31, ((MBA1.ATTR_CHIP_UNIT_POS | SYS.ATTR_SCRATCH_UINT8_ARRAY_2[1][2][3]) + 1) / 2, !(SYS.ATTR_SCRATCH_UINT8_1 == 3);
+ 32:63, (((SYS.ATTR_SCRATCH_UINT32_1 * 20) & 0x000000F0)) << 8 , (SYS.ATTR_SCRATCH_UINT32_1 & 0x0000FFFF) == 3;
}
#--******************************************************************************
OpenPOWER on IntegriCloud