SensorVar.c 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /** @file
  2. Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
  3. SPDX-License-Identifier: BSD-2-Clause-Patent
  4. Module Name:
  5. SensorVar.c
  6. Abstract:
  7. Initialization for the Sensor Info variable.
  8. Revision History
  9. --*/
  10. #include "PlatformDxe.h"
  11. #include "Guid/SensorInfoVariable.h"
  12. //
  13. // Sensor Information (board specific)
  14. //
  15. #define TEMPERATURE_SENSORS_COUNT 4
  16. #define VOLTAGE_SENSORS_COUNT 6
  17. #define FAN_SENSORS_COUNT 4
  18. #define FAN_CONTROLLERS_COUNT 3
  19. TYPEDEF_TEMP_SENSOR_SECTION(TEMPERATURE_SENSORS_COUNT);
  20. TYPEDEF_VOLT_SENSOR_SECTION(VOLTAGE_SENSORS_COUNT);
  21. TYPEDEF_FAN_SENSOR_SECTION(FAN_SENSORS_COUNT);
  22. TYPEDEF_FAN_CONTROLLER_SECTION(FAN_CONTROLLERS_COUNT);
  23. TYPEDEF_SENSOR_INFO_VAR;
  24. SENSOR_INFO_VAR mSensorInfoData =
  25. {
  26. //
  27. // Temperature Sensors
  28. //
  29. TEMPERATURE_SENSORS_COUNT,
  30. {
  31. { 0, 3, CPU_CORE_TEMPERATURE, TRUE },
  32. { 0, 1, MOTHERBOARD_AMBIENT_TEMPERATURE, FALSE },
  33. { 0, 2, VR_TEMPERATURE, FALSE },
  34. { 0, 0, IOH_TEMPERATURE, FALSE }
  35. },
  36. //
  37. // Voltage Sensors
  38. //
  39. VOLTAGE_SENSORS_COUNT,
  40. {
  41. { 0, 0, PLUS_12_VOLTS },
  42. { 0, 1, PLUS_5_VOLTS },
  43. { 0, 2, PLUS_3P3_VOLTS },
  44. { 0, 3, MCH_VCC_VOLTAGE },
  45. { 0, 4, CPU_1_VCCP_VOLTAGE },
  46. { 0, 5, CPU_VTT_VOLTAGE }
  47. },
  48. //
  49. // Fan Speed Sensors
  50. //
  51. FAN_SENSORS_COUNT,
  52. {
  53. { 0, 0, CPU_COOLING_FAN, FAN_4WIRE, 0 },
  54. { 0, 1, AUX_COOLING_FAN, FAN_4WIRE, 1 },
  55. { 0, 2, CHASSIS_INLET_FAN, FAN_3WIRE_VOLTAGE, 1 },
  56. { 0, 3, CHASSIS_OUTLET_FAN, FAN_3WIRE_VOLTAGE, 2 }
  57. },
  58. //
  59. // Fan Speed Controllers
  60. //
  61. FAN_CONTROLLERS_COUNT,
  62. {
  63. { 0, 0, CPU_COOLING_FAN, { 0, 0xff, 0xff, 0xff } },
  64. { 0, 1, CHASSIS_COOLING_FAN, { 1, 2, 0xff, 0xff } },
  65. { 0, 2, CHASSIS_COOLING_FAN, { 3, 0xff, 0xff, 0xff } }
  66. }
  67. };
  68. #if defined(SENSOR_INFO_VAR_SUPPORT) && SENSOR_INFO_VAR_SUPPORT != 0
  69. /**
  70. Write the Sensor Info variable if it does not already exist.
  71. **/
  72. VOID
  73. InitializeSensorInfoVariable (
  74. )
  75. {
  76. //
  77. // Set the Sensor Info variable. If it already exists and the data matches,
  78. // the variable driver will simply return without writing; otherwise, the
  79. // driver will write the variable.
  80. //
  81. gRT->SetVariable (
  82. gEfiSensorInfoVarNameWithPassword,
  83. &gEfiSensorInfoVarGuid,
  84. EFI_VARIABLE_NON_VOLATILE |
  85. EFI_VARIABLE_BOOTSERVICE_ACCESS |
  86. EFI_VARIABLE_RUNTIME_ACCESS,
  87. sizeof (SENSOR_INFO_VAR),
  88. &mSensorInfoData
  89. );
  90. }
  91. #endif