summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sbefw/app/common/sbecmdgeneric.C22
-rw-r--r--src/test/testcases/testPSUGetCapabilities.py4
2 files changed, 26 insertions, 0 deletions
diff --git a/src/sbefw/app/common/sbecmdgeneric.C b/src/sbefw/app/common/sbecmdgeneric.C
index cdcd7575..cebd4015 100644
--- a/src/sbefw/app/common/sbecmdgeneric.C
+++ b/src/sbefw/app/common/sbecmdgeneric.C
@@ -107,6 +107,28 @@ uint32_t sbePsuGetCapabilities(uint8_t *i_pArg)
SBE_SEC_INVALID_PARAMS);
break;
}
+
+ // Set MBOX response words
+ uint64_t data = (uint64_t)SBE_CAPABILITES_LEN_PSU & 0x00000000FFFFFFFFull;
+ rc = sbeWriteSbe2PsuMbxReg(SBE_HOST_PSU_MBOX_REG5,
+ &data,
+ sizeof(data)/sizeof(uint64_t));
+ if(SBE_SEC_OPERATION_SUCCESSFUL != rc)
+ {
+ SBE_ERROR(SBE_FUNC" Failed to write to "
+ "SBE_HOST_PSU_MBOX_REG5");
+ break;
+ }
+ rc = sbeWriteSbe2PsuMbxReg(SBE_HOST_PSU_MBOX_REG6,
+ (uint64_t*)&capMsg,
+ 1);
+ if(SBE_SEC_OPERATION_SUCCESSFUL != rc)
+ {
+ SBE_ERROR(SBE_FUNC" Failed to write to "
+ "SBE_HOST_PSU_MBOX_REG6");
+ break;
+ }
+
p9_PBA_oper_flag l_myPbaFlag;
l_myPbaFlag.setOperationType(p9_PBA_oper_flag::INJ);
diff --git a/src/test/testcases/testPSUGetCapabilities.py b/src/test/testcases/testPSUGetCapabilities.py
index d112259d..78231980 100644
--- a/src/test/testcases/testPSUGetCapabilities.py
+++ b/src/test/testcases/testPSUGetCapabilities.py
@@ -96,6 +96,9 @@ def getCapabilities(addr, size, exp_status):
#----------------------------------------------------------------------------------------------------------------
["read", reg.PSU_HOST_DOORBELL_REG_WO_OR, "0", 8, "8000000000000000", "Reading Host Doorbell for Interrupt"],
)
+ length = 0
+ if exp_status == 0:
+ length = 92
'''
#---------------------
# Host side test data
@@ -106,6 +109,7 @@ def getCapabilities(addr, size, exp_status):
# OP Reg ValueToWrite size Test Expected Data Description
#----------------------------------------------------------------------------------------------------------------
["read", reg.REG_MBOX4, "0", 8, getdoubleword((exp_status << 32)+0x00F0D702), "Reading Host MBOX4 data to Validate"],
+ ["read", reg.REG_MBOX5, "0", 8, getdoubleword(length), "Reading Host MBOX4 data to Validate"],
)
# HOST->SBE data set execution - Less length setup
regObj.ExecuteTestOp( testPSUUtil.simSbeObj, sbe_test_data )
OpenPOWER on IntegriCloud