blob: 02c9a44143eb11e2efa3486188f056e95cf8a34d [file] [log] [blame]
#!/usr/bin/env python3
HOME_PATH = "./"
CACHE_PATH = "/var/cache/obmc/"
FLASH_DOWNLOAD_PATH = "/tmp"
GPIO_BASE = 320
SYSTEM_NAME = "Palmetto"
# 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/led/identify": 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",
}
},
"BMC_READY": {
"setOn": {
"bus_name": "org.openbmc.control.led",
"obj_name": "/org/openbmc/control/led/identify",
"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],
},
"pcie_present": {
"system_state": "HOST_POWERED_ON",
"start_process": False,
"monitor_process": False,
"process_name": "pcie_slot_present.exe",
},
"virtual_sensors": {
"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": False,
"monitor_process": False,
"process_name": "button_power.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",
},
"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,
},
"<inventory_root>/system/chassis": {
"fru_type": "SYSTEM",
"is_fru": True,
},
"<inventory_root>/system/chassis/motherboard": {
"fru_type": "MAIN_PLANAR",
"is_fru": True,
},
"<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/fan4": {
"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/cpu": {
"fru_type": "CPU",
"is_fru": True,
},
"<inventory_root>/system/chassis/motherboard/cpu/core0": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core1": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core2": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core3": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core4": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core5": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core6": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core7": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core8": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core9": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core10": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/cpu/core11": {
"fru_type": "CORE",
"is_fru": False,
},
"<inventory_root>/system/chassis/motherboard/membuf": {
"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/io_board/pcie_slot0": {
"fru_type": "PCIE_CARD",
"is_fru": True,
},
"<inventory_root>/system/chassis/io_board/pcie_slot1": {
"fru_type": "PCIE_CARD",
"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,
},
}
ID_LOOKUP = {
"FRU": {
0x0D: "<inventory_root>/system/chassis",
0x34: "<inventory_root>/system/chassis/motherboard",
0x01: "<inventory_root>/system/chassis/motherboard/cpu",
0x02: "<inventory_root>/system/chassis/motherboard/membuf",
0x03: "<inventory_root>/system/chassis/motherboard/dimm0",
0x04: "<inventory_root>/system/chassis/motherboard/dimm1",
0x05: "<inventory_root>/system/chassis/motherboard/dimm2",
0x06: "<inventory_root>/system/chassis/motherboard/dimm3",
0x35: "<inventory_root>/system",
},
"FRU_STR": {
"PRODUCT_15": "<inventory_root>/system",
"CHASSIS_2": "<inventory_root>/system/chassis",
"BOARD_1": "<inventory_root>/system/chassis/motherboard/cpu",
"BOARD_2": "<inventory_root>/system/chassis/motherboard/membuf",
"BOARD_14": "<inventory_root>/system/chassis/motherboard",
"PRODUCT_3": "<inventory_root>/system/chassis/motherboard/dimm0",
"PRODUCT_4": "<inventory_root>/system/chassis/motherboard/dimm1",
"PRODUCT_5": "<inventory_root>/system/chassis/motherboard/dimm2",
"PRODUCT_6": "<inventory_root>/system/chassis/motherboard/dimm3",
},
"SENSOR": {
0x34: "<inventory_root>/system/chassis/motherboard",
0x37: "<inventory_root>/system/chassis/motherboard/refclock",
0x38: "<inventory_root>/system/chassis/motherboard/pcieclock",
0x39: "<inventory_root>/system/chassis/motherboard/todclock",
0x3A: "<inventory_root>/system/chassis/apss",
0x2F: "<inventory_root>/system/chassis/motherboard/cpu",
0x22: "<inventory_root>/system/chassis/motherboard/cpu/core1",
0x23: "<inventory_root>/system/chassis/motherboard/cpu/core2",
0x24: "<inventory_root>/system/chassis/motherboard/cpu/core3",
0x25: "<inventory_root>/system/chassis/motherboard/cpu/core4",
0x26: "<inventory_root>/system/chassis/motherboard/cpu/core5",
0x27: "<inventory_root>/system/chassis/motherboard/cpu/core6",
0x28: "<inventory_root>/system/chassis/motherboard/cpu/core9",
0x29: "<inventory_root>/system/chassis/motherboard/cpu/core10",
0x2A: "<inventory_root>/system/chassis/motherboard/cpu/core11",
0x2B: "<inventory_root>/system/chassis/motherboard/cpu/core12",
0x2C: "<inventory_root>/system/chassis/motherboard/cpu/core13",
0x2D: "<inventory_root>/system/chassis/motherboard/cpu/core14",
0x2E: "<inventory_root>/system/chassis/motherboard/membuf",
0x1E: "<inventory_root>/system/chassis/motherboard/dimm0",
0x1F: "<inventory_root>/system/chassis/motherboard/dimm1",
0x20: "<inventory_root>/system/chassis/motherboard/dimm2",
0x21: "<inventory_root>/system/chassis/motherboard/dimm3",
0x09: "/org/openbmc/sensors/host/BootCount",
0x05: "/org/openbmc/sensors/host/BootProgress",
0x08: "/org/openbmc/sensors/host/cpu0/OccStatus",
0x32: "/org/openbmc/sensors/host/OperatingSystemStatus",
0x33: "/org/openbmc/sensors/host/PowerCap",
},
"GPIO_PRESENT": {
"SLOT0_PRESENT": "<inventory_root>/system/chassis/io_board/pcie_slot0",
"SLOT1_PRESENT": "<inventory_root>/system/chassis/io_board/pcie_slot1",
},
}
GPIO_CONFIG = {}
GPIO_CONFIG["FSI_CLK"] = {"gpio_pin": "A4", "direction": "out"}
GPIO_CONFIG["FSI_DATA"] = {"gpio_pin": "A5", "direction": "out"}
GPIO_CONFIG["FSI_ENABLE"] = {"gpio_pin": "D0", "direction": "out"}
GPIO_CONFIG["POWER_PIN"] = {"gpio_pin": "E1", "direction": "out"}
GPIO_CONFIG["CRONUS_SEL"] = {"gpio_pin": "A6", "direction": "out"}
GPIO_CONFIG["PGOOD"] = {"gpio_pin": "C7", "direction": "in"}
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["PCIE_RESET"] = {"gpio_pin": "B5", "direction": "out"}
GPIO_CONFIG["USB_RESET"] = {"gpio_pin": "B6", "direction": "out"}
GPIO_CONFIG["SLOT0_RISER_PRESENT"] = {"gpio_pin": "N0", "direction": "in"}
GPIO_CONFIG["SLOT1_RISER_PRESENT"] = {"gpio_pin": "N1", "direction": "in"}
GPIO_CONFIG["SLOT2_RISER_PRESENT"] = {"gpio_pin": "N2", "direction": "in"}
GPIO_CONFIG["SLOT0_PRESENT"] = {"gpio_pin": "N3", "direction": "in"}
GPIO_CONFIG["SLOT1_PRESENT"] = {"gpio_pin": "N4", "direction": "in"}
GPIO_CONFIG["SLOT2_PRESENT"] = {"gpio_pin": "N5", "direction": "in"}
GPIO_CONFIG["MEZZ0_PRESENT"] = {"gpio_pin": "O0", "direction": "in"}
GPIO_CONFIG["MEZZ1_PRESENT"] = {"gpio_pin": "O1", "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 = {
"2-004c": {
"names": {
"temp1_input": {
"object_path": "temperature/ambient",
"poll_interval": 5000,
"scale": 1000,
"units": "C",
},
}
},
"3-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",
},
}
},
}
# Miscellaneous non-poll sensor with system specific properties.
# The sensor id is the same as those defined in ID_LOOKUP['SENSOR'].
MISC_SENSORS = {
0x09: {"class": "BootCountSensor"},
0x05: {"class": "BootProgressSensor"},
0x08: {
"class": "OccStatusSensor",
"os_path": "/sys/class/i2c-adapter/i2c-3/3-0050/online",
},
0x32: {"class": "OperatingSystemStatusSensor"},
0x33: {
"class": "PowerCap",
"os_path": "/sys/class/hwmon/hwmon1/user_powercap",
},
}