1#! /usr/bin/python 2 3HOME_PATH = './' 4GPIO_BASE = 320 5SYSTEM_NAME = "Witherspoon" 6 7 8## System states 9## state can change to next state in 2 ways: 10## - a process emits a GotoSystemState signal with state name to goto 11## - objects specified in EXIT_STATE_DEPEND have started 12SYSTEM_STATES = [ 13 'BASE_APPS', 14 'BMC_STARTING', 15 'BMC_READY', 16 'HOST_POWERING_ON', 17 'HOST_POWERED_ON', 18 'HOST_BOOTING', 19 'HOST_BOOTED', 20 'HOST_POWERED_OFF', 21] 22 23EXIT_STATE_DEPEND = { 24 'BASE_APPS' : { 25 '/org/openbmc/sensors': 0, 26 }, 27 'BMC_STARTING' : { 28 '/org/openbmc/control/chassis0': 0, 29 '/org/openbmc/control/power0' : 0, 30 '/org/openbmc/control/host0' : 0, 31 '/org/openbmc/control/flash/bios' : 0, 32 }, 33} 34 35## method will be called when state is entered 36ENTER_STATE_CALLBACK = { 37 'HOST_POWERED_ON' : { 38 'boot' : { 39 'bus_name' : 'org.openbmc.control.Host', 40 'obj_name' : '/org/openbmc/control/host0', 41 'interface_name' : 'org.openbmc.control.Host', 42 }, 43 }, 44 'HOST_POWERED_OFF' : { 45 'setOff' : { 46 'bus_name' : 'org.openbmc.control.led', 47 'obj_name' : '/org/openbmc/control/led/identify', 48 'interface_name' : 'org.openbmc.Led', 49 } 50 }, 51 'BMC_READY' : { 52 'setOn' : { 53 'bus_name' : 'org.openbmc.control.led', 54 'obj_name' : '/org/openbmc/control/led/beep', 55 'interface_name' : 'org.openbmc.Led', 56 }, 57 'init' : { 58 'bus_name' : 'org.openbmc.control.Flash', 59 'obj_name' : '/org/openbmc/control/flash/bios', 60 'interface_name' : 'org.openbmc.Flash', 61 } 62 } 63} 64 65APPS = { 66 'startup_hacks' : { 67 'system_state' : 'BASE_APPS', 68 'start_process' : True, 69 'monitor_process' : False, 70 'process_name' : 'startup_hacks.sh', 71 }, 72 'inventory' : { 73 'system_state' : 'BMC_STARTING', 74 'start_process' : True, 75 'monitor_process' : True, 76 'process_name' : 'inventory_items.py', 77 'args' : [ SYSTEM_NAME ] 78 }, 79 'hwmon' : { 80 'system_state' : 'BMC_STARTING', 81 'start_process' : True, 82 'monitor_process' : True, 83 'process_name' : 'hwmon.py', 84 'args' : [ SYSTEM_NAME ] 85 }, 86 'sensor_manager' : { 87 'system_state' : 'BASE_APPS', 88 'start_process' : True, 89 'monitor_process' : True, 90 'process_name' : 'sensor_manager2.py', 91 'args' : [ SYSTEM_NAME ] 92 }, 93 'host_watchdog' : { 94 'system_state' : 'BMC_STARTING', 95 'start_process' : True, 96 'monitor_process' : True, 97 'process_name' : 'host_watchdog.exe', 98 }, 99 'power_control' : { 100 'system_state' : 'BMC_STARTING', 101 'start_process' : True, 102 'monitor_process' : True, 103 'process_name' : 'power_control.exe', 104 'args' : [ '3000', '10' ] 105 }, 106 'power_button' : { 107 'system_state' : 'BMC_STARTING', 108 'start_process' : True, 109 'monitor_process' : True, 110 'process_name' : 'button_power.exe', 111 }, 112 'reset_button' : { 113 'system_state' : 'BMC_STARTING', 114 'start_process' : True, 115 'monitor_process' : True, 116 'process_name' : 'button_reset.exe', 117 }, 118 'host_checkstop' : { 119 'system_state' : 'BMC_STARTING', 120 'start_process' : True, 121 'monitor_process' : True, 122 'process_name' : 'host_checkstop.exe', 123 }, 124 'led_control' : { 125 'system_state' : 'BMC_STARTING', 126 'start_process' : True, 127 'monitor_process' : True, 128 'process_name' : 'led_controller.exe', 129 }, 130 'flash_control' : { 131 'system_state' : 'BMC_STARTING', 132 'start_process' : True, 133 'monitor_process' : True, 134 'process_name' : 'flash_bios.exe', 135 }, 136 'bmc_flash_control' : { 137 'system_state' : 'BMC_STARTING', 138 'start_process' : True, 139 'monitor_process' : True, 140 'process_name' : 'bmc_update.py', 141 }, 142 'download_manager' : { 143 'system_state' : 'BMC_STARTING', 144 'start_process' : True, 145 'monitor_process' : True, 146 'process_name' : 'download_manager.py', 147 'args' : [ SYSTEM_NAME ] 148 }, 149 'host_control' : { 150 'system_state' : 'BMC_STARTING', 151 'start_process' : True, 152 'monitor_process' : True, 153 'process_name' : 'control_host.exe', 154 }, 155 'chassis_control' : { 156 'system_state' : 'BMC_STARTING', 157 'start_process' : True, 158 'monitor_process' : True, 159 'process_name' : 'chassis_control.py', 160 }, 161 'restore' : { 162 'system_state' : 'BMC_READY', 163 'start_process' : True, 164 'monitor_process' : False, 165 'process_name' : 'discover_system_state.py', 166 }, 167 'bmc_control' : { 168 'system_state' : 'BMC_STARTING', 169 'start_process' : True, 170 'monitor_process' : True, 171 'process_name' : 'control_bmc.exe', 172 }, 173} 174 175CACHED_INTERFACES = { 176 "org.openbmc.InventoryItem" : True, 177 "org.openbmc.control.Chassis" : True, 178} 179 180INVENTORY_ROOT = '/org/openbmc/inventory' 181 182FRU_INSTANCES = { 183 '<inventory_root>/system' : { 'fru_type' : 'SYSTEM','is_fru' : True, 'present' : "True" }, 184 '<inventory_root>/system/bios' : { 'fru_type' : 'SYSTEM','is_fru' : True, 'present' : "True" }, 185 '<inventory_root>/system/misc' : { 'fru_type' : 'SYSTEM','is_fru' : False, }, 186 187 '<inventory_root>/system/chassis' : { 'fru_type' : 'SYSTEM','is_fru' : True, 'present' : "True" }, 188 189 '<inventory_root>/system/chassis/motherboard' : { 'fru_type' : 'MAIN_PLANAR','is_fru' : True, }, 190 191 '<inventory_root>/system/systemevent' : { 'fru_type' : 'SYSTEM_EVENT', 'is_fru' : False, }, 192 '<inventory_root>/system/chassis/motherboard/refclock' : { 'fru_type' : 'MAIN_PLANAR', 'is_fru' : False, }, 193 '<inventory_root>/system/chassis/motherboard/pcieclock': { 'fru_type' : 'MAIN_PLANAR', 'is_fru' : False, }, 194 '<inventory_root>/system/chassis/motherboard/todclock' : { 'fru_type' : 'MAIN_PLANAR', 'is_fru' : False, }, 195 '<inventory_root>/system/chassis/motherboard/apss' : { 'fru_type' : 'MAIN_PLANAR', 'is_fru' : False, }, 196 197 '<inventory_root>/system/chassis/fan0' : { 'fru_type' : 'FAN','is_fru' : True, }, 198 '<inventory_root>/system/chassis/fan1' : { 'fru_type' : 'FAN','is_fru' : True, }, 199 '<inventory_root>/system/chassis/fan2' : { 'fru_type' : 'FAN','is_fru' : True, }, 200 '<inventory_root>/system/chassis/fan3' : { 'fru_type' : 'FAN','is_fru' : True, }, 201 202 '<inventory_root>/system/chassis/motherboard/bmc' : { 'fru_type' : 'BMC','is_fru' : False, 'manufacturer' : 'ASPEED' }, 203 204 '<inventory_root>/system/chassis/motherboard/cpu0' : { 'fru_type' : 'CPU', 'is_fru' : True, }, 205 '<inventory_root>/system/chassis/motherboard/cpu1' : { 'fru_type' : 'CPU', 'is_fru' : True, }, 206 207 '<inventory_root>/system/chassis/motherboard/cpu0/core0' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 208 '<inventory_root>/system/chassis/motherboard/cpu0/core1' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 209 '<inventory_root>/system/chassis/motherboard/cpu0/core2' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 210 '<inventory_root>/system/chassis/motherboard/cpu0/core3' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 211 '<inventory_root>/system/chassis/motherboard/cpu0/core4' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 212 '<inventory_root>/system/chassis/motherboard/cpu0/core5' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 213 '<inventory_root>/system/chassis/motherboard/cpu0/core6' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 214 '<inventory_root>/system/chassis/motherboard/cpu0/core7' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 215 '<inventory_root>/system/chassis/motherboard/cpu0/core8' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 216 '<inventory_root>/system/chassis/motherboard/cpu0/core9' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 217 '<inventory_root>/system/chassis/motherboard/cpu0/core10': { 'fru_type' : 'CORE', 'is_fru' : False, }, 218 '<inventory_root>/system/chassis/motherboard/cpu0/core11': { 'fru_type' : 'CORE', 'is_fru' : False, }, 219 220 '<inventory_root>/system/chassis/motherboard/cpu1/core0' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 221 '<inventory_root>/system/chassis/motherboard/cpu1/core1' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 222 '<inventory_root>/system/chassis/motherboard/cpu1/core2' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 223 '<inventory_root>/system/chassis/motherboard/cpu1/core3' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 224 '<inventory_root>/system/chassis/motherboard/cpu1/core4' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 225 '<inventory_root>/system/chassis/motherboard/cpu1/core5' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 226 '<inventory_root>/system/chassis/motherboard/cpu1/core6' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 227 '<inventory_root>/system/chassis/motherboard/cpu1/core7' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 228 '<inventory_root>/system/chassis/motherboard/cpu1/core8' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 229 '<inventory_root>/system/chassis/motherboard/cpu1/core9' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 230 '<inventory_root>/system/chassis/motherboard/cpu1/core10' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 231 '<inventory_root>/system/chassis/motherboard/cpu1/core11' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 232 233 '<inventory_root>/system/chassis/motherboard/membuf0' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 234 '<inventory_root>/system/chassis/motherboard/membuf1' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 235 '<inventory_root>/system/chassis/motherboard/membuf2' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 236 '<inventory_root>/system/chassis/motherboard/membuf3' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 237 '<inventory_root>/system/chassis/motherboard/membuf4' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 238 '<inventory_root>/system/chassis/motherboard/membuf5' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 239 '<inventory_root>/system/chassis/motherboard/membuf6' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 240 '<inventory_root>/system/chassis/motherboard/membuf7' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 241 242 '<inventory_root>/system/chassis/motherboard/dimm0' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 243 '<inventory_root>/system/chassis/motherboard/dimm1' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 244 '<inventory_root>/system/chassis/motherboard/dimm2' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 245 '<inventory_root>/system/chassis/motherboard/dimm3' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 246 '<inventory_root>/system/chassis/motherboard/dimm4' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 247 '<inventory_root>/system/chassis/motherboard/dimm5' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 248 '<inventory_root>/system/chassis/motherboard/dimm6' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 249 '<inventory_root>/system/chassis/motherboard/dimm7' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 250 '<inventory_root>/system/chassis/motherboard/dimm8' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 251 '<inventory_root>/system/chassis/motherboard/dimm9' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 252 '<inventory_root>/system/chassis/motherboard/dimm10' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 253 '<inventory_root>/system/chassis/motherboard/dimm11' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 254 '<inventory_root>/system/chassis/motherboard/dimm12' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 255 '<inventory_root>/system/chassis/motherboard/dimm13' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 256 '<inventory_root>/system/chassis/motherboard/dimm14' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 257 '<inventory_root>/system/chassis/motherboard/dimm15' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 258 '<inventory_root>/system/chassis/motherboard/dimm16' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 259 '<inventory_root>/system/chassis/motherboard/dimm17' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 260 '<inventory_root>/system/chassis/motherboard/dimm18' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 261 '<inventory_root>/system/chassis/motherboard/dimm19' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 262 '<inventory_root>/system/chassis/motherboard/dimm20' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 263 '<inventory_root>/system/chassis/motherboard/dimm21' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 264 '<inventory_root>/system/chassis/motherboard/dimm22' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 265 '<inventory_root>/system/chassis/motherboard/dimm23' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 266 '<inventory_root>/system/chassis/motherboard/dimm24' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 267 '<inventory_root>/system/chassis/motherboard/dimm25' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 268 '<inventory_root>/system/chassis/motherboard/dimm26' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 269 '<inventory_root>/system/chassis/motherboard/dimm27' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 270 '<inventory_root>/system/chassis/motherboard/dimm28' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 271 '<inventory_root>/system/chassis/motherboard/dimm29' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 272 '<inventory_root>/system/chassis/motherboard/dimm30' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 273 '<inventory_root>/system/chassis/motherboard/dimm31' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 274} 275 276ID_LOOKUP = { 277 'FRU' : { 278 0x01 : '<inventory_root>/system/chassis/motherboard/cpu0', 279 0x02 : '<inventory_root>/system/chassis/motherboard/cpu1', 280 0x03 : '<inventory_root>/system/chassis/motherboard', 281 0x04 : '<inventory_root>/system/chassis/motherboard/membuf0', 282 0x05 : '<inventory_root>/system/chassis/motherboard/membuf1', 283 0x06 : '<inventory_root>/system/chassis/motherboard/membuf2', 284 0x07 : '<inventory_root>/system/chassis/motherboard/membuf3', 285 0x08 : '<inventory_root>/system/chassis/motherboard/membuf4', 286 0x09 : '<inventory_root>/system/chassis/motherboard/membuf5', 287 0x0c : '<inventory_root>/system/chassis/motherboard/dimm0', 288 0x0d : '<inventory_root>/system/chassis/motherboard/dimm1', 289 0x0e : '<inventory_root>/system/chassis/motherboard/dimm2', 290 0x0f : '<inventory_root>/system/chassis/motherboard/dimm3', 291 0x10 : '<inventory_root>/system/chassis/motherboard/dimm4', 292 0x11 : '<inventory_root>/system/chassis/motherboard/dimm5', 293 0x12 : '<inventory_root>/system/chassis/motherboard/dimm6', 294 0x13 : '<inventory_root>/system/chassis/motherboard/dimm7', 295 0x14 : '<inventory_root>/system/chassis/motherboard/dimm8', 296 0x15 : '<inventory_root>/system/chassis/motherboard/dimm9', 297 0x16 : '<inventory_root>/system/chassis/motherboard/dimm10', 298 0x17 : '<inventory_root>/system/chassis/motherboard/dimm11', 299 0x18 : '<inventory_root>/system/chassis/motherboard/dimm12', 300 0x19 : '<inventory_root>/system/chassis/motherboard/dimm13', 301 0x1a : '<inventory_root>/system/chassis/motherboard/dimm14', 302 0x1b : '<inventory_root>/system/chassis/motherboard/dimm15', 303 0x1c : '<inventory_root>/system/chassis/motherboard/dimm16', 304 0x1d : '<inventory_root>/system/chassis/motherboard/dimm17', 305 0x1e : '<inventory_root>/system/chassis/motherboard/dimm18', 306 0x1f : '<inventory_root>/system/chassis/motherboard/dimm19', 307 0x20 : '<inventory_root>/system/chassis/motherboard/dimm20', 308 0x21 : '<inventory_root>/system/chassis/motherboard/dimm21', 309 0x22 : '<inventory_root>/system/chassis/motherboard/dimm22', 310 0x23 : '<inventory_root>/system/chassis/motherboard/dimm23', 311 0x24 : '<inventory_root>/system/chassis/motherboard/dimm24', 312 0x25 : '<inventory_root>/system/chassis/motherboard/dimm25', 313 0x26 : '<inventory_root>/system/chassis/motherboard/dimm26', 314 0x27 : '<inventory_root>/system/chassis/motherboard/dimm27', 315 0x28 : '<inventory_root>/system/chassis/motherboard/dimm28', 316 0x29 : '<inventory_root>/system/chassis/motherboard/dimm29', 317 0x2a : '<inventory_root>/system/chassis/motherboard/dimm30', 318 0x2b : '<inventory_root>/system/chassis/motherboard/dimm31', 319 }, 320 'FRU_STR' : { 321 'PRODUCT_0' : '<inventory_root>/system/bios', 322 'BOARD_1' : '<inventory_root>/system/chassis/motherboard/cpu0', 323 'BOARD_2' : '<inventory_root>/system/chassis/motherboard/cpu1', 324 'CHASSIS_3' : '<inventory_root>/system/chassis/motherboard', 325 'BOARD_3' : '<inventory_root>/system/misc', 326 'BOARD_4' : '<inventory_root>/system/chassis/motherboard/membuf0', 327 'BOARD_5' : '<inventory_root>/system/chassis/motherboard/membuf1', 328 'BOARD_6' : '<inventory_root>/system/chassis/motherboard/membuf2', 329 'BOARD_7' : '<inventory_root>/system/chassis/motherboard/membuf3', 330 'BOARD_8' : '<inventory_root>/system/chassis/motherboard/membuf4', 331 'BOARD_9' : '<inventory_root>/system/chassis/motherboard/membuf5', 332 'BOARD_10' : '<inventory_root>/system/chassis/motherboard/membuf6', 333 'BOARD_11' : '<inventory_root>/system/chassis/motherboard/membuf7', 334 'PRODUCT_12' : '<inventory_root>/system/chassis/motherboard/dimm0', 335 'PRODUCT_13' : '<inventory_root>/system/chassis/motherboard/dimm1', 336 'PRODUCT_14' : '<inventory_root>/system/chassis/motherboard/dimm2', 337 'PRODUCT_15' : '<inventory_root>/system/chassis/motherboard/dimm3', 338 'PRODUCT_16' : '<inventory_root>/system/chassis/motherboard/dimm4', 339 'PRODUCT_17' : '<inventory_root>/system/chassis/motherboard/dimm5', 340 'PRODUCT_18' : '<inventory_root>/system/chassis/motherboard/dimm6', 341 'PRODUCT_19' : '<inventory_root>/system/chassis/motherboard/dimm7', 342 'PRODUCT_20' : '<inventory_root>/system/chassis/motherboard/dimm8', 343 'PRODUCT_21' : '<inventory_root>/system/chassis/motherboard/dimm9', 344 'PRODUCT_22' : '<inventory_root>/system/chassis/motherboard/dimm10', 345 'PRODUCT_23' : '<inventory_root>/system/chassis/motherboard/dimm11', 346 'PRODUCT_24' : '<inventory_root>/system/chassis/motherboard/dimm12', 347 'PRODUCT_25' : '<inventory_root>/system/chassis/motherboard/dimm13', 348 'PRODUCT_26' : '<inventory_root>/system/chassis/motherboard/dimm14', 349 'PRODUCT_27' : '<inventory_root>/system/chassis/motherboard/dimm15', 350 'PRODUCT_28' : '<inventory_root>/system/chassis/motherboard/dimm16', 351 'PRODUCT_29' : '<inventory_root>/system/chassis/motherboard/dimm17', 352 'PRODUCT_30' : '<inventory_root>/system/chassis/motherboard/dimm18', 353 'PRODUCT_31' : '<inventory_root>/system/chassis/motherboard/dimm19', 354 'PRODUCT_32' : '<inventory_root>/system/chassis/motherboard/dimm20', 355 'PRODUCT_33' : '<inventory_root>/system/chassis/motherboard/dimm21', 356 'PRODUCT_34' : '<inventory_root>/system/chassis/motherboard/dimm22', 357 'PRODUCT_35' : '<inventory_root>/system/chassis/motherboard/dimm23', 358 'PRODUCT_36' : '<inventory_root>/system/chassis/motherboard/dimm24', 359 'PRODUCT_37' : '<inventory_root>/system/chassis/motherboard/dimm25', 360 'PRODUCT_38' : '<inventory_root>/system/chassis/motherboard/dimm26', 361 'PRODUCT_39' : '<inventory_root>/system/chassis/motherboard/dimm27', 362 'PRODUCT_40' : '<inventory_root>/system/chassis/motherboard/dimm28', 363 'PRODUCT_41' : '<inventory_root>/system/chassis/motherboard/dimm29', 364 'PRODUCT_42' : '<inventory_root>/system/chassis/motherboard/dimm30', 365 'PRODUCT_43' : '<inventory_root>/system/chassis/motherboard/dimm31', 366 'PRODUCT_47' : '<inventory_root>/system/misc', 367 }, 368 'SENSOR' : { 369 0x04 : '/org/openbmc/sensors/host/HostStatus', 370 0x03 : '/org/openbmc/sensors/host/BootProgress', 371 0xfc : '/org/openbmc/sensors/host/cpu0/OccStatus', 372 0xfd : '/org/openbmc/sensors/host/cpu1/OccStatus', 373 0x5a : '<inventory_root>/system/chassis/motherboard/cpu0', 374 0xa4 : '<inventory_root>/system/chassis/motherboard/cpu1', 375 0x1e : '<inventory_root>/system/chassis/motherboard/dimm3', 376 0x1f : '<inventory_root>/system/chassis/motherboard/dimm2', 377 0x20 : '<inventory_root>/system/chassis/motherboard/dimm1', 378 0x21 : '<inventory_root>/system/chassis/motherboard/dimm0', 379 0x22 : '<inventory_root>/system/chassis/motherboard/dimm7', 380 0x23 : '<inventory_root>/system/chassis/motherboard/dimm6', 381 0x24 : '<inventory_root>/system/chassis/motherboard/dimm5', 382 0x25 : '<inventory_root>/system/chassis/motherboard/dimm4', 383 0x26 : '<inventory_root>/system/chassis/motherboard/dimm11', 384 0x27 : '<inventory_root>/system/chassis/motherboard/dimm10', 385 0x28 : '<inventory_root>/system/chassis/motherboard/dimm9', 386 0x29 : '<inventory_root>/system/chassis/motherboard/dimm8', 387 0x2a : '<inventory_root>/system/chassis/motherboard/dimm15', 388 0x2b : '<inventory_root>/system/chassis/motherboard/dimm14', 389 0x2c : '<inventory_root>/system/chassis/motherboard/dimm13', 390 0x2d : '<inventory_root>/system/chassis/motherboard/dimm12', 391 0x2e : '<inventory_root>/system/chassis/motherboard/dimm19', 392 0x2f : '<inventory_root>/system/chassis/motherboard/dimm18', 393 0x30 : '<inventory_root>/system/chassis/motherboard/dimm17', 394 0x31 : '<inventory_root>/system/chassis/motherboard/dimm16', 395 0x32 : '<inventory_root>/system/chassis/motherboard/dimm23', 396 0x33 : '<inventory_root>/system/chassis/motherboard/dimm22', 397 0x34 : '<inventory_root>/system/chassis/motherboard/dimm21', 398 0x35 : '<inventory_root>/system/chassis/motherboard/dimm20', 399 0x36 : '<inventory_root>/system/chassis/motherboard/dimm27', 400 0x37 : '<inventory_root>/system/chassis/motherboard/dimm26', 401 0x38 : '<inventory_root>/system/chassis/motherboard/dimm25', 402 0x39 : '<inventory_root>/system/chassis/motherboard/dimm24', 403 0x3a : '<inventory_root>/system/chassis/motherboard/dimm31', 404 0x3b : '<inventory_root>/system/chassis/motherboard/dimm30', 405 0x3c : '<inventory_root>/system/chassis/motherboard/dimm29', 406 0x3d : '<inventory_root>/system/chassis/motherboard/dimm28', 407 0x3e : '<inventory_root>/system/chassis/motherboard/cpu0/core0', 408 0x3f : '<inventory_root>/system/chassis/motherboard/cpu0/core1', 409 0x40 : '<inventory_root>/system/chassis/motherboard/cpu0/core2', 410 0x41 : '<inventory_root>/system/chassis/motherboard/cpu0/core3', 411 0x42 : '<inventory_root>/system/chassis/motherboard/cpu0/core4', 412 0x43 : '<inventory_root>/system/chassis/motherboard/cpu0/core5', 413 0x44 : '<inventory_root>/system/chassis/motherboard/cpu0/core6', 414 0x45 : '<inventory_root>/system/chassis/motherboard/cpu0/core7', 415 0x46 : '<inventory_root>/system/chassis/motherboard/cpu0/core8', 416 0x47 : '<inventory_root>/system/chassis/motherboard/cpu0/core9', 417 0x48 : '<inventory_root>/system/chassis/motherboard/cpu0/core10', 418 0x49 : '<inventory_root>/system/chassis/motherboard/cpu0/core11', 419 0x4a : '<inventory_root>/system/chassis/motherboard/cpu1/core0', 420 0x4b : '<inventory_root>/system/chassis/motherboard/cpu1/core1', 421 0x4c : '<inventory_root>/system/chassis/motherboard/cpu1/core2', 422 0x4d : '<inventory_root>/system/chassis/motherboard/cpu1/core3', 423 0x4e : '<inventory_root>/system/chassis/motherboard/cpu1/core4', 424 0x4f : '<inventory_root>/system/chassis/motherboard/cpu1/core5', 425 0x50 : '<inventory_root>/system/chassis/motherboard/cpu1/core6', 426 0x51 : '<inventory_root>/system/chassis/motherboard/cpu1/core7', 427 0x52 : '<inventory_root>/system/chassis/motherboard/cpu1/core8', 428 0x53 : '<inventory_root>/system/chassis/motherboard/cpu1/core9', 429 0x54 : '<inventory_root>/system/chassis/motherboard/cpu1/core10', 430 0x55 : '<inventory_root>/system/chassis/motherboard/cpu1/core11', 431 0x56 : '<inventory_root>/system/chassis/motherboard/membuf0', 432 0x57 : '<inventory_root>/system/chassis/motherboard/membuf1', 433 0x58 : '<inventory_root>/system/chassis/motherboard/membuf2', 434 0x59 : '<inventory_root>/system/chassis/motherboard/membuf3', 435 0x5a : '<inventory_root>/system/chassis/motherboard/membuf4', 436 0x5b : '<inventory_root>/system/chassis/motherboard/membuf5', 437 0x5c : '<inventory_root>/system/chassis/motherboard/membuf6', 438 0x5d : '<inventory_root>/system/chassis/motherboard/membuf7', 439 0x07 : '/org/openbmc/sensors/host/BootCount', 440 0x60 : '<inventory_root>/system/chassis/motherboard', 441 0x61 : '<inventory_root>/system/systemevent', 442 0x62 : '<inventory_root>/system/powerlimit', 443 0x63 : '<inventory_root>/system/chassis/motherboard/refclock', 444 0x64 : '<inventory_root>/system/chassis/motherboard/pcieclock', 445 0xb1 : '<inventory_root>/system/chassis/motherboard/todclock', 446 0xb2 : '<inventory_root>/system/chassis/motherboard/apss', 447 0xb3 : '/org/openbmc/sensors/host/powercap', 448 0x02 : '/org/openbmc/sensors/host/OperatingSystemStatus', 449 0xb6 : '<inventory_root>/system/chassis/motherboard/pcielink', 450 }, 451 'GPIO_PRESENT' : {} 452} 453 454GPIO_CONFIG = {} 455GPIO_CONFIG['BMC_POWER_UP'] = \ 456 {'gpio_pin': 'D1', 'direction': 'out'} 457GPIO_CONFIG['SYS_PWROK_BUFF'] = \ 458 {'gpio_pin': 'D2', 'direction': 'in'} 459GPIO_CONFIG['BMC_WD_CLEAR_PULSE_N'] = \ 460 {'gpio_pin': 'N5', 'direction': 'out'} 461GPIO_CONFIG['CHECKSTOP'] = \ 462 {'gpio_pin': 'J2', 'direction': 'falling'} 463 464# witherspoon: not connect 465#GPIO_CONFIG['CM1_OE_R_N'] = \ 466# {'gpio_pin': 'A2', 'direction': 'out'} 467 468GPIO_CONFIG['BMC_CP0_RESET_N'] = \ 469 {'gpio_pin': 'A1', 'direction': 'out'} 470 471# witherspoon: No centaur 472#GPIO_CONFIG['BMC_CFAM_RESET_N_R'] = \ 473# {'gpio_pin': 'J2', 'direction': 'out'} 474 475 476# FIXME: reset pcie switch, looks like BMC_VS1_PERST_N , see workbook fig.46 477#GPIO_CONFIG['PEX8718_DEVICES_RESET_N'] = \ 478# {'gpio_pin': 'B7', 'direction': 'out'} 479GPIO_CONFIG['BMC_VS1_PERST_N'] = \ 480 {'gpio_pin': 'B7', 'direction': 'out'} 481 482# FIXME: reset pcie slots, looks like BMC_CP0_PERST_ENABLE_R, see workbook fig.46 483# firestone: gpiog1, gpiog2 484#GPIO_CONFIG['CP0_DEVICES_RESET_N'] = \ 485# {'gpio_pin': 'B1', 'direction': 'out'} 486# FIXME: G2 for Firestone.. Witherspoon: no 487#GPIO_CONFIG['CP1_DEVICES_RESET_N'] = \ 488# {'gpio_pin': 'A1', 'direction': 'out'} 489GPIO_CONFIG['BMC_CP0_PERST_ENABLE_R'] = \ 490 {'gpio_pin': 'A3', 'direction': 'out'} 491 492#FIXME: witherspoon: SOFT_FSI_CLK: AA0, SOFT_FSI_DAT: E0, see workbook fig.44 493GPIO_CONFIG['FSI_DATA'] = \ 494 {'gpio_pin': 'E0', 'direction': 'out'} 495GPIO_CONFIG['FSI_CLK'] = \ 496 {'gpio_pin': 'AA0', 'direction': 'out'} 497GPIO_CONFIG['FSI_ENABLE'] = \ 498 {'gpio_pin': 'D0', 'direction': 'out'} 499 500# FIXME: both witherspoon and garrison, gpioa6 is FSI_JMFG0_PRSNT_N 501GPIO_CONFIG['CRONUS_SEL'] = \ 502 {'gpio_pin': 'A6', 'direction': 'out'} 503 504# FIXME: ?? firestone gpioj3 is NC 505#GPIO_CONFIG['BMC_THROTTLE'] = \ 506# {'gpio_pin': 'J3', 'direction': 'out'} 507 508#FIXME: ?? witherspoon: FP_ID_BTN_N_R, firestone: PD_BMC_IDBTN_IN_OUT_N - it is not connected 509GPIO_CONFIG['IDBTN'] = \ 510 { 'gpio_pin': 'Q7', 'direction': 'out' } 511 512#FIXME: witherspoon: FP_PWR_BTN_N, firstone: NC_BMC_PWBTN_IN_N gpioe0 - not connected 513GPIO_CONFIG['POWER_BUTTON'] = \ 514 {'gpio_pin': 'I3', 'direction': 'both'} 515# witherspoon: BMC_NMIBTN_IN_N, firestone: BMC_NMIBTN_IN_N 516GPIO_CONFIG['RESET_BUTTON'] = \ 517 {'gpio_pin': 'J1', 'direction': 'both'} 518 519GPIO_CONFIG['PS0_PRES_N'] = \ 520 {'gpio_pin': 'P7', 'direction': 'in'} 521GPIO_CONFIG['PS1_PRES_N'] = \ 522 {'gpio_pin': 'N0', 'direction': 'in'} 523# witherspoon: CARD_PRES_N 524GPIO_CONFIG['CARD_PRES_N'] = \ 525 {'gpio_pin': 'I0', 'direction': 'in'} 526 527def convertGpio(name): 528 name = name.upper() 529 c = name[0:1] 530 offset = int(name[1:]) 531 a = ord(c)-65 532 base = a*8+GPIO_BASE 533 return base+offset 534 535 536HWMON_CONFIG = { 537 '4-0050' : { 538 'names' : { 539 'caps_curr_powercap' : { 'object_path' : 'powercap/curr_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 540 'caps_curr_powerreading' : { 'object_path' : 'powercap/system_power','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 541 'caps_max_powercap' : { 'object_path' : 'powercap/max_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 542 'caps_min_powercap' : { 'object_path' : 'powercap/min_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 543 'caps_norm_powercap' : { 'object_path' : 'powercap/n_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 544 'caps_user_powerlimit' : { 'object_path' : 'powercap/user_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 545 }, 546 'labels' : { 547 '176' : { 'object_path' : 'temperature/cpu0/core0','poll_interval' : 5000,'scale' : -3,'units' : 'C', 548 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 549 '177' : { 'object_path' : 'temperature/cpu0/core1','poll_interval' : 5000,'scale' : -3,'units' : 'C', 550 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 551 '178' : { 'object_path' : 'temperature/cpu0/core2','poll_interval' : 5000,'scale' : -3,'units' : 'C', 552 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 553 '179' : { 'object_path' : 'temperature/cpu0/core3','poll_interval' : 5000,'scale' : -3,'units' : 'C', 554 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 555 '180' : { 'object_path' : 'temperature/cpu0/core4','poll_interval' : 5000,'scale' : -3,'units' : 'C', 556 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 557 '181' : { 'object_path' : 'temperature/cpu0/core5','poll_interval' : 5000,'scale' : -3,'units' : 'C', 558 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 559 '182' : { 'object_path' : 'temperature/cpu0/core6','poll_interval' : 5000,'scale' : -3,'units' : 'C', 560 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 561 '183' : { 'object_path' : 'temperature/cpu0/core7','poll_interval' : 5000,'scale' : -3,'units' : 'C', 562 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 563 '184' : { 'object_path' : 'temperature/cpu0/core8','poll_interval' : 5000,'scale' : -3,'units' : 'C', 564 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 565 '185' : { 'object_path' : 'temperature/cpu0/core9','poll_interval' : 5000,'scale' : -3,'units' : 'C', 566 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 567 '186' : { 'object_path' : 'temperature/cpu0/core10','poll_interval' : 5000,'scale' : -3,'units' : 'C', 568 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 569 '187' : { 'object_path' : 'temperature/cpu0/core11','poll_interval' : 5000,'scale' : -3,'units' : 'C', 570 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 571 '102' : { 'object_path' : 'temperature/dimm0','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 572 '103' : { 'object_path' : 'temperature/dimm1','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 573 '104' : { 'object_path' : 'temperature/dimm2','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 574 '105' : { 'object_path' : 'temperature/dimm3','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 575 '106' : { 'object_path' : 'temperature/dimm4','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 576 '107' : { 'object_path' : 'temperature/dimm5','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 577 '108' : { 'object_path' : 'temperature/dimm6','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 578 '109' : { 'object_path' : 'temperature/dimm7','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 579 '110' : { 'object_path' : 'temperature/dimm8','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 580 '111' : { 'object_path' : 'temperature/dimm9','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 581 '112' : { 'object_path' : 'temperature/dimm10','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 582 '113' : { 'object_path' : 'temperature/dimm11','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 583 '114' : { 'object_path' : 'temperature/dimm12','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 584 '115' : { 'object_path' : 'temperature/dimm13','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 585 '116' : { 'object_path' : 'temperature/dimm14','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 586 '117' : { 'object_path' : 'temperature/dimm15','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 587 '94' : { 'object_path' : 'temperature/membuf0','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 588 '95' : { 'object_path' : 'temperature/membuf1','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 589 '96' : { 'object_path' : 'temperature/membuf2','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 590 '97' : { 'object_path' : 'temperature/membuf3','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 591 } 592 }, 593 '5-0050' : { 594 'labels' : { 595 '188' : { 'object_path' : 'temperature/cpu1/core0','poll_interval' : 5000,'scale' : -3,'units' : 'C', 596 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 597 '189' : { 'object_path' : 'temperature/cpu1/core1','poll_interval' : 5000,'scale' : -3,'units' : 'C', 598 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 599 '190' : { 'object_path' : 'temperature/cpu1/core2','poll_interval' : 5000,'scale' : -3,'units' : 'C', 600 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 601 '191' : { 'object_path' : 'temperature/cpu1/core3','poll_interval' : 5000,'scale' : -3,'units' : 'C', 602 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 603 '192' : { 'object_path' : 'temperature/cpu1/core4','poll_interval' : 5000,'scale' : -3,'units' : 'C', 604 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 605 '193' : { 'object_path' : 'temperature/cpu1/core5','poll_interval' : 5000,'scale' : -3,'units' : 'C', 606 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 607 '194' : { 'object_path' : 'temperature/cpu1/core6','poll_interval' : 5000,'scale' : -3,'units' : 'C', 608 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 609 '195' : { 'object_path' : 'temperature/cpu1/core7','poll_interval' : 5000,'scale' : -3,'units' : 'C', 610 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 611 '196' : { 'object_path' : 'temperature/cpu1/core8','poll_interval' : 5000,'scale' : -3,'units' : 'C', 612 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 613 '197' : { 'object_path' : 'temperature/cpu1/core9','poll_interval' : 5000,'scale' : -3,'units' : 'C', 614 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 615 '198' : { 'object_path' : 'temperature/cpu1/core10','poll_interval' : 5000,'scale' : -3,'units' : 'C', 616 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 617 '199' : { 'object_path' : 'temperature/cpu1/core11','poll_interval' : 5000,'scale' : -3,'units' : 'C', 618 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 619 '118' : { 'object_path' : 'temperature/dimm16','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 620 '119' : { 'object_path' : 'temperature/dimm17','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 621 '120' : { 'object_path' : 'temperature/dimm18','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 622 '121' : { 'object_path' : 'temperature/dimm19','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 623 '122' : { 'object_path' : 'temperature/dimm20','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 624 '123' : { 'object_path' : 'temperature/dimm21','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 625 '124' : { 'object_path' : 'temperature/dimm22','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 626 '125' : { 'object_path' : 'temperature/dimm23','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 627 '126' : { 'object_path' : 'temperature/dimm24','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 628 '127' : { 'object_path' : 'temperature/dimm25','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 629 '128' : { 'object_path' : 'temperature/dimm26','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 630 '129' : { 'object_path' : 'temperature/dimm27','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 631 '130' : { 'object_path' : 'temperature/dimm28','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 632 '131' : { 'object_path' : 'temperature/dimm29','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 633 '132' : { 'object_path' : 'temperature/dimm30','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 634 '133' : { 'object_path' : 'temperature/dimm31','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 635 '98' : { 'object_path' : 'temperature/membuf4','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 636 '99' : { 'object_path' : 'temperature/membuf5','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 637 '100' : { 'object_path' : 'temperature/membuf6','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 638 '101' : { 'object_path' : 'temperature/membuf7','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 639 } 640 }, 641} 642 643# Miscellaneous non-poll sensor with system specific properties. 644# The sensor id is the same as those defined in ID_LOOKUP['SENSOR']. 645MISC_SENSORS = { 646 0x5f : { 'class' : 'BootCountSensor' }, 647 0x05 : { 'class' : 'BootProgressSensor' }, 648 0x08 : { 'class' : 'OccStatusSensor', 649 'os_path' : '/sys/class/i2c-adapter/i2c-3/3-0050/online' }, 650 0x09 : { 'class' : 'OccStatusSensor', 651 'os_path' : '/sys/class/i2c-adapter/i2c-3/3-0051/online' }, 652 0xb5 : { 'class' : 'OperatingSystemStatusSensor' }, 653 0xb3 : { 'class' : 'PowerCap', 654 'os_path' : '/sys/class/hwmon/hwmon3/user_powercap' }, 655} 656