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