140a360c2SBrad Bishop## System states 240a360c2SBrad Bishop## state can change to next state in 2 ways: 340a360c2SBrad Bishop## - a process emits a GotoSystemState signal with state name to goto 440a360c2SBrad Bishop## - objects specified in EXIT_STATE_DEPEND have started 540a360c2SBrad BishopSYSTEM_STATES = [ 640a360c2SBrad Bishop 'BASE_APPS', 740a360c2SBrad Bishop 'BMC_STARTING', 840a360c2SBrad Bishop 'BMC_STARTING2', 940a360c2SBrad Bishop 'BMC_READY', 1040a360c2SBrad Bishop 'HOST_POWERING_ON', 1140a360c2SBrad Bishop 'HOST_POWERED_ON', 1240a360c2SBrad Bishop 'INVENTORY_UPLOADED', 1340a360c2SBrad Bishop 'HOST_BOOTING', 1440a360c2SBrad Bishop 'HOST_BOOTED', 1540a360c2SBrad Bishop 'HOST_POWERED_OFF', 1640a360c2SBrad Bishop] 1740a360c2SBrad Bishop 1840a360c2SBrad BishopEXIT_STATE_DEPEND = { 1940a360c2SBrad Bishop 'BASE_APPS' : { 2040a360c2SBrad Bishop '/org/openbmc/sensors': 0, 2140a360c2SBrad Bishop }, 2240a360c2SBrad Bishop 'BMC_STARTING' : { 2340a360c2SBrad Bishop '/org/openbmc/control/power0' : 0, 2440a360c2SBrad Bishop '/org/openbmc/control/host0' : 0, 2540a360c2SBrad Bishop '/org/openbmc/control/flash/bios' : 0, 2640a360c2SBrad Bishop '/org/openbmc/sensors/speed/fan5': 0, 2740a360c2SBrad Bishop '/org/openbmc/inventory/system/chassis/io_board' : 0, 2840a360c2SBrad Bishop }, 2940a360c2SBrad Bishop 'BMC_STARTING2' : { 3040a360c2SBrad Bishop '/org/openbmc/control/fans' : 0, 3140a360c2SBrad Bishop '/org/openbmc/control/chassis0': 0, 3240a360c2SBrad Bishop }, 3340a360c2SBrad Bishop} 3440a360c2SBrad Bishop 3540a360c2SBrad BishopFRU_INSTANCES = { 3640a360c2SBrad Bishop '<inventory_root>/system' : { 'fru_type' : 'SYSTEM','is_fru' : True, 'present' : "True" }, 3740a360c2SBrad Bishop '<inventory_root>/system/bios' : { 'fru_type' : 'SYSTEM','is_fru' : True, 'present' : "True" }, 3840a360c2SBrad Bishop '<inventory_root>/system/misc' : { 'fru_type' : 'SYSTEM','is_fru' : False, }, 3940a360c2SBrad Bishop 4040a360c2SBrad Bishop '<inventory_root>/system/chassis' : { 'fru_type' : 'SYSTEM','is_fru' : True, 'present' : "True" }, 4140a360c2SBrad Bishop 4240a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard' : { 'fru_type' : 'MAIN_PLANAR','is_fru' : True, }, 4340a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board' : { 'fru_type' : 'DAUGHTER_CARD','is_fru' : True, }, 4440a360c2SBrad Bishop '<inventory_root>/system/chassis/sas_expander' : { 'fru_type' : 'DAUGHTER_CARD','is_fru' : True, }, 4540a360c2SBrad Bishop '<inventory_root>/system/chassis/hdd_backplane' : { 'fru_type' : 'DAUGHTER_CARD','is_fru' : True, }, 4640a360c2SBrad Bishop 4740a360c2SBrad Bishop '<inventory_root>/system/systemevent' : { 'fru_type' : 'SYSTEM_EVENT', 'is_fru' : False, }, 4840a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/refclock' : { 'fru_type' : 'MAIN_PLANAR', 'is_fru' : False, }, 4940a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/pcieclock': { 'fru_type' : 'MAIN_PLANAR', 'is_fru' : False, }, 5040a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/todclock' : { 'fru_type' : 'MAIN_PLANAR', 'is_fru' : False, }, 5140a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/apss' : { 'fru_type' : 'MAIN_PLANAR', 'is_fru' : False, }, 5240a360c2SBrad Bishop 5340a360c2SBrad Bishop '<inventory_root>/system/chassis/fan0' : { 'fru_type' : 'FAN','is_fru' : True, }, 5440a360c2SBrad Bishop '<inventory_root>/system/chassis/fan1' : { 'fru_type' : 'FAN','is_fru' : True, }, 5540a360c2SBrad Bishop '<inventory_root>/system/chassis/fan2' : { 'fru_type' : 'FAN','is_fru' : True, }, 5640a360c2SBrad Bishop '<inventory_root>/system/chassis/fan3' : { 'fru_type' : 'FAN','is_fru' : True, }, 5740a360c2SBrad Bishop '<inventory_root>/system/chassis/fan4' : { 'fru_type' : 'FAN','is_fru' : True, }, 5840a360c2SBrad Bishop '<inventory_root>/system/chassis/fan5' : { 'fru_type' : 'FAN','is_fru' : True, }, 5940a360c2SBrad Bishop 6040a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/bmc' : { 'fru_type' : 'BMC','is_fru' : False, 'manufacturer' : 'ASPEED' }, 6140a360c2SBrad Bishop 6240a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0' : { 'fru_type' : 'CPU', 'is_fru' : True, }, 6340a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1' : { 'fru_type' : 'CPU', 'is_fru' : True, }, 6440a360c2SBrad Bishop 6540a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core0' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 6640a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core1' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 6740a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core2' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 6840a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core3' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 6940a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core4' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 7040a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core5' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 7140a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core6' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 7240a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core7' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 7340a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core8' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 7440a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core9' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 7540a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core10': { 'fru_type' : 'CORE', 'is_fru' : False, }, 7640a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu0/core11': { 'fru_type' : 'CORE', 'is_fru' : False, }, 7740a360c2SBrad Bishop 7840a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core0' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 7940a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core1' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8040a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core2' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8140a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core3' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8240a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core4' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8340a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core5' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8440a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core6' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8540a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core7' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8640a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core8' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8740a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core9' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8840a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core10' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 8940a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/cpu1/core11' : { 'fru_type' : 'CORE', 'is_fru' : False, }, 9040a360c2SBrad Bishop 9140a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/membuf0' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 9240a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/membuf1' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 9340a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/membuf2' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 9440a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/membuf3' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 9540a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/membuf4' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 9640a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/membuf5' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 9740a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/membuf6' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 9840a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/membuf7' : { 'fru_type' : 'MEMORY_BUFFER', 'is_fru' : False, }, 9940a360c2SBrad Bishop 10040a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm0' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10140a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm1' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10240a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm2' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10340a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm3' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10440a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm4' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10540a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm5' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10640a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm6' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10740a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm7' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10840a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm8' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 10940a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm9' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11040a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm10' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11140a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm11' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11240a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm12' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11340a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm13' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11440a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm14' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11540a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm15' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11640a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm16' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11740a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm17' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11840a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm18' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 11940a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm19' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12040a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm20' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12140a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm21' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12240a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm22' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12340a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm23' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12440a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm24' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12540a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm25' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12640a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm26' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12740a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm27' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12840a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm28' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 12940a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm29' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 13040a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm30' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 13140a360c2SBrad Bishop '<inventory_root>/system/chassis/motherboard/dimm31' : { 'fru_type' : 'DIMM', 'is_fru' : True,}, 13240a360c2SBrad Bishop 13340a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board/pcie_slot0_riser' : { 'fru_type' : 'PCIE_RISER', 'is_fru' : True,}, 13440a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board/pcie_slot1_riser' : { 'fru_type' : 'PCIE_RISER', 'is_fru' : True,}, 13540a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board/pcie_slot2_riser' : { 'fru_type' : 'PCIE_RISER', 'is_fru' : True,}, 13640a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board/pcie_slot0' : { 'fru_type' : 'PCIE_CARD', 'is_fru' : True,}, 13740a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board/pcie_slot1' : { 'fru_type' : 'PCIE_CARD', 'is_fru' : True,}, 13840a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board/pcie_slot2' : { 'fru_type' : 'PCIE_CARD', 'is_fru' : True,}, 13940a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board/pcie_mezz0' : { 'fru_type' : 'PCIE_CARD', 'is_fru' : True,}, 14040a360c2SBrad Bishop '<inventory_root>/system/chassis/io_board/pcie_mezz1' : { 'fru_type' : 'PCIE_CARD', 'is_fru' : True,}, 14140a360c2SBrad Bishop} 14240a360c2SBrad Bishop 14340a360c2SBrad BishopID_LOOKUP = { 14440a360c2SBrad Bishop 'FRU' : { 14540a360c2SBrad Bishop 0x03 : '<inventory_root>/system/chassis/motherboard', 14640a360c2SBrad Bishop 0x40 : '<inventory_root>/system/chassis/io_board', 14740a360c2SBrad Bishop 0x01 : '<inventory_root>/system/chassis/motherboard/cpu0', 14840a360c2SBrad Bishop 0x02 : '<inventory_root>/system/chassis/motherboard/cpu1', 14940a360c2SBrad Bishop 0x04 : '<inventory_root>/system/chassis/motherboard/membuf0', 15040a360c2SBrad Bishop 0x05 : '<inventory_root>/system/chassis/motherboard/membuf1', 15140a360c2SBrad Bishop 0x06 : '<inventory_root>/system/chassis/motherboard/membuf2', 15240a360c2SBrad Bishop 0x07 : '<inventory_root>/system/chassis/motherboard/membuf3', 15340a360c2SBrad Bishop 0x08 : '<inventory_root>/system/chassis/motherboard/membuf4', 15440a360c2SBrad Bishop 0x09 : '<inventory_root>/system/chassis/motherboard/membuf5', 15540a360c2SBrad Bishop 0x0a : '<inventory_root>/system/chassis/motherboard/membuf6', 15640a360c2SBrad Bishop 0x0b : '<inventory_root>/system/chassis/motherboard/membuf7', 15740a360c2SBrad Bishop 0x0c : '<inventory_root>/system/chassis/motherboard/dimm0', 15840a360c2SBrad Bishop 0x0d : '<inventory_root>/system/chassis/motherboard/dimm1', 15940a360c2SBrad Bishop 0x0e : '<inventory_root>/system/chassis/motherboard/dimm2', 16040a360c2SBrad Bishop 0x0f : '<inventory_root>/system/chassis/motherboard/dimm3', 16140a360c2SBrad Bishop 0x10 : '<inventory_root>/system/chassis/motherboard/dimm4', 16240a360c2SBrad Bishop 0x11 : '<inventory_root>/system/chassis/motherboard/dimm5', 16340a360c2SBrad Bishop 0x12 : '<inventory_root>/system/chassis/motherboard/dimm6', 16440a360c2SBrad Bishop 0x13 : '<inventory_root>/system/chassis/motherboard/dimm7', 16540a360c2SBrad Bishop 0x14 : '<inventory_root>/system/chassis/motherboard/dimm8', 16640a360c2SBrad Bishop 0x15 : '<inventory_root>/system/chassis/motherboard/dimm9', 16740a360c2SBrad Bishop 0x16 : '<inventory_root>/system/chassis/motherboard/dimm10', 16840a360c2SBrad Bishop 0x17 : '<inventory_root>/system/chassis/motherboard/dimm11', 16940a360c2SBrad Bishop 0x18 : '<inventory_root>/system/chassis/motherboard/dimm12', 17040a360c2SBrad Bishop 0x19 : '<inventory_root>/system/chassis/motherboard/dimm13', 17140a360c2SBrad Bishop 0x1a : '<inventory_root>/system/chassis/motherboard/dimm14', 17240a360c2SBrad Bishop 0x1b : '<inventory_root>/system/chassis/motherboard/dimm15', 17340a360c2SBrad Bishop 0x1c : '<inventory_root>/system/chassis/motherboard/dimm16', 17440a360c2SBrad Bishop 0x1d : '<inventory_root>/system/chassis/motherboard/dimm17', 17540a360c2SBrad Bishop 0x1e : '<inventory_root>/system/chassis/motherboard/dimm18', 17640a360c2SBrad Bishop 0x1f : '<inventory_root>/system/chassis/motherboard/dimm19', 17740a360c2SBrad Bishop 0x20 : '<inventory_root>/system/chassis/motherboard/dimm20', 17840a360c2SBrad Bishop 0x21 : '<inventory_root>/system/chassis/motherboard/dimm21', 17940a360c2SBrad Bishop 0x22 : '<inventory_root>/system/chassis/motherboard/dimm22', 18040a360c2SBrad Bishop 0x23 : '<inventory_root>/system/chassis/motherboard/dimm23', 18140a360c2SBrad Bishop 0x24 : '<inventory_root>/system/chassis/motherboard/dimm24', 18240a360c2SBrad Bishop 0x25 : '<inventory_root>/system/chassis/motherboard/dimm25', 18340a360c2SBrad Bishop 0x26 : '<inventory_root>/system/chassis/motherboard/dimm26', 18440a360c2SBrad Bishop 0x27 : '<inventory_root>/system/chassis/motherboard/dimm27', 18540a360c2SBrad Bishop 0x28 : '<inventory_root>/system/chassis/motherboard/dimm28', 18640a360c2SBrad Bishop 0x29 : '<inventory_root>/system/chassis/motherboard/dimm29', 18740a360c2SBrad Bishop 0x2a : '<inventory_root>/system/chassis/motherboard/dimm30', 18840a360c2SBrad Bishop 0x2b : '<inventory_root>/system/chassis/motherboard/dimm31', 18940a360c2SBrad Bishop 0x33 : '<inventory_root>/system', 19040a360c2SBrad Bishop }, 19140a360c2SBrad Bishop 'FRU_STR' : { 19240a360c2SBrad Bishop 'PRODUCT_0' : '<inventory_root>/system/bios', 19340a360c2SBrad Bishop 'BOARD_3' : '<inventory_root>/system/misc', 19440a360c2SBrad Bishop 'PRODUCT_51' : '<inventory_root>/system/misc', 19540a360c2SBrad Bishop 'BOARD_100' : '<inventory_root>/system/chassis/io_board', 19640a360c2SBrad Bishop 'BOARD_101' : '<inventory_root>/system/chassis/sas_expander', 19740a360c2SBrad Bishop 'BOARD_102' : '<inventory_root>/system/chassis/hdd_backplane', 19840a360c2SBrad Bishop 'CHASSIS_3' : '<inventory_root>/system/chassis/motherboard', 19940a360c2SBrad Bishop 'BOARD_1' : '<inventory_root>/system/chassis/motherboard/cpu0', 20040a360c2SBrad Bishop 'BOARD_2' : '<inventory_root>/system/chassis/motherboard/cpu1', 20140a360c2SBrad Bishop 'BOARD_4' : '<inventory_root>/system/chassis/motherboard/membuf0', 20240a360c2SBrad Bishop 'BOARD_5' : '<inventory_root>/system/chassis/motherboard/membuf1', 20340a360c2SBrad Bishop 'BOARD_6' : '<inventory_root>/system/chassis/motherboard/membuf2', 20440a360c2SBrad Bishop 'BOARD_7' : '<inventory_root>/system/chassis/motherboard/membuf3', 20540a360c2SBrad Bishop 'BOARD_8' : '<inventory_root>/system/chassis/motherboard/membuf4', 20640a360c2SBrad Bishop 'BOARD_9' : '<inventory_root>/system/chassis/motherboard/membuf5', 20740a360c2SBrad Bishop 'BOARD_10' : '<inventory_root>/system/chassis/motherboard/membuf6', 20840a360c2SBrad Bishop 'BOARD_11' : '<inventory_root>/system/chassis/motherboard/membuf7', 20940a360c2SBrad Bishop 'PRODUCT_12' : '<inventory_root>/system/chassis/motherboard/dimm0', 21040a360c2SBrad Bishop 'PRODUCT_13' : '<inventory_root>/system/chassis/motherboard/dimm1', 21140a360c2SBrad Bishop 'PRODUCT_14' : '<inventory_root>/system/chassis/motherboard/dimm2', 21240a360c2SBrad Bishop 'PRODUCT_15' : '<inventory_root>/system/chassis/motherboard/dimm3', 21340a360c2SBrad Bishop 'PRODUCT_16' : '<inventory_root>/system/chassis/motherboard/dimm4', 21440a360c2SBrad Bishop 'PRODUCT_17' : '<inventory_root>/system/chassis/motherboard/dimm5', 21540a360c2SBrad Bishop 'PRODUCT_18' : '<inventory_root>/system/chassis/motherboard/dimm6', 21640a360c2SBrad Bishop 'PRODUCT_19' : '<inventory_root>/system/chassis/motherboard/dimm7', 21740a360c2SBrad Bishop 'PRODUCT_20' : '<inventory_root>/system/chassis/motherboard/dimm8', 21840a360c2SBrad Bishop 'PRODUCT_21' : '<inventory_root>/system/chassis/motherboard/dimm9', 21940a360c2SBrad Bishop 'PRODUCT_22' : '<inventory_root>/system/chassis/motherboard/dimm10', 22040a360c2SBrad Bishop 'PRODUCT_23' : '<inventory_root>/system/chassis/motherboard/dimm11', 22140a360c2SBrad Bishop 'PRODUCT_24' : '<inventory_root>/system/chassis/motherboard/dimm12', 22240a360c2SBrad Bishop 'PRODUCT_25' : '<inventory_root>/system/chassis/motherboard/dimm13', 22340a360c2SBrad Bishop 'PRODUCT_26' : '<inventory_root>/system/chassis/motherboard/dimm14', 22440a360c2SBrad Bishop 'PRODUCT_27' : '<inventory_root>/system/chassis/motherboard/dimm15', 22540a360c2SBrad Bishop 'PRODUCT_28' : '<inventory_root>/system/chassis/motherboard/dimm16', 22640a360c2SBrad Bishop 'PRODUCT_29' : '<inventory_root>/system/chassis/motherboard/dimm17', 22740a360c2SBrad Bishop 'PRODUCT_30' : '<inventory_root>/system/chassis/motherboard/dimm18', 22840a360c2SBrad Bishop 'PRODUCT_31' : '<inventory_root>/system/chassis/motherboard/dimm19', 22940a360c2SBrad Bishop 'PRODUCT_32' : '<inventory_root>/system/chassis/motherboard/dimm20', 23040a360c2SBrad Bishop 'PRODUCT_33' : '<inventory_root>/system/chassis/motherboard/dimm21', 23140a360c2SBrad Bishop 'PRODUCT_34' : '<inventory_root>/system/chassis/motherboard/dimm22', 23240a360c2SBrad Bishop 'PRODUCT_35' : '<inventory_root>/system/chassis/motherboard/dimm23', 23340a360c2SBrad Bishop 'PRODUCT_36' : '<inventory_root>/system/chassis/motherboard/dimm24', 23440a360c2SBrad Bishop 'PRODUCT_37' : '<inventory_root>/system/chassis/motherboard/dimm25', 23540a360c2SBrad Bishop 'PRODUCT_38' : '<inventory_root>/system/chassis/motherboard/dimm26', 23640a360c2SBrad Bishop 'PRODUCT_39' : '<inventory_root>/system/chassis/motherboard/dimm27', 23740a360c2SBrad Bishop 'PRODUCT_40' : '<inventory_root>/system/chassis/motherboard/dimm28', 23840a360c2SBrad Bishop 'PRODUCT_41' : '<inventory_root>/system/chassis/motherboard/dimm29', 23940a360c2SBrad Bishop 'PRODUCT_42' : '<inventory_root>/system/chassis/motherboard/dimm30', 24040a360c2SBrad Bishop 'PRODUCT_43' : '<inventory_root>/system/chassis/motherboard/dimm31', 24140a360c2SBrad Bishop }, 24240a360c2SBrad Bishop 'SENSOR' : { 24340a360c2SBrad Bishop 0x35 : '<inventory_root>/system/systemevent', 24440a360c2SBrad Bishop 0x36 : '<inventory_root>/system/powerlimit', 24540a360c2SBrad Bishop 0x34 : '<inventory_root>/system/chassis/motherboard', 24640a360c2SBrad Bishop 0x31 : '<inventory_root>/system/chassis/motherboard/pcielink', 24740a360c2SBrad Bishop 0x37 : '<inventory_root>/system/chassis/motherboard/refclock', 24840a360c2SBrad Bishop 0x38 : '<inventory_root>/system/chassis/motherboard/pcieclock', 24940a360c2SBrad Bishop 0x39 : '<inventory_root>/system/chassis/motherboard/todclock', 25040a360c2SBrad Bishop 0x3A : '<inventory_root>/system/chassis/motherboard/apss', 25140a360c2SBrad Bishop 0x0c : '<inventory_root>/system/chassis/motherboard/cpu0', 25240a360c2SBrad Bishop 0x0e : '<inventory_root>/system/chassis/motherboard/cpu1', 25340a360c2SBrad Bishop 0xc8 : '<inventory_root>/system/chassis/motherboard/cpu0/core0', 25440a360c2SBrad Bishop 0xc9 : '<inventory_root>/system/chassis/motherboard/cpu0/core1', 25540a360c2SBrad Bishop 0xca : '<inventory_root>/system/chassis/motherboard/cpu0/core2', 25640a360c2SBrad Bishop 0xcb : '<inventory_root>/system/chassis/motherboard/cpu0/core3', 25740a360c2SBrad Bishop 0xcc : '<inventory_root>/system/chassis/motherboard/cpu0/core4', 25840a360c2SBrad Bishop 0xcd : '<inventory_root>/system/chassis/motherboard/cpu0/core5', 25940a360c2SBrad Bishop 0xce : '<inventory_root>/system/chassis/motherboard/cpu0/core6', 26040a360c2SBrad Bishop 0xcf : '<inventory_root>/system/chassis/motherboard/cpu0/core7', 26140a360c2SBrad Bishop 0xd0 : '<inventory_root>/system/chassis/motherboard/cpu0/core8', 26240a360c2SBrad Bishop 0xd1 : '<inventory_root>/system/chassis/motherboard/cpu0/core9', 26340a360c2SBrad Bishop 0xd2 : '<inventory_root>/system/chassis/motherboard/cpu0/core10', 26440a360c2SBrad Bishop 0xd3 : '<inventory_root>/system/chassis/motherboard/cpu0/core11', 26540a360c2SBrad Bishop 0xd4 : '<inventory_root>/system/chassis/motherboard/cpu1/core0', 26640a360c2SBrad Bishop 0xd5 : '<inventory_root>/system/chassis/motherboard/cpu1/core1', 26740a360c2SBrad Bishop 0xd6 : '<inventory_root>/system/chassis/motherboard/cpu1/core2', 26840a360c2SBrad Bishop 0xd7 : '<inventory_root>/system/chassis/motherboard/cpu1/core3', 26940a360c2SBrad Bishop 0xd8 : '<inventory_root>/system/chassis/motherboard/cpu1/core4', 27040a360c2SBrad Bishop 0xd9 : '<inventory_root>/system/chassis/motherboard/cpu1/core5', 27140a360c2SBrad Bishop 0xda : '<inventory_root>/system/chassis/motherboard/cpu1/core6', 27240a360c2SBrad Bishop 0xdb : '<inventory_root>/system/chassis/motherboard/cpu1/core7', 27340a360c2SBrad Bishop 0xdc : '<inventory_root>/system/chassis/motherboard/cpu1/core8', 27440a360c2SBrad Bishop 0xdd : '<inventory_root>/system/chassis/motherboard/cpu1/core9', 27540a360c2SBrad Bishop 0xde : '<inventory_root>/system/chassis/motherboard/cpu1/core10', 27640a360c2SBrad Bishop 0xdf : '<inventory_root>/system/chassis/motherboard/cpu1/core11', 27740a360c2SBrad Bishop 0x40 : '<inventory_root>/system/chassis/motherboard/membuf0', 27840a360c2SBrad Bishop 0x41 : '<inventory_root>/system/chassis/motherboard/membuf1', 27940a360c2SBrad Bishop 0x42 : '<inventory_root>/system/chassis/motherboard/membuf2', 28040a360c2SBrad Bishop 0x43 : '<inventory_root>/system/chassis/motherboard/membuf3', 28140a360c2SBrad Bishop 0x44 : '<inventory_root>/system/chassis/motherboard/membuf4', 28240a360c2SBrad Bishop 0x45 : '<inventory_root>/system/chassis/motherboard/membuf5', 28340a360c2SBrad Bishop 0x46 : '<inventory_root>/system/chassis/motherboard/membuf6', 28440a360c2SBrad Bishop 0x47 : '<inventory_root>/system/chassis/motherboard/membuf7', 28540a360c2SBrad Bishop 0x10 : '<inventory_root>/system/chassis/motherboard/dimm0', 28640a360c2SBrad Bishop 0x11 : '<inventory_root>/system/chassis/motherboard/dimm1', 28740a360c2SBrad Bishop 0x12 : '<inventory_root>/system/chassis/motherboard/dimm2', 28840a360c2SBrad Bishop 0x13 : '<inventory_root>/system/chassis/motherboard/dimm3', 28940a360c2SBrad Bishop 0x14 : '<inventory_root>/system/chassis/motherboard/dimm4', 29040a360c2SBrad Bishop 0x15 : '<inventory_root>/system/chassis/motherboard/dimm5', 29140a360c2SBrad Bishop 0x16 : '<inventory_root>/system/chassis/motherboard/dimm6', 29240a360c2SBrad Bishop 0x17 : '<inventory_root>/system/chassis/motherboard/dimm7', 29340a360c2SBrad Bishop 0x18 : '<inventory_root>/system/chassis/motherboard/dimm8', 29440a360c2SBrad Bishop 0x19 : '<inventory_root>/system/chassis/motherboard/dimm9', 29540a360c2SBrad Bishop 0x1a : '<inventory_root>/system/chassis/motherboard/dimm10', 29640a360c2SBrad Bishop 0x1b : '<inventory_root>/system/chassis/motherboard/dimm11', 29740a360c2SBrad Bishop 0x1c : '<inventory_root>/system/chassis/motherboard/dimm12', 29840a360c2SBrad Bishop 0x1d : '<inventory_root>/system/chassis/motherboard/dimm13', 29940a360c2SBrad Bishop 0x1e : '<inventory_root>/system/chassis/motherboard/dimm14', 30040a360c2SBrad Bishop 0x1f : '<inventory_root>/system/chassis/motherboard/dimm15', 30140a360c2SBrad Bishop 0x20 : '<inventory_root>/system/chassis/motherboard/dimm16', 30240a360c2SBrad Bishop 0x21 : '<inventory_root>/system/chassis/motherboard/dimm17', 30340a360c2SBrad Bishop 0x22 : '<inventory_root>/system/chassis/motherboard/dimm18', 30440a360c2SBrad Bishop 0x23 : '<inventory_root>/system/chassis/motherboard/dimm19', 30540a360c2SBrad Bishop 0x24 : '<inventory_root>/system/chassis/motherboard/dimm20', 30640a360c2SBrad Bishop 0x25 : '<inventory_root>/system/chassis/motherboard/dimm21', 30740a360c2SBrad Bishop 0x26 : '<inventory_root>/system/chassis/motherboard/dimm22', 30840a360c2SBrad Bishop 0x27 : '<inventory_root>/system/chassis/motherboard/dimm23', 30940a360c2SBrad Bishop 0x28 : '<inventory_root>/system/chassis/motherboard/dimm24', 31040a360c2SBrad Bishop 0x29 : '<inventory_root>/system/chassis/motherboard/dimm25', 31140a360c2SBrad Bishop 0x2a : '<inventory_root>/system/chassis/motherboard/dimm26', 31240a360c2SBrad Bishop 0x2b : '<inventory_root>/system/chassis/motherboard/dimm27', 31340a360c2SBrad Bishop 0x2c : '<inventory_root>/system/chassis/motherboard/dimm28', 31440a360c2SBrad Bishop 0x2d : '<inventory_root>/system/chassis/motherboard/dimm29', 31540a360c2SBrad Bishop 0x2e : '<inventory_root>/system/chassis/motherboard/dimm30', 31640a360c2SBrad Bishop 0x2f : '<inventory_root>/system/chassis/motherboard/dimm31', 31740a360c2SBrad Bishop 0x09 : '/org/openbmc/sensors/host/BootCount', 31840a360c2SBrad Bishop 0x05 : '/org/openbmc/sensors/host/BootProgress', 31940a360c2SBrad Bishop 0x04 : '/org/openbmc/sensors/host/HostStatus', 32040a360c2SBrad Bishop 0x08 : '/org/openbmc/sensors/host/cpu0/OccStatus', 32140a360c2SBrad Bishop 0x0A : '/org/openbmc/sensors/host/cpu1/OccStatus', 32240a360c2SBrad Bishop 0x32 : '/org/openbmc/sensors/host/OperatingSystemStatus', 32340a360c2SBrad Bishop 0x33 : '/org/openbmc/sensors/host/powercap', 32440a360c2SBrad Bishop }, 32540a360c2SBrad Bishop 'GPIO_PRESENT' : { 32640a360c2SBrad Bishop 'SLOT0_RISER_PRESENT' : '<inventory_root>/system/chassis/io_board/pcie_slot0_riser', 32740a360c2SBrad Bishop 'SLOT1_RISER_PRESENT' : '<inventory_root>/system/chassis/io_board/pcie_slot1_riser', 32840a360c2SBrad Bishop 'SLOT2_RISER_PRESENT' : '<inventory_root>/system/chassis/io_board/pcie_slot2_riser', 32940a360c2SBrad Bishop 'SLOT0_PRESENT' : '<inventory_root>/system/chassis/io_board/pcie_slot0', 33040a360c2SBrad Bishop 'SLOT1_PRESENT' : '<inventory_root>/system/chassis/io_board/pcie_slot1', 33140a360c2SBrad Bishop 'SLOT2_PRESENT' : '<inventory_root>/system/chassis/io_board/pcie_slot2', 33240a360c2SBrad Bishop 'MEZZ0_PRESENT' : '<inventory_root>/system/chassis/io_board/pcie_mezz0', 33340a360c2SBrad Bishop 'MEZZ1_PRESENT' : '<inventory_root>/system/chassis/io_board/pcie_mezz1', 33440a360c2SBrad Bishop } 33540a360c2SBrad Bishop} 33640a360c2SBrad Bishop 33740a360c2SBrad BishopGPIO_CONFIG = {} 33840a360c2SBrad BishopGPIO_CONFIG['FSI_CLK'] = { 'gpio_pin': 'A4', 'direction': 'out' } 33940a360c2SBrad BishopGPIO_CONFIG['FSI_DATA'] = { 'gpio_pin': 'A5', 'direction': 'out' } 34040a360c2SBrad BishopGPIO_CONFIG['FSI_ENABLE'] = { 'gpio_pin': 'D0', 'direction': 'out' } 34140a360c2SBrad BishopGPIO_CONFIG['POWER_PIN'] = { 'gpio_pin': 'E1', 'direction': 'out' } 34240a360c2SBrad BishopGPIO_CONFIG['CRONUS_SEL'] = { 'gpio_pin': 'A6', 'direction': 'out' } 34340a360c2SBrad BishopGPIO_CONFIG['PGOOD'] = { 'gpio_pin': 'C7', 'direction': 'in' } 34440a360c2SBrad BishopGPIO_CONFIG['POWER_BUTTON'] = { 'gpio_pin': 'E0', 'direction': 'both' } 34540a360c2SBrad BishopGPIO_CONFIG['PCIE_RESET'] = { 'gpio_pin': 'B5', 'direction': 'out' } 34640a360c2SBrad BishopGPIO_CONFIG['USB_RESET'] = { 'gpio_pin': 'B6', 'direction': 'out' } 34740a360c2SBrad Bishop 34840a360c2SBrad BishopGPIO_CONFIG['IDBTN'] = { 'gpio_pin': 'Q7', 'direction': 'out' } 34940a360c2SBrad BishopGPIO_CONFIG['BMC_THROTTLE'] = { 'gpio_pin': 'J3', 'direction': 'out' } 35040a360c2SBrad BishopGPIO_CONFIG['RESET_BUTTON'] = { 'gpio_pin': 'E2', 'direction': 'both' } 35140a360c2SBrad BishopGPIO_CONFIG['CPLD_TCK'] = { 'gpio_pin': 'P0', 'direction': 'out' } 35240a360c2SBrad BishopGPIO_CONFIG['CPLD_TDO'] = { 'gpio_pin': 'P1', 'direction': 'out' } 35340a360c2SBrad BishopGPIO_CONFIG['CPLD_TDI'] = { 'gpio_pin': 'P2', 'direction': 'out' } 35440a360c2SBrad BishopGPIO_CONFIG['CPLD_TMS'] = { 'gpio_pin': 'P3', 'direction': 'out' } 355341c8c24SAdriana KobylakGPIO_CONFIG['CHECKSTOP'] = { 'gpio_pin': 'P5', 'direction': 'falling' } 35640a360c2SBrad Bishop 35740a360c2SBrad BishopGPIO_CONFIG['SLOT0_RISER_PRESENT'] = { 'gpio_pin': 'N0', 'direction': 'in' } 35840a360c2SBrad BishopGPIO_CONFIG['SLOT1_RISER_PRESENT'] = { 'gpio_pin': 'N1', 'direction': 'in' } 35940a360c2SBrad BishopGPIO_CONFIG['SLOT2_RISER_PRESENT'] = { 'gpio_pin': 'N2', 'direction': 'in' } 36040a360c2SBrad BishopGPIO_CONFIG['SLOT0_PRESENT'] = { 'gpio_pin': 'N3', 'direction': 'in' } 36140a360c2SBrad BishopGPIO_CONFIG['SLOT1_PRESENT'] = { 'gpio_pin': 'N4', 'direction': 'in' } 36240a360c2SBrad BishopGPIO_CONFIG['SLOT2_PRESENT'] = { 'gpio_pin': 'N5', 'direction': 'in' } 36340a360c2SBrad BishopGPIO_CONFIG['MEZZ0_PRESENT'] = { 'gpio_pin': 'O0', 'direction': 'in' } 36440a360c2SBrad BishopGPIO_CONFIG['MEZZ1_PRESENT'] = { 'gpio_pin': 'O1', 'direction': 'in' } 36540a360c2SBrad Bishop 36640a360c2SBrad BishopHWMON_CONFIG = { 36740a360c2SBrad Bishop '0-004a' : { 36840a360c2SBrad Bishop 'names' : { 369c14f6fecSEdward A. James 'temp1_input' : { 'object_path' : 'temperature/ambient','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 37040a360c2SBrad Bishop } 37140a360c2SBrad Bishop }, 372*25a2243eSLei YU '0-0068' : { 373*25a2243eSLei YU 'names' : { 374*25a2243eSLei YU 'temp1_input' : { 'object_path' : 'temperature/rtc','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 375*25a2243eSLei YU } 376*25a2243eSLei YU }, 37740a360c2SBrad Bishop '6-002d' : { 37840a360c2SBrad Bishop 'names' : { 37940a360c2SBrad Bishop 'pwm1' : { 'object_path' : 'speed/fan0','poll_interval' : 10000,'scale' : 1,'units' : '' }, 38040a360c2SBrad Bishop 'pwm2' : { 'object_path' : 'speed/fan1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 38140a360c2SBrad Bishop 'pwm3' : { 'object_path' : 'speed/fan2','poll_interval' : 10000,'scale' : 1,'units' : '' }, 3822f3213f9SYi Li 'fan1_input' : { 'object_path' : 'tach/fan5L','poll_interval' : 10000,'scale' : 1,'units' : '' }, 3832f3213f9SYi Li 'fan2_input' : { 'object_path' : 'tach/fan5H','poll_interval' : 10000,'scale' : 1,'units' : '' }, 3842f3213f9SYi Li 'fan3_input' : { 'object_path' : 'tach/fan4L','poll_interval' : 10000,'scale' : 1,'units' : '' }, 3852f3213f9SYi Li 'fan4_input' : { 'object_path' : 'tach/fan4H','poll_interval' : 10000,'scale' : 1,'units' : '' }, 3862f3213f9SYi Li 'fan5_input' : { 'object_path' : 'tach/fan3L','poll_interval' : 10000,'scale' : 1,'units' : '' }, 3872f3213f9SYi Li 'fan6_input' : { 'object_path' : 'tach/fan3H','poll_interval' : 10000,'scale' : 1,'units' : '' }, 38840a360c2SBrad Bishop 'in1_input' : { 'object_path' : 'voltage/P1V35_CPU0_BUF4','poll_interval' : 10000,'scale' : 1,'units' : '' }, 38940a360c2SBrad Bishop 'in2_input' : { 'object_path' : 'voltage/P0V9_CPU0_BUF1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39040a360c2SBrad Bishop 'in3_input' : { 'object_path' : 'voltage/P0V9_CPU0_BUF2','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39140a360c2SBrad Bishop 'in4_input' : { 'object_path' : 'voltage/P0V9_CPU0_BUF3','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39240a360c2SBrad Bishop 'in5_input' : { 'object_path' : 'voltage/P0V9_CPU0_BUF4','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39340a360c2SBrad Bishop 'in6_input' : { 'object_path' : 'voltage/P1V09_CPU0_BUF1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39440a360c2SBrad Bishop 'in7_input' : { 'object_path' : 'voltage/P1V09_CPU0_BUF2','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39540a360c2SBrad Bishop 'in8_input' : { 'object_path' : 'voltage/P1V09_CPU0_BUF3','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39640a360c2SBrad Bishop 'in9_input' : { 'object_path' : 'voltage/P1V09_CPU0_BUF4','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39740a360c2SBrad Bishop 'in10_input' : { 'object_path' : 'voltage/P0V97_CPU0','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39840a360c2SBrad Bishop 'in11_input' : { 'object_path' : 'voltage/P1V1_MEM0','poll_interval' : 10000,'scale' : 1,'units' : '' }, 39940a360c2SBrad Bishop 'in12_input' : { 'object_path' : 'voltage/P1V35_CPU0_BUF1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 40040a360c2SBrad Bishop 'in13_input' : { 'object_path' : 'voltage/P1V35_CPU0_BUF2','poll_interval' : 10000,'scale' : 1,'units' : '' }, 40140a360c2SBrad Bishop 'in14_input' : { 'object_path' : 'voltage/P1V35_CPU0_BUF3','poll_interval' : 10000,'scale' : 1,'units' : '' }, 40240a360c2SBrad Bishop } 40340a360c2SBrad Bishop }, 40440a360c2SBrad Bishop '6-002e' : { 40540a360c2SBrad Bishop 'names' : { 40640a360c2SBrad Bishop 'pwm1' : { 'object_path' : 'speed/fan3','poll_interval' : 10000,'scale' : 1,'units' : '' }, 40740a360c2SBrad Bishop 'pwm2' : { 'object_path' : 'speed/fan4','poll_interval' : 10000,'scale' : 1,'units' : '' }, 40840a360c2SBrad Bishop 'pwm3' : { 'object_path' : 'speed/fan5','poll_interval' : 10000,'scale' : 1,'units' : '' }, 4092f3213f9SYi Li 'fan1_input' : { 'object_path' : 'tach/fan2L','poll_interval' : 10000,'scale' : 1,'units' : '' }, 4102f3213f9SYi Li 'fan2_input' : { 'object_path' : 'tach/fan2H','poll_interval' : 10000,'scale' : 1,'units' : '' }, 4112f3213f9SYi Li 'fan3_input' : { 'object_path' : 'tach/fan1L','poll_interval' : 10000,'scale' : 1,'units' : '' }, 4122f3213f9SYi Li 'fan4_input' : { 'object_path' : 'tach/fan1H','poll_interval' : 10000,'scale' : 1,'units' : '' }, 4132f3213f9SYi Li 'fan5_input' : { 'object_path' : 'tach/fan0L','poll_interval' : 10000,'scale' : 1,'units' : '' }, 4142f3213f9SYi Li 'fan6_input' : { 'object_path' : 'tach/fan0H','poll_interval' : 10000,'scale' : 1,'units' : '' }, 41540a360c2SBrad Bishop 'in1_input' : { 'object_path' : 'voltage/P1V35_CPU1_BUF4','poll_interval' : 10000,'scale' : 1,'units' : '' }, 41640a360c2SBrad Bishop 'in2_input' : { 'object_path' : 'voltage/P0V9_CPU1_BUF1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 41740a360c2SBrad Bishop 'in3_input' : { 'object_path' : 'voltage/P0V9_CPU1_BUF2','poll_interval' : 10000,'scale' : 1,'units' : '' }, 41840a360c2SBrad Bishop 'in4_input' : { 'object_path' : 'voltage/P0V9_CPU1_BUF3','poll_interval' : 10000,'scale' : 1,'units' : '' }, 41940a360c2SBrad Bishop 'in5_input' : { 'object_path' : 'voltage/P0V9_CPU1_BUF4','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42040a360c2SBrad Bishop 'in6_input' : { 'object_path' : 'voltage/P1V09_CPU1_BUF1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42140a360c2SBrad Bishop 'in7_input' : { 'object_path' : 'voltage/P1V09_CPU1_BUF2','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42240a360c2SBrad Bishop 'in8_input' : { 'object_path' : 'voltage/P1V09_CPU1_BUF3','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42340a360c2SBrad Bishop 'in9_input' : { 'object_path' : 'voltage/P1V09_CPU1_BUF4','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42440a360c2SBrad Bishop 'in10_input' : { 'object_path' : 'voltage/P0V97_CPU1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42540a360c2SBrad Bishop 'in11_input' : { 'object_path' : 'voltage/P1V1_MEM1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42640a360c2SBrad Bishop 'in12_input' : { 'object_path' : 'voltage/P1V35_CPU1_BUF1','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42740a360c2SBrad Bishop 'in13_input' : { 'object_path' : 'voltage/P1V35_CPU1_BUF2','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42840a360c2SBrad Bishop 'in14_input' : { 'object_path' : 'voltage/P1V35_CPU1_BUF3','poll_interval' : 10000,'scale' : 1,'units' : '' }, 42940a360c2SBrad Bishop } 43040a360c2SBrad Bishop }, 43140a360c2SBrad Bishop '3-0050' : { 43240a360c2SBrad Bishop 'names' : { 43340a360c2SBrad Bishop 'caps_curr_powercap' : { 'object_path' : 'powercap/curr_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 43440a360c2SBrad Bishop 'caps_curr_powerreading' : { 'object_path' : 'powercap/system_power','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 43540a360c2SBrad Bishop 'caps_max_powercap' : { 'object_path' : 'powercap/max_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 43640a360c2SBrad Bishop 'caps_min_powercap' : { 'object_path' : 'powercap/min_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 43740a360c2SBrad Bishop 'caps_norm_powercap' : { 'object_path' : 'powercap/n_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 43840a360c2SBrad Bishop 'caps_user_powerlimit' : { 'object_path' : 'powercap/user_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' }, 43940a360c2SBrad Bishop }, 44040a360c2SBrad Bishop 'labels' : { 441c14f6fecSEdward A. James '176' : { 'object_path' : 'temperature/cpu0/core0','poll_interval' : 5000,'scale' : -3,'units' : 'C', 44240a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 443c14f6fecSEdward A. James '177' : { 'object_path' : 'temperature/cpu0/core1','poll_interval' : 5000,'scale' : -3,'units' : 'C', 44440a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 445c14f6fecSEdward A. James '178' : { 'object_path' : 'temperature/cpu0/core2','poll_interval' : 5000,'scale' : -3,'units' : 'C', 44640a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 447c14f6fecSEdward A. James '179' : { 'object_path' : 'temperature/cpu0/core3','poll_interval' : 5000,'scale' : -3,'units' : 'C', 44840a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 449c14f6fecSEdward A. James '180' : { 'object_path' : 'temperature/cpu0/core4','poll_interval' : 5000,'scale' : -3,'units' : 'C', 45040a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 451c14f6fecSEdward A. James '181' : { 'object_path' : 'temperature/cpu0/core5','poll_interval' : 5000,'scale' : -3,'units' : 'C', 45240a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 453c14f6fecSEdward A. James '182' : { 'object_path' : 'temperature/cpu0/core6','poll_interval' : 5000,'scale' : -3,'units' : 'C', 45440a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 455c14f6fecSEdward A. James '183' : { 'object_path' : 'temperature/cpu0/core7','poll_interval' : 5000,'scale' : -3,'units' : 'C', 45640a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 457c14f6fecSEdward A. James '184' : { 'object_path' : 'temperature/cpu0/core8','poll_interval' : 5000,'scale' : -3,'units' : 'C', 45840a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 459c14f6fecSEdward A. James '185' : { 'object_path' : 'temperature/cpu0/core9','poll_interval' : 5000,'scale' : -3,'units' : 'C', 46040a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 461c14f6fecSEdward A. James '186' : { 'object_path' : 'temperature/cpu0/core10','poll_interval' : 5000,'scale' : -3,'units' : 'C', 46240a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 463c14f6fecSEdward A. James '187' : { 'object_path' : 'temperature/cpu0/core11','poll_interval' : 5000,'scale' : -3,'units' : 'C', 46440a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 465c14f6fecSEdward A. James '102' : { 'object_path' : 'temperature/dimm0','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 466c14f6fecSEdward A. James '103' : { 'object_path' : 'temperature/dimm1','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 467c14f6fecSEdward A. James '104' : { 'object_path' : 'temperature/dimm2','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 468c14f6fecSEdward A. James '105' : { 'object_path' : 'temperature/dimm3','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 469c14f6fecSEdward A. James '106' : { 'object_path' : 'temperature/dimm4','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 470c14f6fecSEdward A. James '107' : { 'object_path' : 'temperature/dimm5','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 471c14f6fecSEdward A. James '108' : { 'object_path' : 'temperature/dimm6','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 472c14f6fecSEdward A. James '109' : { 'object_path' : 'temperature/dimm7','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 473c14f6fecSEdward A. James '110' : { 'object_path' : 'temperature/dimm8','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 474c14f6fecSEdward A. James '111' : { 'object_path' : 'temperature/dimm9','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 475c14f6fecSEdward A. James '112' : { 'object_path' : 'temperature/dimm10','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 476c14f6fecSEdward A. James '113' : { 'object_path' : 'temperature/dimm11','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 477c14f6fecSEdward A. James '114' : { 'object_path' : 'temperature/dimm12','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 478c14f6fecSEdward A. James '115' : { 'object_path' : 'temperature/dimm13','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 479c14f6fecSEdward A. James '116' : { 'object_path' : 'temperature/dimm14','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 480c14f6fecSEdward A. James '117' : { 'object_path' : 'temperature/dimm15','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 481c14f6fecSEdward A. James '94' : { 'object_path' : 'temperature/membuf0','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 482c14f6fecSEdward A. James '95' : { 'object_path' : 'temperature/membuf1','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 483c14f6fecSEdward A. James '96' : { 'object_path' : 'temperature/membuf2','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 484c14f6fecSEdward A. James '97' : { 'object_path' : 'temperature/membuf3','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 48540a360c2SBrad Bishop } 48640a360c2SBrad Bishop }, 48740a360c2SBrad Bishop '3-0051' : { 48840a360c2SBrad Bishop 'labels' : { 489c14f6fecSEdward A. James '188' : { 'object_path' : 'temperature/cpu1/core0','poll_interval' : 5000,'scale' : -3,'units' : 'C', 49040a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 491c14f6fecSEdward A. James '189' : { 'object_path' : 'temperature/cpu1/core1','poll_interval' : 5000,'scale' : -3,'units' : 'C', 49240a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 493c14f6fecSEdward A. James '190' : { 'object_path' : 'temperature/cpu1/core2','poll_interval' : 5000,'scale' : -3,'units' : 'C', 49440a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 495c14f6fecSEdward A. James '191' : { 'object_path' : 'temperature/cpu1/core3','poll_interval' : 5000,'scale' : -3,'units' : 'C', 49640a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 497c14f6fecSEdward A. James '192' : { 'object_path' : 'temperature/cpu1/core4','poll_interval' : 5000,'scale' : -3,'units' : 'C', 49840a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 499c14f6fecSEdward A. James '193' : { 'object_path' : 'temperature/cpu1/core5','poll_interval' : 5000,'scale' : -3,'units' : 'C', 50040a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 501c14f6fecSEdward A. James '194' : { 'object_path' : 'temperature/cpu1/core6','poll_interval' : 5000,'scale' : -3,'units' : 'C', 50240a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 503c14f6fecSEdward A. James '195' : { 'object_path' : 'temperature/cpu1/core7','poll_interval' : 5000,'scale' : -3,'units' : 'C', 50440a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 505c14f6fecSEdward A. James '196' : { 'object_path' : 'temperature/cpu1/core8','poll_interval' : 5000,'scale' : -3,'units' : 'C', 50640a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 507c14f6fecSEdward A. James '197' : { 'object_path' : 'temperature/cpu1/core9','poll_interval' : 5000,'scale' : -3,'units' : 'C', 50840a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 509c14f6fecSEdward A. James '198' : { 'object_path' : 'temperature/cpu1/core10','poll_interval' : 5000,'scale' : -3,'units' : 'C', 51040a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 511c14f6fecSEdward A. James '199' : { 'object_path' : 'temperature/cpu1/core11','poll_interval' : 5000,'scale' : -3,'units' : 'C', 51240a360c2SBrad Bishop 'critical_upper' : 100, 'critical_lower' : -100, 'warning_upper' : 90, 'warning_lower' : -99, 'emergency_enabled' : True }, 513c14f6fecSEdward A. James '118' : { 'object_path' : 'temperature/dimm16','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 514c14f6fecSEdward A. James '119' : { 'object_path' : 'temperature/dimm17','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 515c14f6fecSEdward A. James '120' : { 'object_path' : 'temperature/dimm18','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 516c14f6fecSEdward A. James '121' : { 'object_path' : 'temperature/dimm19','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 517c14f6fecSEdward A. James '122' : { 'object_path' : 'temperature/dimm20','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 518c14f6fecSEdward A. James '123' : { 'object_path' : 'temperature/dimm21','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 519c14f6fecSEdward A. James '124' : { 'object_path' : 'temperature/dimm22','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 520c14f6fecSEdward A. James '125' : { 'object_path' : 'temperature/dimm23','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 521c14f6fecSEdward A. James '126' : { 'object_path' : 'temperature/dimm24','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 522c14f6fecSEdward A. James '127' : { 'object_path' : 'temperature/dimm25','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 523c14f6fecSEdward A. James '128' : { 'object_path' : 'temperature/dimm26','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 524c14f6fecSEdward A. James '129' : { 'object_path' : 'temperature/dimm27','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 525c14f6fecSEdward A. James '130' : { 'object_path' : 'temperature/dimm28','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 526c14f6fecSEdward A. James '131' : { 'object_path' : 'temperature/dimm29','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 527c14f6fecSEdward A. James '132' : { 'object_path' : 'temperature/dimm30','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 528c14f6fecSEdward A. James '133' : { 'object_path' : 'temperature/dimm31','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 529c14f6fecSEdward A. James '98' : { 'object_path' : 'temperature/membuf4','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 530c14f6fecSEdward A. James '99' : { 'object_path' : 'temperature/membuf5','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 531c14f6fecSEdward A. James '100' : { 'object_path' : 'temperature/membuf6','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 532c14f6fecSEdward A. James '101' : { 'object_path' : 'temperature/membuf7','poll_interval' : 5000,'scale' : -3,'units' : 'C' }, 53340a360c2SBrad Bishop } 53440a360c2SBrad Bishop }, 53540a360c2SBrad Bishop '4-0010' : { 53640a360c2SBrad Bishop 'names' : { 53740a360c2SBrad Bishop # Barreleye uses 0.25 millioohms sense resistor for adm1278 53840a360c2SBrad Bishop # To convert Iout register value Y to real-world value X, use an equation: 53940a360c2SBrad Bishop # X= 1/m * (Y * 10^-R - b), here m = 800 * R_sense, and R_sense is expressed in milliohms. 540c14f6fecSEdward A. James # The adm1278 driver did the conversion. 541c14f6fecSEdward A. James # We need to convert to the base unit from mA/mV. Scale is an exponent (10^x) 542c14f6fecSEdward A. James 'curr1_input' : { 'object_path' : 'HSCA/Iout','poll_interval' : 5000,'adjust' : 0.25,'scale' : -3,'units' : 'A' }, 543c14f6fecSEdward A. James 'in2_input' : { 'object_path' : 'HSCA/Vout','poll_interval' : 5000,'scale' : -3,'units' : 'V' }, 54440a360c2SBrad Bishop } 54540a360c2SBrad Bishop }, 54640a360c2SBrad Bishop '5-0010' : { 54740a360c2SBrad Bishop 'names' : { 548c14f6fecSEdward A. James 'curr1_input' : { 'object_path' : 'HSCB/Iout','poll_interval' : 5000,'adjust' : 0.25,'scale' : -3,'units' : 'A' }, 549c14f6fecSEdward A. James 'in2_input' : { 'object_path' : 'HSCB/Vout','poll_interval' : 5000,'scale' : -3,'units' : 'V' }, 55040a360c2SBrad Bishop } 55140a360c2SBrad Bishop }, 55240a360c2SBrad Bishop '6-0010' : { 55340a360c2SBrad Bishop 'names' : { 554c14f6fecSEdward A. James 'curr1_input' : { 'object_path' : 'HSCC/Iout','poll_interval' : 5000,'adjust' : 0.25,'scale' : -3,'units' : 'A' }, 555c14f6fecSEdward A. James 'in2_input' : { 'object_path' : 'HSCC/Vout','poll_interval' : 5000,'scale' : -3,'units' : 'V' }, 55640a360c2SBrad Bishop } 55740a360c2SBrad Bishop }, 55840a360c2SBrad Bishop} 55940a360c2SBrad Bishop 5604088ec38SXo WangPOWER_CONFIG = { 5614088ec38SXo Wang 'power_good_in' : 'PGOOD', 5624088ec38SXo Wang 'power_up_outs' : [ 5634088ec38SXo Wang ('POWER_PIN', False), 5644088ec38SXo Wang ], 5654088ec38SXo Wang 'reset_outs' : [ 5664088ec38SXo Wang ('PCIE_RESET', False), 5674088ec38SXo Wang ('USB_RESET', False), 5684088ec38SXo Wang ], 5694088ec38SXo Wang} 5704088ec38SXo Wang 57140a360c2SBrad Bishop# Miscellaneous non-poll sensor with system specific properties. 57240a360c2SBrad Bishop# The sensor id is the same as those defined in ID_LOOKUP['SENSOR']. 57340a360c2SBrad BishopMISC_SENSORS = { 57440a360c2SBrad Bishop 0x09 : { 'class' : 'BootCountSensor' }, 57540a360c2SBrad Bishop 0x05 : { 'class' : 'BootProgressSensor' }, 57640a360c2SBrad Bishop 0x08 : { 'class' : 'OccStatusSensor', 57740a360c2SBrad Bishop 'os_path' : '/sys/class/i2c-adapter/i2c-3/3-0050/online' }, 57840a360c2SBrad Bishop 0x0A : { 'class' : 'OccStatusSensor', 57940a360c2SBrad Bishop 'os_path' : '/sys/class/i2c-adapter/i2c-3/3-0051/online' }, 58040a360c2SBrad Bishop 0x32 : { 'class' : 'OperatingSystemStatusSensor' }, 58140a360c2SBrad Bishop 0x33 : { 'class' : 'PowerCap', 58240a360c2SBrad Bishop 'os_path' : '/sys/class/hwmon/hwmon3/user_powercap' }, 58340a360c2SBrad Bishop} 58453066750SBrad Bishop 58553066750SBrad Bishop# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 586