blob: ffd264777c4d3eb25f48ae220fd607690c835c82 [file] [log] [blame]
#! /usr/bin/python
HOME_PATH = './'
CACHE_PATH = '/var/cache/obmc/'
FLASH_DOWNLOAD_PATH = "/tmp"
GPIO_BASE = 320
SYSTEM_NAME = "Garrison"
# System states
# state can change to next state in 2 ways:
# - a process emits a GotoSystemState signal with state name to goto
# - objects specified in EXIT_STATE_DEPEND have started
SYSTEM_STATES = [
'BASE_APPS',
'BMC_STARTING',
'BMC_READY',
'HOST_POWERING_ON',
'HOST_POWERED_ON',
'HOST_BOOTING',
'HOST_BOOTED',
'HOST_POWERED_OFF',
]
EXIT_STATE_DEPEND = {
'BASE_APPS': {
'/org/openbmc/sensors': 0,
},
'BMC_STARTING': {
'/org/openbmc/control/chassis0': 0,
'/org/openbmc/control/power0': 0,
'/org/openbmc/control/host0': 0,
'/org/openbmc/control/flash/bios': 0,
},
}
# method will be called when state is entered
ENTER_STATE_CALLBACK = {
'HOST_POWERED_ON': {
'boot': {
'bus_name': 'org.openbmc.control.Host',
'obj_name': '/org/openbmc/control/host0',
'interface_name': 'org.openbmc.control.Host',
},
},
'HOST_POWERED_OFF': {
'setOff': {
'bus_name': 'org.openbmc.control.led',
'obj_name': '/org/openbmc/control/led/identify',
'interface_name': 'org.openbmc.Led',
}
},
'BMC_READY': {
'setOn': {
'bus_name': 'org.openbmc.control.led',
'obj_name': '/org/openbmc/control/led/beep',
'interface_name': 'org.openbmc.Led',
},
'init': {
'bus_name': 'org.openbmc.control.Flash',
'obj_name': '/org/openbmc/control/flash/bios',
'interface_name': 'org.openbmc.Flash',
}
}
}
APPS = {
'startup_hacks': {
'system_state': 'BASE_APPS',
'start_process': True,
'monitor_process': False,
'process_name': 'startup_hacks.sh',
},
'inventory': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'inventory_items.py',
'args': [SYSTEM_NAME]
},
'hwmon': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'hwmon.py',
'args': [SYSTEM_NAME]
},
'sensor_manager': {
'system_state': 'BASE_APPS',
'start_process': True,
'monitor_process': True,
'process_name': 'sensor_manager2.py',
'args': [SYSTEM_NAME]
},
'host_watchdog': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'host_watchdog.exe',
},
'power_control': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'power_control.exe',
'args': ['3000', '10']
},
'power_button': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'button_power.exe',
},
'reset_button': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'button_reset.exe',
},
'led_control': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'led_controller.exe',
},
'flash_control': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'flash_bios.exe',
},
'bmc_flash_control': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'bmc_update.py',
},
'download_manager': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'download_manager.py',
'args': [SYSTEM_NAME]
},
'host_control': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'control_host.exe',
},
'chassis_control': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'chassis_control.py',
},
'restore': {
'system_state': 'BMC_READY',
'start_process': True,
'monitor_process': False,
'process_name': 'discover_system_state.py',
},
'bmc_control': {
'system_state': 'BMC_STARTING',
'start_process': True,
'monitor_process': True,
'process_name': 'control_bmc.exe',
},
}
CACHED_INTERFACES = {
"org.openbmc.InventoryItem": True,
"org.openbmc.control.Chassis": True,
}
INVENTORY_ROOT = '/org/openbmc/inventory'
FRU_INSTANCES = {
'<inventory_root>/system': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
'<inventory_root>/system/bios': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
'<inventory_root>/system/misc': {'fru_type': 'SYSTEM', 'is_fru': False, },
'<inventory_root>/system/chassis': {'fru_type': 'SYSTEM', 'is_fru': True, 'present': "True"},
'<inventory_root>/system/chassis/motherboard': {'fru_type': 'MAIN_PLANAR', 'is_fru': True, },
'<inventory_root>/system/systemevent': {'fru_type': 'SYSTEM_EVENT', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/refclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/pcieclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/todclock': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/apss': {'fru_type': 'MAIN_PLANAR', 'is_fru': False, },
'<inventory_root>/system/chassis/fan0': {'fru_type': 'FAN', 'is_fru': True, },
'<inventory_root>/system/chassis/fan1': {'fru_type': 'FAN', 'is_fru': True, },
'<inventory_root>/system/chassis/fan2': {'fru_type': 'FAN', 'is_fru': True, },
'<inventory_root>/system/chassis/fan3': {'fru_type': 'FAN', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/bmc': {'fru_type': 'BMC', 'is_fru': False, 'manufacturer': 'ASPEED'},
'<inventory_root>/system/chassis/motherboard/cpu0': {'fru_type': 'CPU', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/cpu1': {'fru_type': 'CPU', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/cpu0/core0': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core1': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core2': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core3': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core4': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core5': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core6': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core7': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core8': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core9': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core10': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu0/core11': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core0': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core1': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core2': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core3': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core4': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core5': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core6': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core7': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core8': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core9': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core10': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/cpu1/core11': {'fru_type': 'CORE', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/membuf0': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/membuf1': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/membuf2': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/membuf3': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/membuf4': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/membuf5': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/membuf6': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/membuf7': {'fru_type': 'MEMORY_BUFFER', 'is_fru': False, },
'<inventory_root>/system/chassis/motherboard/dimm0': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm1': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm2': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm3': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm4': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm5': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm6': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm7': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm8': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm9': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm10': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm11': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm12': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm13': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm14': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm15': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm16': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm17': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm18': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm19': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm20': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm21': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm22': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm23': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm24': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm25': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm26': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm27': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm28': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm29': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm30': {'fru_type': 'DIMM', 'is_fru': True, },
'<inventory_root>/system/chassis/motherboard/dimm31': {'fru_type': 'DIMM', 'is_fru': True, },
}
ID_LOOKUP = {
'FRU': {
0x01: '<inventory_root>/system/chassis/motherboard/cpu0',
0x02: '<inventory_root>/system/chassis/motherboard/cpu1',
0x03: '<inventory_root>/system/chassis/motherboard',
0x04: '<inventory_root>/system/chassis/motherboard/membuf0',
0x05: '<inventory_root>/system/chassis/motherboard/membuf1',
0x06: '<inventory_root>/system/chassis/motherboard/membuf2',
0x07: '<inventory_root>/system/chassis/motherboard/membuf3',
0x08: '<inventory_root>/system/chassis/motherboard/membuf4',
0x09: '<inventory_root>/system/chassis/motherboard/membuf5',
0x0c: '<inventory_root>/system/chassis/motherboard/dimm0',
0x0d: '<inventory_root>/system/chassis/motherboard/dimm1',
0x0e: '<inventory_root>/system/chassis/motherboard/dimm2',
0x0f: '<inventory_root>/system/chassis/motherboard/dimm3',
0x10: '<inventory_root>/system/chassis/motherboard/dimm4',
0x11: '<inventory_root>/system/chassis/motherboard/dimm5',
0x12: '<inventory_root>/system/chassis/motherboard/dimm6',
0x13: '<inventory_root>/system/chassis/motherboard/dimm7',
0x14: '<inventory_root>/system/chassis/motherboard/dimm8',
0x15: '<inventory_root>/system/chassis/motherboard/dimm9',
0x16: '<inventory_root>/system/chassis/motherboard/dimm10',
0x17: '<inventory_root>/system/chassis/motherboard/dimm11',
0x18: '<inventory_root>/system/chassis/motherboard/dimm12',
0x19: '<inventory_root>/system/chassis/motherboard/dimm13',
0x1a: '<inventory_root>/system/chassis/motherboard/dimm14',
0x1b: '<inventory_root>/system/chassis/motherboard/dimm15',
0x1c: '<inventory_root>/system/chassis/motherboard/dimm16',
0x1d: '<inventory_root>/system/chassis/motherboard/dimm17',
0x1e: '<inventory_root>/system/chassis/motherboard/dimm18',
0x1f: '<inventory_root>/system/chassis/motherboard/dimm19',
0x20: '<inventory_root>/system/chassis/motherboard/dimm20',
0x21: '<inventory_root>/system/chassis/motherboard/dimm21',
0x22: '<inventory_root>/system/chassis/motherboard/dimm22',
0x23: '<inventory_root>/system/chassis/motherboard/dimm23',
0x24: '<inventory_root>/system/chassis/motherboard/dimm24',
0x25: '<inventory_root>/system/chassis/motherboard/dimm25',
0x26: '<inventory_root>/system/chassis/motherboard/dimm26',
0x27: '<inventory_root>/system/chassis/motherboard/dimm27',
0x28: '<inventory_root>/system/chassis/motherboard/dimm28',
0x29: '<inventory_root>/system/chassis/motherboard/dimm29',
0x2a: '<inventory_root>/system/chassis/motherboard/dimm30',
0x2b: '<inventory_root>/system/chassis/motherboard/dimm31',
},
'FRU_STR': {
'PRODUCT_0': '<inventory_root>/system/bios',
'BOARD_1': '<inventory_root>/system/chassis/motherboard/cpu0',
'BOARD_2': '<inventory_root>/system/chassis/motherboard/cpu1',
'CHASSIS_3': '<inventory_root>/system/chassis/motherboard',
'BOARD_3': '<inventory_root>/system/misc',
'BOARD_4': '<inventory_root>/system/chassis/motherboard/membuf0',
'BOARD_5': '<inventory_root>/system/chassis/motherboard/membuf1',
'BOARD_6': '<inventory_root>/system/chassis/motherboard/membuf2',
'BOARD_7': '<inventory_root>/system/chassis/motherboard/membuf3',
'BOARD_8': '<inventory_root>/system/chassis/motherboard/membuf4',
'BOARD_9': '<inventory_root>/system/chassis/motherboard/membuf5',
'BOARD_10': '<inventory_root>/system/chassis/motherboard/membuf6',
'BOARD_11': '<inventory_root>/system/chassis/motherboard/membuf7',
'PRODUCT_12': '<inventory_root>/system/chassis/motherboard/dimm0',
'PRODUCT_13': '<inventory_root>/system/chassis/motherboard/dimm1',
'PRODUCT_14': '<inventory_root>/system/chassis/motherboard/dimm2',
'PRODUCT_15': '<inventory_root>/system/chassis/motherboard/dimm3',
'PRODUCT_16': '<inventory_root>/system/chassis/motherboard/dimm4',
'PRODUCT_17': '<inventory_root>/system/chassis/motherboard/dimm5',
'PRODUCT_18': '<inventory_root>/system/chassis/motherboard/dimm6',
'PRODUCT_19': '<inventory_root>/system/chassis/motherboard/dimm7',
'PRODUCT_20': '<inventory_root>/system/chassis/motherboard/dimm8',
'PRODUCT_21': '<inventory_root>/system/chassis/motherboard/dimm9',
'PRODUCT_22': '<inventory_root>/system/chassis/motherboard/dimm10',
'PRODUCT_23': '<inventory_root>/system/chassis/motherboard/dimm11',
'PRODUCT_24': '<inventory_root>/system/chassis/motherboard/dimm12',
'PRODUCT_25': '<inventory_root>/system/chassis/motherboard/dimm13',
'PRODUCT_26': '<inventory_root>/system/chassis/motherboard/dimm14',
'PRODUCT_27': '<inventory_root>/system/chassis/motherboard/dimm15',
'PRODUCT_28': '<inventory_root>/system/chassis/motherboard/dimm16',
'PRODUCT_29': '<inventory_root>/system/chassis/motherboard/dimm17',
'PRODUCT_30': '<inventory_root>/system/chassis/motherboard/dimm18',
'PRODUCT_31': '<inventory_root>/system/chassis/motherboard/dimm19',
'PRODUCT_32': '<inventory_root>/system/chassis/motherboard/dimm20',
'PRODUCT_33': '<inventory_root>/system/chassis/motherboard/dimm21',
'PRODUCT_34': '<inventory_root>/system/chassis/motherboard/dimm22',
'PRODUCT_35': '<inventory_root>/system/chassis/motherboard/dimm23',
'PRODUCT_36': '<inventory_root>/system/chassis/motherboard/dimm24',
'PRODUCT_37': '<inventory_root>/system/chassis/motherboard/dimm25',
'PRODUCT_38': '<inventory_root>/system/chassis/motherboard/dimm26',
'PRODUCT_39': '<inventory_root>/system/chassis/motherboard/dimm27',
'PRODUCT_40': '<inventory_root>/system/chassis/motherboard/dimm28',
'PRODUCT_41': '<inventory_root>/system/chassis/motherboard/dimm29',
'PRODUCT_42': '<inventory_root>/system/chassis/motherboard/dimm30',
'PRODUCT_43': '<inventory_root>/system/chassis/motherboard/dimm31',
'PRODUCT_47': '<inventory_root>/system/misc',
},
'SENSOR': {
0x04: '/org/openbmc/sensors/host/HostStatus',
0x05: '/org/openbmc/sensors/host/BootProgress',
0x08: '/org/openbmc/sensors/host/cpu0/OccStatus',
0x09: '/org/openbmc/sensors/host/cpu1/OccStatus',
0x0c: '<inventory_root>/system/chassis/motherboard/cpu0',
0x0e: '<inventory_root>/system/chassis/motherboard/cpu1',
0x1e: '<inventory_root>/system/chassis/motherboard/dimm3',
0x1f: '<inventory_root>/system/chassis/motherboard/dimm2',
0x20: '<inventory_root>/system/chassis/motherboard/dimm1',
0x21: '<inventory_root>/system/chassis/motherboard/dimm0',
0x22: '<inventory_root>/system/chassis/motherboard/dimm7',
0x23: '<inventory_root>/system/chassis/motherboard/dimm6',
0x24: '<inventory_root>/system/chassis/motherboard/dimm5',
0x25: '<inventory_root>/system/chassis/motherboard/dimm4',
0x26: '<inventory_root>/system/chassis/motherboard/dimm11',
0x27: '<inventory_root>/system/chassis/motherboard/dimm10',
0x28: '<inventory_root>/system/chassis/motherboard/dimm9',
0x29: '<inventory_root>/system/chassis/motherboard/dimm8',
0x2a: '<inventory_root>/system/chassis/motherboard/dimm15',
0x2b: '<inventory_root>/system/chassis/motherboard/dimm14',
0x2c: '<inventory_root>/system/chassis/motherboard/dimm13',
0x2d: '<inventory_root>/system/chassis/motherboard/dimm12',
0x2e: '<inventory_root>/system/chassis/motherboard/dimm19',
0x2f: '<inventory_root>/system/chassis/motherboard/dimm18',
0x30: '<inventory_root>/system/chassis/motherboard/dimm17',
0x31: '<inventory_root>/system/chassis/motherboard/dimm16',
0x32: '<inventory_root>/system/chassis/motherboard/dimm23',
0x33: '<inventory_root>/system/chassis/motherboard/dimm22',
0x34: '<inventory_root>/system/chassis/motherboard/dimm21',
0x35: '<inventory_root>/system/chassis/motherboard/dimm20',
0x36: '<inventory_root>/system/chassis/motherboard/dimm27',
0x37: '<inventory_root>/system/chassis/motherboard/dimm26',
0x38: '<inventory_root>/system/chassis/motherboard/dimm25',
0x39: '<inventory_root>/system/chassis/motherboard/dimm24',
0x3a: '<inventory_root>/system/chassis/motherboard/dimm31',
0x3b: '<inventory_root>/system/chassis/motherboard/dimm30',
0x3c: '<inventory_root>/system/chassis/motherboard/dimm29',
0x3d: '<inventory_root>/system/chassis/motherboard/dimm28',
0x3e: '<inventory_root>/system/chassis/motherboard/cpu0/core0',
0x3f: '<inventory_root>/system/chassis/motherboard/cpu0/core1',
0x40: '<inventory_root>/system/chassis/motherboard/cpu0/core2',
0x41: '<inventory_root>/system/chassis/motherboard/cpu0/core3',
0x42: '<inventory_root>/system/chassis/motherboard/cpu0/core4',
0x43: '<inventory_root>/system/chassis/motherboard/cpu0/core5',
0x44: '<inventory_root>/system/chassis/motherboard/cpu0/core6',
0x45: '<inventory_root>/system/chassis/motherboard/cpu0/core7',
0x46: '<inventory_root>/system/chassis/motherboard/cpu0/core8',
0x47: '<inventory_root>/system/chassis/motherboard/cpu0/core9',
0x48: '<inventory_root>/system/chassis/motherboard/cpu0/core10',
0x49: '<inventory_root>/system/chassis/motherboard/cpu0/core11',
0x4a: '<inventory_root>/system/chassis/motherboard/cpu1/core0',
0x4b: '<inventory_root>/system/chassis/motherboard/cpu1/core1',
0x4c: '<inventory_root>/system/chassis/motherboard/cpu1/core2',
0x4d: '<inventory_root>/system/chassis/motherboard/cpu1/core3',
0x4e: '<inventory_root>/system/chassis/motherboard/cpu1/core4',
0x4f: '<inventory_root>/system/chassis/motherboard/cpu1/core5',
0x50: '<inventory_root>/system/chassis/motherboard/cpu1/core6',
0x51: '<inventory_root>/system/chassis/motherboard/cpu1/core7',
0x52: '<inventory_root>/system/chassis/motherboard/cpu1/core8',
0x53: '<inventory_root>/system/chassis/motherboard/cpu1/core9',
0x54: '<inventory_root>/system/chassis/motherboard/cpu1/core10',
0x55: '<inventory_root>/system/chassis/motherboard/cpu1/core11',
0x56: '<inventory_root>/system/chassis/motherboard/membuf0',
0x57: '<inventory_root>/system/chassis/motherboard/membuf1',
0x58: '<inventory_root>/system/chassis/motherboard/membuf2',
0x59: '<inventory_root>/system/chassis/motherboard/membuf3',
0x5a: '<inventory_root>/system/chassis/motherboard/membuf4',
0x5b: '<inventory_root>/system/chassis/motherboard/membuf5',
0x5c: '<inventory_root>/system/chassis/motherboard/membuf6',
0x5d: '<inventory_root>/system/chassis/motherboard/membuf7',
0x5f: '/org/openbmc/sensors/host/BootCount',
0x60: '<inventory_root>/system/chassis/motherboard',
0x61: '<inventory_root>/system/systemevent',
0x62: '<inventory_root>/system/powerlimit',
0x63: '<inventory_root>/system/chassis/motherboard/refclock',
0x64: '<inventory_root>/system/chassis/motherboard/pcieclock',
0xb1: '<inventory_root>/system/chassis/motherboard/todclock',
0xb2: '<inventory_root>/system/chassis/motherboard/apss',
0xb3: '/org/openbmc/sensors/host/powercap',
0xb5: '/org/openbmc/sensors/host/OperatingSystemStatus',
0xb6: '<inventory_root>/system/chassis/motherboard/pcielink',
},
'GPIO_PRESENT': {}
}
GPIO_CONFIG = {}
GPIO_CONFIG['BMC_POWER_UP'] = \
{'gpio_pin': 'D1', 'direction': 'out'}
GPIO_CONFIG['SYS_PWROK_BUFF'] = \
{'gpio_pin': 'D2', 'direction': 'in'}
GPIO_CONFIG['BMC_WD_CLEAR_PULSE_N'] = \
{'gpio_pin': 'N4', 'direction': 'out'}
GPIO_CONFIG['CM1_OE_R_N'] = \
{'gpio_pin': 'Q6', 'direction': 'out'}
GPIO_CONFIG['BMC_CP0_RESET_N'] = \
{'gpio_pin': 'O2', 'direction': 'out'}
GPIO_CONFIG['BMC_CFAM_RESET_N_R'] = \
{'gpio_pin': 'J2', 'direction': 'out'}
GPIO_CONFIG['PEX8718_DEVICES_RESET_N'] = \
{'gpio_pin': 'B6', 'direction': 'out'}
GPIO_CONFIG['CP0_DEVICES_RESET_N'] = \
{'gpio_pin': 'N3', 'direction': 'out'}
GPIO_CONFIG['CP1_DEVICES_RESET_N'] = \
{'gpio_pin': 'N5', 'direction': 'out'}
GPIO_CONFIG['FSI_DATA'] = \
{'gpio_pin': 'A5', 'direction': 'out'}
GPIO_CONFIG['FSI_CLK'] = \
{'gpio_pin': 'A4', 'direction': 'out'}
GPIO_CONFIG['FSI_ENABLE'] = \
{'gpio_pin': 'D0', 'direction': 'out'}
GPIO_CONFIG['CRONUS_SEL'] = \
{'gpio_pin': 'A6', 'direction': 'out'}
GPIO_CONFIG['BMC_THROTTLE'] = \
{'gpio_pin': 'J3', 'direction': 'out'}
GPIO_CONFIG['IDBTN'] = \
{'gpio_pin': 'Q7', 'direction': 'out'}
GPIO_CONFIG['POWER_BUTTON'] = \
{'gpio_pin': 'E0', 'direction': 'both'}
GPIO_CONFIG['RESET_BUTTON'] = \
{'gpio_pin': 'E4', 'direction': 'both'}
GPIO_CONFIG['PS0_PRES_N'] = \
{'gpio_pin': 'P7', 'direction': 'in'}
GPIO_CONFIG['PS1_PRES_N'] = \
{'gpio_pin': 'N0', 'direction': 'in'}
GPIO_CONFIG['CARD_PRES_N'] = \
{'gpio_pin': 'J0', 'direction': 'in'}
def convertGpio(name):
name = name.upper()
c = name[0:1]
offset = int(name[1:])
a = ord(c)-65
base = a*8+GPIO_BASE
return base+offset
HWMON_CONFIG = {
'4-0050': {
'names': {
'caps_curr_powercap': {'object_path': 'powercap/curr_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
'caps_curr_powerreading': {'object_path': 'powercap/system_power', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
'caps_max_powercap': {'object_path': 'powercap/max_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
'caps_min_powercap': {'object_path': 'powercap/min_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
'caps_norm_powercap': {'object_path': 'powercap/n_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
'caps_user_powerlimit': {'object_path': 'powercap/user_cap', 'poll_interval': 10000, 'scale': 1, 'units': 'W'},
},
'labels': {
'176': {'object_path': 'temperature/cpu0/core0', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'177': {'object_path': 'temperature/cpu0/core1', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'178': {'object_path': 'temperature/cpu0/core2', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'179': {'object_path': 'temperature/cpu0/core3', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'180': {'object_path': 'temperature/cpu0/core4', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'181': {'object_path': 'temperature/cpu0/core5', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'182': {'object_path': 'temperature/cpu0/core6', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'183': {'object_path': 'temperature/cpu0/core7', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'184': {'object_path': 'temperature/cpu0/core8', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'185': {'object_path': 'temperature/cpu0/core9', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'186': {'object_path': 'temperature/cpu0/core10', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'187': {'object_path': 'temperature/cpu0/core11', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'102': {'object_path': 'temperature/dimm0', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'103': {'object_path': 'temperature/dimm1', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'104': {'object_path': 'temperature/dimm2', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'105': {'object_path': 'temperature/dimm3', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'106': {'object_path': 'temperature/dimm4', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'107': {'object_path': 'temperature/dimm5', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'108': {'object_path': 'temperature/dimm6', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'109': {'object_path': 'temperature/dimm7', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'110': {'object_path': 'temperature/dimm8', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'111': {'object_path': 'temperature/dimm9', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'112': {'object_path': 'temperature/dimm10', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'113': {'object_path': 'temperature/dimm11', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'114': {'object_path': 'temperature/dimm12', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'115': {'object_path': 'temperature/dimm13', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'116': {'object_path': 'temperature/dimm14', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'117': {'object_path': 'temperature/dimm15', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'94': {'object_path': 'temperature/membuf0', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'95': {'object_path': 'temperature/membuf1', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'96': {'object_path': 'temperature/membuf2', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'97': {'object_path': 'temperature/membuf3', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
}
},
'5-0050': {
'labels': {
'188': {'object_path': 'temperature/cpu1/core0', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'189': {'object_path': 'temperature/cpu1/core1', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'190': {'object_path': 'temperature/cpu1/core2', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'191': {'object_path': 'temperature/cpu1/core3', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'192': {'object_path': 'temperature/cpu1/core4', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'193': {'object_path': 'temperature/cpu1/core5', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'194': {'object_path': 'temperature/cpu1/core6', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'195': {'object_path': 'temperature/cpu1/core7', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'196': {'object_path': 'temperature/cpu1/core8', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'197': {'object_path': 'temperature/cpu1/core9', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'198': {'object_path': 'temperature/cpu1/core10', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'199': {'object_path': 'temperature/cpu1/core11', 'poll_interval': 5000, 'scale': 1000, 'units': 'C',
'critical_upper': 100, 'critical_lower': -100, 'warning_upper': 90, 'warning_lower': -99, 'emergency_enabled': True},
'118': {'object_path': 'temperature/dimm16', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'119': {'object_path': 'temperature/dimm17', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'120': {'object_path': 'temperature/dimm18', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'121': {'object_path': 'temperature/dimm19', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'122': {'object_path': 'temperature/dimm20', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'123': {'object_path': 'temperature/dimm21', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'124': {'object_path': 'temperature/dimm22', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'125': {'object_path': 'temperature/dimm23', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'126': {'object_path': 'temperature/dimm24', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'127': {'object_path': 'temperature/dimm25', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'128': {'object_path': 'temperature/dimm26', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'129': {'object_path': 'temperature/dimm27', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'130': {'object_path': 'temperature/dimm28', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'131': {'object_path': 'temperature/dimm29', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'132': {'object_path': 'temperature/dimm30', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'133': {'object_path': 'temperature/dimm31', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'98': {'object_path': 'temperature/membuf4', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'99': {'object_path': 'temperature/membuf5', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'100': {'object_path': 'temperature/membuf6', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
'101': {'object_path': 'temperature/membuf7', 'poll_interval': 5000, 'scale': 1000, 'units': 'C'},
}
},
}
# Miscellaneous non-poll sensor with system specific properties.
# The sensor id is the same as those defined in ID_LOOKUP['SENSOR'].
MISC_SENSORS = {
0x5f: {'class': 'BootCountSensor'},
0x05: {'class': 'BootProgressSensor'},
0x08: {'class': 'OccStatusSensor',
'os_path': '/sys/class/i2c-adapter/i2c-3/3-0050/online'},
0x09: {'class': 'OccStatusSensor',
'os_path': '/sys/class/i2c-adapter/i2c-3/3-0051/online'},
0xb5: {'class': 'OperatingSystemStatusSensor'},
0xb3: {'class': 'PowerCap',
'os_path': '/sys/class/hwmon/hwmon3/user_powercap'},
}