123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- /*
- (C) Kontron
- */
- #ifndef _IPMI_PICMG_H_
- #define _IPMI_PICMG_H_
- #include <ipmitool/ipmi.h>
- /* PICMG version */
- #define PICMG_CPCI_MAJOR_VERSION 1
- #define PICMG_ATCA_MAJOR_VERSION 2
- #define PICMG_AMC_MAJOR_VERSION 4
- /* PICMG commands */
- #define PICMG_GET_PICMG_PROPERTIES_CMD 0x00
- #define PICMG_GET_ADDRESS_INFO_CMD 0x01
- #define PICMG_GET_SHELF_ADDRESS_INFO_CMD 0x02
- #define PICMG_SET_SHELF_ADDRESS_INFO_CMD 0x03
- #define PICMG_FRU_CONTROL_CMD 0x04
- #define PICMG_GET_FRU_LED_PROPERTIES_CMD 0x05
- #define PICMG_GET_LED_COLOR_CAPABILITIES_CMD 0x06
- #define PICMG_SET_FRU_LED_STATE_CMD 0x07
- #define PICMG_GET_FRU_LED_STATE_CMD 0x08
- #define PICMG_SET_IPMB_CMD 0x09
- #define PICMG_SET_FRU_POLICY_CMD 0x0A
- #define PICMG_GET_FRU_POLICY_CMD 0x0B
- #define PICMG_FRU_ACTIVATION_CMD 0x0C
- #define PICMG_GET_DEVICE_LOCATOR_RECORD_CMD 0x0D
- #define PICMG_SET_PORT_STATE_CMD 0x0E
- #define PICMG_GET_PORT_STATE_CMD 0x0F
- #define PICMG_COMPUTE_POWER_PROPERTIES_CMD 0x10
- #define PICMG_SET_POWER_LEVEL_CMD 0x11
- #define PICMG_GET_POWER_LEVEL_CMD 0x12
- #define PICMG_RENEGOTIATE_POWER_CMD 0x13
- #define PICMG_GET_FAN_SPEED_PROPERTIES_CMD 0x14
- #define PICMG_SET_FAN_LEVEL_CMD 0x15
- #define PICMG_GET_FAN_LEVEL_CMD 0x16
- #define PICMG_BUSED_RESOURCE_CMD 0x17
- /* AMC.0 commands */
- #define PICMG_AMC_SET_PORT_STATE_CMD 0x19
- #define PICMG_AMC_GET_PORT_STATE_CMD 0x1A
- /* AMC.0 R2.0 commands */
- #define PICMG_AMC_SET_CLK_STATE_CMD 0x2C
- #define PICMG_AMC_GET_CLK_STATE_CMD 0x2D
- /* Site Types */
- #define PICMG_ATCA_BOARD 0x00
- #define PICMG_POWER_ENTRY 0x01
- #define PICMG_SHELF_FRU 0x02
- #define PICMG_DEDICATED_SHMC 0x03
- #define PICMG_FAN_TRAY 0x04
- #define PICMG_FAN_FILTER_TRAY 0x05
- #define PICMG_ALARM 0x06
- #define PICMG_AMC 0x07
- #define PICMG_PMC 0x08
- #define PICMG_RTM 0x09
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(1)
- #endif
- struct picmg_set_fru_activation_cmd {
- unsigned char picmg_id; /* always 0*/
- unsigned char fru_id; /* threshold setting mask */
- unsigned char fru_state; /* fru activation/deactivation */
- } ATTRIBUTE_PACKING;
- #ifdef HAVE_PRAGMA_PACK
- #pragma pack(0)
- #endif
- typedef enum picmg_busres_board_cmd_types {
- PICMG_BUSRES_BOARD_CMD_QUERY =0,
- PICMG_BUSRES_BOARD_CMD_RELEASE,
- PICMG_BUSRES_BOARD_CMD_FORCE,
- PICMG_BUSRES_BOARD_CMD_BUS_FREE
- } t_picmg_busres_board_cmd_types ;
- typedef enum picmg_busres_shmc_cmd_types {
- PICMG_BUSRES_SHMC_CMD_REQUEST =0,
- PICMG_BUSRES_SHMC_CMD_RELINQUISH,
- PICMG_BUSRES_SHMC_CMD_NOTIFY
- } t_picmg_busres_shmc_cmd_types ;
- typedef enum picmg_busres_resource_id {
- PICMG_BUSRES_METAL_TEST_BUS_1=0,
- PICMG_BUSRES_METAL_TEST_BUS_2,
- PICMG_BUSRES_SYNC_CLOCK_GROUP_1,
- PICMG_BUSRES_SYNC_CLOCK_GROUP_2,
- PICMG_BUSRES_SYNC_CLOCK_GROUP_3
- } t_picmg_busres_resource_id;
- /* the LED color capabilities */
- static const char* led_color_str[] __attribute__((unused)) = {
- "reserved",
- "BLUE",
- "RED",
- "GREEN",
- "AMBER",
- "ORANGE",
- "WHITE",
- "reserved"
- };
- static const char* amc_link_type_str[] __attribute__((unused)) = {
- "RESERVED",
- "RESERVED1",
- "PCI EXPRESS",
- "ADVANCED SWITCHING1",
- "ADVANCED SWITCHING2",
- "ETHERNET",
- "RAPIDIO",
- "STORAGE",
- };
- static const char* amc_link_type_ext_str[][16] __attribute__((unused)) = {
- /* FRU_PICMGEXT_AMC_LINK_TYPE_RESERVED */
- {
- "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
- },
- /* FRU_PICMGEXT_AMC_LINK_TYPE_RESERVED1 */
- {
- "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
- },
- /* FRU_PICMGEXT_AMC_LINK_TYPE_PCI_EXPRESS */
- {
- "Gen 1 - NSSC",
- "Gen 1 - SSC",
- "Gen 2 - NSSC",
- "Gen 2 - SSC",
- "", "", "", "",
- "", "", "", "",
- "", "", "", ""
- },
- /* FRU_PICMGEXT_AMC_LINK_TYPE_ADVANCED_SWITCHING1 */
- {
- "Gen 1 - NSSC",
- "Gen 1 - SSC",
- "Gen 2 - NSSC",
- "Gen 2 - SSC",
- "", "", "", "",
- "", "", "", "",
- "", "", "", ""
- },
- /* FRU_PICMGEXT_AMC_LINK_TYPE_ADVANCED_SWITCHING2 */
- {
- "Gen 1 - NSSC",
- "Gen 1 - SSC",
- "Gen 2 - NSSC",
- "Gen 2 - SSC",
- "", "", "", "",
- "", "", "", "",
- "", "", "", ""
- },
- /* FRU_PICMGEXT_AMC_LINK_TYPE_ETHERNET */
- {
- "1000BASE-BX (SerDES Gigabit)",
- "10GBASE-BX410 Gigabit XAUI",
- "", "",
- "", "", "", "",
- "", "", "", "",
- "", "", "", ""
- },
- /* FRU_PICMGEXT_AMC_LINK_TYPE_RAPIDIO */
- {
- "1.25 Gbaud transmission rate",
- "2.5 Gbaud transmission rate",
- "3.125 Gbaud transmission rate",
- "", "", "", "", "",
- "", "", "", "", "", "", "", ""
- },
- /* FRU_PICMGEXT_AMC_LINK_TYPE_STORAGE */
- {
- "Fibre Channel",
- "Serial ATA",
- "Serial Attached SCSI",
- "", "", "", "", "",
- "", "", "", "", "", "", "", ""
- }
- };
- struct sAmcPortState {
- #ifndef WORDS_BIGENDIAN
- unsigned short lane0 : 1;
- unsigned short lane1 : 1;
- unsigned short lane2 : 1;
- unsigned short lane3 : 1;
- unsigned short type : 8;
- unsigned short type_ext : 4;
- unsigned char group_id : 8;
- #else
- unsigned char group_id : 8;
- unsigned short type_ext : 4;
- unsigned short type : 8;
- unsigned short lane3 : 1;
- unsigned short lane2 : 1;
- unsigned short lane1 : 1;
- unsigned short lane0 : 1;
- #endif
- unsigned char state;
- };
- int ipmi_picmg_main (struct ipmi_intf * intf, int argc, char ** argv);
- uint8_t picmg_discover(struct ipmi_intf *intf);
- uint8_t ipmi_picmg_ipmb_address(struct ipmi_intf *intf);
- #endif
|