DCMDevice.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /****************************************************************
  2. ****************************************************************
  3. ** **
  4. ** (C)Copyright 2005-2006, American Megatrends Inc. **
  5. ** **
  6. ** All Rights Reserved. **
  7. ** **
  8. ** Suite 200, 5555 oakbrook pkwy, Norcross **
  9. ** **
  10. ** Georgia - 30093, USA. Phone-(770)-246-8600. **
  11. ** **
  12. ****************************************************************
  13. *****************************************************************
  14. *
  15. * DCMDevice.h
  16. * DCMDevice Commands Handler
  17. *
  18. * Author: Rama Bisa <ramab@ami.com>
  19. *
  20. *****************************************************************/
  21. #ifndef DCMDEVICE_H
  22. #define DCMDEVICE_H
  23. #include "Types.h"
  24. #define FRU_SUB_AREA_NO_DATA 0xC1
  25. #define DCMI_MAJOR_REVISION 1
  26. #define DCMI_MINOR_REVISION_v1_5 5
  27. #define DCMI_MINOR_REVISION_v1_0 0
  28. #define POWER_LIMIT_OUT_OF_RANGE -1
  29. #define CORRECTION_TIME_OUT_OF_RANGE -2
  30. #define THERMAL_LIMIT_OUT_OF_RANGE -1
  31. #define THERMAL_EXCEPTION_TIME_OUT_OF_RANGE -2
  32. /******************************************************/
  33. /* INTERNAL MACRO DEFINITIONS FOR DCMI COMMANDS */
  34. /******************************************************/
  35. #define SUPPORTED_DCMI_CAPABILITIES 1
  36. #define MANDATORY_PLATFORM_ATTRIBUTES 2
  37. #define OPTIONAL_PLATFORM_ATTRIBUTES 3
  38. #define MANAGEABILITY_ACCESS_ATTRIBUTES 4
  39. #define ENHANCED_SYSTEM_POWER_ATTRIBUTES 5 /* For DCMI version 1.1 */
  40. #define IDENTIFICATION_SUPPORT (1 << 0)
  41. #define SEL_LOG_SUPPORT (1 << 1)
  42. #define CHASSIS_POWER_SUPPORT (1 << 2)
  43. #define TEMP_MONITOR_SUPPORT (1 << 3)
  44. #define PWR_MANAGEMENT_SUPPORT (1 << 0)
  45. #define KCS_SUPPORT (1 << 0)
  46. #define TMODE_SUPPORT (1 << 1)
  47. #define SECONDARY_LAN_SUPPORT (1 << 2)
  48. #define PRIMARY_LAN_SUPPORT (1 << 3)
  49. #define SOL_SUPPORT (1 << 4)
  50. #define VLAN_SUPPORT (1 << 5)
  51. #define SEL_AUTO_ROLLOVER_SUPPORT_CHECK 15
  52. #define SEL_ROLLOVER_FLUSH_ENTIRE (1<<14)
  53. #define SEL_ROLLOVER_FLUSH_RECORD_LEVEL (1<<13)
  54. #define ASSET_TAG_SUPPORT (1 << 2)
  55. #define DHCP_HOST_NAME_SUPPORT (1 << 1)
  56. #define GUID_SUPPORT (1 << 0)
  57. #define BASEBOARD_TEMP_MON_SUPPORT (1 << 2)
  58. #define PROCESSORS_TEMP_MON_SUPPORT (1 << 1)
  59. #define INLET_TEMP_MON_SUPPORT (1 << 0)
  60. #define SAMPLING_FREQUENCY_TEMP_MON (1 << 0)
  61. #define DCMI_PARAMETER_REVISION 2
  62. #define PRIMARY_LAN_CHANNEL_NUMBER LAN_RMCP_CHANNEL
  63. #define SECONDARY_LAN_CHANNEL_NUMBER 0xFF /* 0xFF for not supported */
  64. #define TMODE_OOB_CHANNEL_NUMBER 0xFF /* 0xFF for not supported */
  65. #define MAX_ASSET_TAG_LEN 63
  66. #define MAX_OFFSET_VALUE 62
  67. #define MAX_IDENTIFIERSTRING_LENGTH 64
  68. #define MAX_IDENTIFIERSTRING_OFFSET 63
  69. #define FRU_PRODUCT_INFO_AREA_OFFSET 4
  70. #define DCMI_TEMP_SENSOR_TYPE 1
  71. #define ACTIVATE_POWER_LIMIT_CODE 0x01
  72. #define DEACTIVATE_POWER_LIMIT_CODE 0x00
  73. #define MAX_EXCEPTION_ACTION_CODE 0x11
  74. #define MODE_POWER_STATS 0x01
  75. #define MODE_ENHANCED_POWER_STATS 0x02
  76. #define DEFAULT_TIMEOUT 100
  77. #define SUPPORTED_DCMI_CAPABILITIES 1
  78. #define MANDATORY_PLATFORM_ATTRIBUTES 2
  79. #define OPTIONAL_PLATFORM_ATTRIBUTES 3
  80. #define GET_POWER_LIMIT_RESERVED_BYTE 0xFF
  81. #define SET_THERMAL_LIMIT_RESERVED 0x8F
  82. extern int GetDCMICapabilityInfo (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  83. extern int GetPowerReading (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  84. extern int GetPowerLimit (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  85. extern int SetPowerLimit (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  86. extern int ActivatePowerLimit (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  87. extern int GetDCMISensorInfo (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  88. extern int GetAssetTag (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  89. extern void DCMIPowerSamplingTask (int BMCInst);
  90. extern int SetAssetTag (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  91. extern int GetManagementControllerIdString (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  92. extern int SetManagementControllerIdString (INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  93. extern void DCMIThermalSamplingTask(int BMCInst);
  94. extern int SetThermalLimit(INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  95. extern int GetThermalLimit(INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  96. extern int GetTemperatureReading(INT8U* pReq, INT8U ReqLen, INT8U* pRes,_NEAR_ int BMCInst);
  97. #endif /* IPMDEVICE_H */