diff options
author | crgeddes <crgeddes@us.ibm.com> | 2016-10-12 10:25:35 -0500 |
---|---|---|
committer | Matthew A. Ploetz <maploetz@us.ibm.com> | 2016-10-19 11:39:47 -0400 |
commit | 57e83ceb340b9cfb81205eef3d64f657f3636a38 (patch) | |
tree | 552d89262c1665c5eafaf676b73d72a247536189 /src/include/usr/sbeio | |
parent | 1495fc95c7075fb68d520939b93df7ec4ab35954 (diff) | |
download | blackbird-hostboot-57e83ceb340b9cfb81205eef3d64f657f3636a38.tar.gz blackbird-hostboot-57e83ceb340b9cfb81205eef3d64f657f3636a38.zip |
Add infrastructure for sending setSystemConfig cmd to SBE
The SBE needs to know about other PROCs in the sytem. To do
this we are sending a 64 bit string that encodes the system
configuration down to the SBE at the end of the IPL. This
commit just sets up some of the infrastructure that will be needed
to send the message.
Change-Id: I1a4dfb4e54e043d94697fa809acf1eee8ba9f726
RTC: 160666
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/31069
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
Diffstat (limited to 'src/include/usr/sbeio')
-rw-r--r-- | src/include/usr/sbeio/sbe_psudd.H | 66 |
1 files changed, 58 insertions, 8 deletions
diff --git a/src/include/usr/sbeio/sbe_psudd.H b/src/include/usr/sbeio/sbe_psudd.H index 19182408a..fbdd51008 100644 --- a/src/include/usr/sbeio/sbe_psudd.H +++ b/src/include/usr/sbeio/sbe_psudd.H @@ -51,33 +51,43 @@ namespace SBEIO // BYTE 6 options enum psuCommandClass { - SBE_PSU_CLASS_UNKNOWN = 0, - SBE_PSU_CLASS_CORE_STATE = 0xD1, - SBE_PSU_PUT_RING_FROM_IMAGE_CMD = 0xD3 + SBE_PSU_CLASS_UNKNOWN = 0, + SBE_PSU_CLASS_CORE_STATE = 0xD1, + SBE_PSU_PUT_RING_FROM_IMAGE_CMD = 0xD3, + SBE_PSU_GENERIC_MESSAGE = 0xD7 }; /** * @brief enums for SBE core state control commands */ - // BYTE 7 options enum psuCoreStateControlCommands { - SBE_CMD_CONTROL_DEADMAN_LOOP = 0x01, + SBE_CMD_CONTROL_DEADMAN_LOOP = 0x01, }; /** * @brief enums for SBEPutRing From Image message commands */ - // BYTE 7 options + // BYTE 7 options enum putRingCommandFromImageCommands { - SBE_CMD_CONTROL_PUTRING = 0x01 + SBE_CMD_CONTROL_PUTRING = 0x01 }; + /** - * @brief enums for SBE core state control commands + * @brief enums for SBE generic message commands + */ + //BYTE 7 options + enum psuGenericMessageCommands + { + SBE_CMD_CONTROL_SYSTEM_CONFIG = 0x06 + }; + + /** + * @brief enums for SBE core state control flags */ //BYTE 2 & 3, Control Flags enum psuDeadManControlFlags @@ -89,6 +99,16 @@ namespace SBEIO }; /** + * @brief enums for SBE system config control flags + */ + //BYTE 2 & 3, Control Flags + enum psuSystemConfigControlFlags + { + SBE_REQUIRE_RESPONSE = 0x0100, + SBE_REQUIRE_ACK = 0x0200, + }; + + /** * @brief non reserved word enums * * Shows which of the request and response msg registers are @@ -110,6 +130,25 @@ namespace SBEIO }; /** + * @brief non reserved word enums + * + * Shows which of the request and response msg registers are + * not reserved. Reserved registers do not need to be written + * or read. + * + * This is a 4 bit field: + * 0x1 - Reg 0 is non-reserved (read or write this reg) + * 0x2 - Reg 1 is non-reserved (read or write this reg) + * 0x4 - Reg 2 is non-reserved (read or write this reg) + * 0x8 - Reg 3 is non-reserved (read or write this reg) + */ + enum psuSystemConfigNonReservedMsgs + { + SBE_SYSTEM_CONFIG_REQ_USED_REGS = 0x03, + SBE_SYSTEM_CONFIG_RSP_USED_REGS = 0x01, + }; + + /** * @brief Struct for PSU command message format * */ @@ -168,6 +207,17 @@ namespace SBEIO uint64_t cd1_ControlDeadmanLoop_MbxReg2reserved; uint64_t cd1_ControlDeadmanLoop_MbxReg3reserved; } PACKED; + struct //setSystemConfig + { + uint16_t cd2_SetSystemConfig_Reserved; + uint16_t cd2_SetSystemConfig_ControlFlags; + uint16_t cd2_SetSystemConfig_SeqID; + uint8_t cd2_SetSystemConfig_CommandClass; + uint8_t cd2_SetSystemConfig_Command; + uint64_t cd2_SetSystemConfig_SystemFabricIdMap ; + uint64_t cd2_SetSystemConfig_MbxReg2reserved; + uint64_t cd2_SetSystemConfig_MbxReg3reserved; + } PACKED; struct //for 'Put Ring from Image' message { |