diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sbefw/app/common/sbecmdgeneric.C | 10 | ||||
-rw-r--r-- | src/sbefw/app/power/sbecmdgeneric.C | 75 | ||||
-rw-r--r-- | src/sbefw/core/sbe_host_intf.H | 24 | ||||
-rw-r--r-- | src/sbefw/core/sbe_sp_intf.H | 38 | ||||
-rwxr-xr-x | src/test/testcases/testGetCapabilities.py | 30 | ||||
-rw-r--r-- | src/test/testcases/testPSUGetCapabilities.py | 24 |
6 files changed, 134 insertions, 67 deletions
diff --git a/src/sbefw/app/common/sbecmdgeneric.C b/src/sbefw/app/common/sbecmdgeneric.C index 7c1eb467..3aae2a2e 100644 --- a/src/sbefw/app/common/sbecmdgeneric.C +++ b/src/sbefw/app/common/sbecmdgeneric.C @@ -71,6 +71,16 @@ sbeCapabilityRespMsg::sbeCapabilityRespMsg() : capability{} { buildTag[idx] = hdr->iv_buildTag[idx]; } + + capability[GENERIC_CAPABILTITY_START_IDX] = + HWP_FFDC_COLLECTION_SUPPPORTED | + SBE_FFDC_COLLECTION_SUPPPORTED | + ADDRESS_BLACKLISTING_SUPPPORTED | + FIFO_RESET_SUPPPORTED | + HOST_CMD_INTERFACE_SUPPORTED | + SP_LESS_MPIPL_SUPPORTED; + capability[GENERIC_CAPABILTITY_START_IDX + 1] = + RESERVED_GENERIC_CAPABILITIES; } // Functions //---------------------------------------------------------------------------- diff --git a/src/sbefw/app/power/sbecmdgeneric.C b/src/sbefw/app/power/sbecmdgeneric.C index 8e0762ac..4064da29 100644 --- a/src/sbefw/app/power/sbecmdgeneric.C +++ b/src/sbefw/app/power/sbecmdgeneric.C @@ -52,32 +52,45 @@ using namespace fapi2; void updatePsuCapabilities(uint32_t * capability) { - capability[PSU_GENERIC_CAPABILTITY_START_IDX] = - PSU_HWP_FFDC_COLLECTION_SUPPORTED | - PSU_SBE_FFDC_COLLECTION_SUPPORTED | - PSU_ADDRESS_BLACKLIST_SUPPORTED | - PSU_HOST_COMMAND_INTERFACE_SUPPORTED; - capability[PSU_CORE_CONTROL_CAPABILITY_START_IDX] = PSU_CONTROL_DEADMAN_LOOP; + capability[PSU_CORE_CONTROL_CAPABILITY_START_IDX+1] = + PSU_RESERVED_1; + + capability[PSU_SCOM_CAPABILITY_START_IDX] = + PSU_DEFAULT_CAPABILITY_D2; + capability[PSU_SCOM_CAPABILITY_START_IDX+1] = + PSU_RESERVED_2; capability[PSU_RING_CAPABILITY_START_IDX] = PSU_PUT_RING_FROM_IMAGE_SUPPORTED; + capability[PSU_RING_CAPABILITY_START_IDX+1] = + PSU_RESERVED_3; capability[PSU_TIMER_CAPABILITY_START_IDX] = PSU_CONTROL_TIMER_SUPPORTED; + capability[PSU_TIMER_CAPABILITY_START_IDX+1] = + PSU_RESERVED_4; + + capability[PSU_MPIPL_CAPABILITY_START_IDX] = + PSU_DEFAULT_CAPABILITY_D5; + capability[PSU_MPIPL_CAPABILITY_START_IDX+1] = + PSU_RESERVED_5; capability[PSU_SECURITY_CONTROL_CAPABILITY_START_IDX] = PSU_UNSECURE_MEM_REGION_SUPPORTED; + capability[PSU_SECURITY_CONTROL_CAPABILITY_START_IDX+1] = + PSU_RESERVED_6; capability[PSU_GENERIC_CHIPOP_CAPABILITY_START_IDX] = - PSU_GET_SBE_FFDC_SUPPPORTED | PSU_GET_SBE_CAPABILITIES_SUPPPORTED | PSU_READ_SBE_SEEPROM_SUPPORTED | PSU_SET_FFDC_ADDRESS_SUPPORTED | PSU_QUISCE_SUPPORTED | PSU_SET_SYSTEM_FABRIC_ID_MAP_SUPPORTED | PSU_STASH_MPIPL_CONFIG_SUPPORTED; + capability[PSU_GENERIC_CHIPOP_CAPABILITY_START_IDX+1] = + PSU_RESERVED_7; } void updateFifoCapabilities(uint32_t * capability) @@ -87,34 +100,62 @@ void updateFifoCapabilities(uint32_t * capability) capability[IPL_CAPABILITY_START_IDX] = EXECUTE_ISTEP_SUPPPORTED | SUSPEND_IO_SUPPPORTED; + capability[IPL_CAPABILITY_START_IDX+1] = + RESERVED_A1_CAPABILITIES; capability[SCOM_CAPABILITY_START_IDX] = GET_SCOM_SUPPPORTED | PUT_SCOM_SUPPPORTED | MODIFY_SCOM_SUPPPORTED | PUT_SCOM_UNDER_MASK_SUPPPORTED ; + capability[SCOM_CAPABILITY_START_IDX+1] = + RESERVED_A2_CAPABILITIES; - capability[GENERIC_CHIPOP_CAPABILITY_START_IDX] = - GET_SBE_FFDC_SUPPPORTED | - GET_SBE_CAPABILITIES_SUPPPORTED| - SBE_QUIESCE; + capability[RING_CAPABILITY_START_IDX] = + GET_RING_SUPPPORTED | + PUT_RING_SUPPPORTED | + PUT_RING_FROM_IMAGE_SUPPPORTED; + capability[RING_CAPABILITY_START_IDX+1] = + RESERVED_A3_CAPABILITIES; capability[MEMORY_CAPABILITY_START_IDX] = GET_MEMORY_SUPPPORTED | PUT_MEMORY_SUPPPORTED | GET_SRAM_OCC_SUPPPORTED | PUT_SRAM_OCC_SUPPPORTED; - - capability[INSTRUCTION_CTRL_CAPABILITY_START_IDX] = - CONTROL_INSTRUCTIONS_SUPPPORTED; + capability[MEMORY_CAPABILITY_START_IDX+1] = + RESERVED_A4_CAPABILITIES; capability[REGISTER_CAPABILITY_START_IDX] = GET_REGISTER_SUPPPORTED | PUT_REGISTER_SUPPPORTED ; + capability[REGISTER_CAPABILITY_START_IDX+1] = + RESERVED_A5_CAPABILITIES; + + capability[ARRAY_CAPABILITY_START_IDX] = + CONTROL_FAST_ARRAY_SUPPPORTED | + CONTROL_TRACE_ARRAY_SUPPPORTED; + capability[ARRAY_CAPABILITY_START_IDX+1] = + RESERVED_A6_CAPABILITIES; + + capability[INSTRUCTION_CTRL_CAPABILITY_START_IDX] = + CONTROL_INSTRUCTIONS_SUPPPORTED; + capability[INSTRUCTION_CTRL_CAPABILITY_START_IDX+1] = + RESERVED_A7_CAPABILITIES; + + capability[GENERIC_CHIPOP_CAPABILITY_START_IDX] = + GET_SBE_FFDC_SUPPPORTED | + SBE_QUIESCE; + capability[GENERIC_CHIPOP_CAPABILITY_START_IDX+1] = + RESERVED_A8_CAPABILITIES; + + capability[MPIPL_CAPABILITY_START_IDX] = + ENTER_MPIPL_SUPPORTED | + CONTINUE_MPIPL_SUPPORTED | + STOP_CLOCKS_MPIPL_SUPPORTED; + capability[MPIPL_CAPABILITY_START_IDX+1] = + RESERVED_A9_CAPABILITIES; - capability[RING_CAPABILITY_START_IDX] = - GET_RING_SUPPPORTED | - PUT_RING_SUPPPORTED; } #endif //__SBEFW_SEEPROM__ diff --git a/src/sbefw/core/sbe_host_intf.H b/src/sbefw/core/sbe_host_intf.H index 975a94fa..64ad2e0a 100644 --- a/src/sbefw/core/sbe_host_intf.H +++ b/src/sbefw/core/sbe_host_intf.H @@ -159,38 +159,32 @@ enum PSU_CAPABILITIES_INDEX */ enum PSU_CAPABILITIES { - // Capabilities 0, 1 - PSU_HWP_FFDC_COLLECTION_SUPPORTED = 0xD0000001, - PSU_SBE_FFDC_COLLECTION_SUPPORTED = 0xD0000002, - PSU_ADDRESS_BLACKLIST_SUPPORTED = 0xD0000004, - PSU_HOST_COMMAND_INTERFACE_SUPPORTED = 0xD0000008, - PSU_SP_LESS_MPIPL_SUPPORTED = 0xD0000010, - PSU_RESERVED_0 = 0xD0000000, - // Capabilities 2, 3 PSU_CONTROL_DEADMAN_LOOP = 0xD1000001, - PSU_RESERVED_1 = 0xD1000000, + PSU_RESERVED_1 = 0xD1800000, // Capabilities 4, 5 + PSU_DEFAULT_CAPABILITY_D2 = 0xD2000000, PSU_EXECUTE_MULTI_SCOM_SUPPORTED = 0xD2000001, - PSU_RESERVED_2 = 0xD2000000, + PSU_RESERVED_2 = 0xD2800000, // Capabilites 6, 7 PSU_PUT_RING_FROM_IMAGE_SUPPORTED = 0xD3000001, - PSU_RESERVED_3 = 0xD3000000, + PSU_RESERVED_3 = 0xD3800000, // Capabilities 8, 9 PSU_CONTROL_TIMER_SUPPORTED = 0xD4000001, - PSU_RESERVED_4 = 0xD4000000, + PSU_RESERVED_4 = 0xD4800000, // Capabilities 10, 11 + PSU_DEFAULT_CAPABILITY_D5 = 0xD5000000, PSU_GET_ARCHITECTED_REG_SUPPORTED = 0xD5000001, PSU_CLEAR_ARCHITECTED_REG_SUPPORTED = 0xD5000002, - PSU_RESERVED_5 = 0xD5000000, + PSU_RESERVED_5 = 0xD5800000, // Capabilities 12, 13 PSU_UNSECURE_MEM_REGION_SUPPORTED = 0xD6000001, - PSU_RESERVED_6 = 0xD6000000, + PSU_RESERVED_6 = 0xD6800000, // Capabilities 14, 15 PSU_GET_SBE_FFDC_SUPPPORTED = 0xD7000001, @@ -200,7 +194,7 @@ enum PSU_CAPABILITIES PSU_QUISCE_SUPPORTED = 0xD7000010, PSU_SET_SYSTEM_FABRIC_ID_MAP_SUPPORTED = 0xD7000020, PSU_STASH_MPIPL_CONFIG_SUPPORTED = 0xD7000040, - PSU_RESERVED_7 = 0xD7000000, + PSU_RESERVED_7 = 0xD7800000, }; #endif // __SBEFW_SBE_HOST_INTF_H diff --git a/src/sbefw/core/sbe_sp_intf.H b/src/sbefw/core/sbe_sp_intf.H index b283777b..dd003929 100644 --- a/src/sbefw/core/sbe_sp_intf.H +++ b/src/sbefw/core/sbe_sp_intf.H @@ -255,6 +255,7 @@ enum ARRAY_CAPABILITY_START_IDX = GENERIC_CAPABILTITY_START_IDX + 12, INSTRUCTION_CTRL_CAPABILITY_START_IDX = GENERIC_CAPABILTITY_START_IDX + 14, GENERIC_CHIPOP_CAPABILITY_START_IDX = GENERIC_CAPABILTITY_START_IDX + 16, + MPIPL_CAPABILITY_START_IDX = GENERIC_CAPABILTITY_START_IDX + 18, // Keep in sync with the spec CAPABILITIES_LAST_INDEX_FIFO = 19, @@ -265,36 +266,57 @@ enum */ enum { - HWP_FFDC_COLLECTION_SUPPPORTED = 0x00000001, - SBE_FFDC_COLLECTION_SUPPPORTED = 0x00000002, - ADDRESS_BLACKLISTING_SUPPPORTED = 0x00000004, - FIFO_RESET_SUPPPORTED = 0x00000008, + HWP_FFDC_COLLECTION_SUPPPORTED = 0xC0000001, + SBE_FFDC_COLLECTION_SUPPPORTED = 0xC0000002, + ADDRESS_BLACKLISTING_SUPPPORTED = 0xC0000004, + FIFO_RESET_SUPPPORTED = 0xC0000008, + HOST_CMD_INTERFACE_SUPPORTED = 0xC0000010, + SP_LESS_MPIPL_SUPPORTED = 0xC0000020, + RESERVED_GENERIC_CAPABILITIES = 0xC8000000, + EXECUTE_ISTEP_SUPPPORTED = 0xA1000001, SUSPEND_IO_SUPPPORTED = 0xA1000002, + RESERVED_A1_CAPABILITIES = 0xA1800000, + GET_SCOM_SUPPPORTED = 0xA2000001, PUT_SCOM_SUPPPORTED = 0xA2000002, MODIFY_SCOM_SUPPPORTED = 0xA2000004, PUT_SCOM_UNDER_MASK_SUPPPORTED = 0xA2000008, MULTI_SCOM_SUPPPORTED = 0xA2000010, + RESERVED_A2_CAPABILITIES = 0xA2800000, + GET_RING_SUPPPORTED = 0xA3000001, PUT_RING_SUPPPORTED = 0xA3000002, + PUT_RING_FROM_IMAGE_SUPPPORTED = 0xA3000004, + RESERVED_A3_CAPABILITIES = 0xA3800000, + GET_MEMORY_SUPPPORTED = 0xA4000001, PUT_MEMORY_SUPPPORTED = 0xA4000002, GET_SRAM_OCC_SUPPPORTED = 0xA4000004, PUT_SRAM_OCC_SUPPPORTED = 0xA4000008, GET_SRAM_CME_SUPPPORTED = 0xA4000010, PUT_SRAM_CME_SUPPPORTED = 0xA4000020, + RESERVED_A4_CAPABILITIES = 0xA4800000, + GET_REGISTER_SUPPPORTED = 0xA5000001, PUT_REGISTER_SUPPPORTED = 0xA5000002, + RESERVED_A5_CAPABILITIES = 0xA5800000, + CONTROL_FAST_ARRAY_SUPPPORTED = 0xA6000001, CONTROL_TRACE_ARRAY_SUPPPORTED = 0xA6000002, + RESERVED_A6_CAPABILITIES = 0xA6800000, + CONTROL_INSTRUCTIONS_SUPPPORTED = 0xA7000001, + RESERVED_A7_CAPABILITIES = 0xA7800000, + GET_SBE_FFDC_SUPPPORTED = 0xA8000001, - GET_SBE_CAPABILITIES_SUPPPORTED = 0xA8000002, - GET_SBE_FREQUENCIES_SUPPPORTED = 0xA8000004, - GET_SBE_STATE_SUPPPORTED = 0xA8000008, - SBE_QUIESCE = 0xA8000010, + SBE_QUIESCE = 0xA8000002, + RESERVED_A8_CAPABILITIES = 0xA8800000, + + ENTER_MPIPL_SUPPORTED = 0xA9000001, + CONTINUE_MPIPL_SUPPORTED = 0xA9000002, STOP_CLOCKS_MPIPL_SUPPORTED = 0xA9000004, + RESERVED_A9_CAPABILITIES = 0xA9800000, }; /** diff --git a/src/test/testcases/testGetCapabilities.py b/src/test/testcases/testGetCapabilities.py index cffff709..5fd8491e 100755 --- a/src/test/testcases/testGetCapabilities.py +++ b/src/test/testcases/testGetCapabilities.py @@ -30,28 +30,28 @@ err = False TESTDATA = [0,0,0,2, 0,0,0xA8,0x02 ] -EXPDATA1 = [0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0, +EXPDATA1 = [0xC0,0x0,0x00,0x3F, + 0xC8,0x0,0x0,0x0, 0xa1,0x0,0x0,0x03, # istep/suspendio - 0x0,0x0,0x0,0x0, + 0xa1,0x80,0x0,0x0, 0xa2,0x0,0x0,0x0f, #getscom/putscom/modifyscom/putscomundermask - 0x0,0x0,0x0,0x0, - 0xa3,0x0,0x0,0x3, #getring/putring - 0x00,0x0,0x0,0x0]; + 0xa2,0x80,0x0,0x0, + 0xa3,0x0,0x0,0x7, #getring/putring + 0xa3,0x80,0x0,0x0]; EXPDATA2 = [0xa4,0x0,0x0,0x0f, #GetMemPba/PutMemPba/GetSramOcc/PutSramOcc - 0x0,0x0,0x0,0x0, + 0xa4,0x80,0x0,0x0, 0xa5,0x0,0x0,0x03, #GetReg/PutReg - 0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0, + 0xa5,0x80,0x0,0x0, + 0xa6,0x0,0x0,0x03, + 0xa6,0x80,0x0,0x0, 0xa7,0x0,0x0,0x1, # control Instruction - 0x00,0x0,0x0,0x0]; + 0xa7,0x80,0x0,0x0]; -EXPDATA3 = [0xa8,0x0,0x0,0x13, #getcapability/getSbeFFDC/quiesce - 0x0,0x0,0x0,0x0, - 0, 0, 0, 0, #MPIPL related - 0, 0, 0, 0, +EXPDATA3 = [0xa8,0x0,0x0,0x03, #getcapability/getSbeFFDC/quiesce + 0xa8,0x80,0x0,0x0, + 0xa9, 0, 0, 0x7, #MPIPL related + 0xa9, 0x80, 0, 0, 0xc0,0xde,0xa8,0x02, 0x0,0x0,0x0,0x0, 0x00,0x0,0x0,0x3]; diff --git a/src/test/testcases/testPSUGetCapabilities.py b/src/test/testcases/testPSUGetCapabilities.py index 78231980..6fc53c21 100644 --- a/src/test/testcases/testPSUGetCapabilities.py +++ b/src/test/testcases/testPSUGetCapabilities.py @@ -46,22 +46,22 @@ def getdoubleword(dataInInt): ''' Capabilities structure ''' -capMsg = (getsingleword(0xD000000F) + - getsingleword(0x00) + +capMsg = (getsingleword(0xC000003F) + + getsingleword(0xC8000000) + getsingleword(0xD1000001) + - getsingleword(0x0) + - getsingleword(0x0) + - getsingleword(0x0) + + getsingleword(0xD1800000) + + getsingleword(0xD2000000) + + getsingleword(0xD2800000) + getsingleword(0xD3000001) + - getsingleword(0x0) + + getsingleword(0xD3800000) + getsingleword(0xD4000001) + - getsingleword(0x0) + - getsingleword(0x0) + - getsingleword(0x0) + + getsingleword(0xD4800000) + + getsingleword(0xD5000000) + + getsingleword(0xD5800000) + getsingleword(0xD6000001) + - getsingleword(0x0) + - getsingleword(0xD700007F) + - getsingleword(0x0)) + getsingleword(0xD6800000) + + getsingleword(0xD700007E) + + getsingleword(0xD7800000)) def getCapabilities(addr, size, exp_status): # Intialize the class obj instances |