#!/usr/bin/env python3 # 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/flash/bios": 0, }, } FRU_INSTANCES = { "/system": { "fru_type": "SYSTEM", "is_fru": True, "present": "True", }, "/system/bios": { "fru_type": "SYSTEM", "is_fru": True, "present": "True", }, "/system/misc": { "fru_type": "SYSTEM", "is_fru": False, }, "/system/chassis": { "fru_type": "SYSTEM", "is_fru": True, "present": "True", }, "/system/chassis/motherboard": { "fru_type": "MAIN_PLANAR", "is_fru": True, }, "/system/systemevent": { "fru_type": "SYSTEM_EVENT", "is_fru": False, }, "/system/chassis/motherboard/refclock": { "fru_type": "MAIN_PLANAR", "is_fru": False, }, "/system/chassis/motherboard/pcieclock": { "fru_type": "MAIN_PLANAR", "is_fru": False, }, "/system/chassis/motherboard/todclock": { "fru_type": "MAIN_PLANAR", "is_fru": False, }, "/system/chassis/motherboard/apss": { "fru_type": "MAIN_PLANAR", "is_fru": False, }, "/system/chassis/fan0": { "fru_type": "FAN", "is_fru": True, }, "/system/chassis/fan1": { "fru_type": "FAN", "is_fru": True, }, "/system/chassis/fan2": { "fru_type": "FAN", "is_fru": True, }, "/system/chassis/fan3": { "fru_type": "FAN", "is_fru": True, }, "/system/chassis/motherboard/bmc": { "fru_type": "BMC", "is_fru": False, "manufacturer": "ASPEED", }, "/system/chassis/motherboard/cpu0": { "fru_type": "CPU", "is_fru": True, }, "/system/chassis/motherboard/cpu1": { "fru_type": "CPU", "is_fru": True, }, "/system/chassis/motherboard/cpu0/core0": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core1": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core2": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core3": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core4": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core5": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core6": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core7": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core8": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core9": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core10": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu0/core11": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core0": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core1": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core2": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core3": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core4": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core5": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core6": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core7": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core8": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core9": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core10": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/cpu1/core11": { "fru_type": "CORE", "is_fru": False, }, "/system/chassis/motherboard/membuf0": { "fru_type": "MEMORY_BUFFER", "is_fru": False, }, "/system/chassis/motherboard/membuf1": { "fru_type": "MEMORY_BUFFER", "is_fru": False, }, "/system/chassis/motherboard/membuf2": { "fru_type": "MEMORY_BUFFER", "is_fru": False, }, "/system/chassis/motherboard/membuf3": { "fru_type": "MEMORY_BUFFER", "is_fru": False, }, "/system/chassis/motherboard/membuf4": { "fru_type": "MEMORY_BUFFER", "is_fru": False, }, "/system/chassis/motherboard/membuf5": { "fru_type": "MEMORY_BUFFER", "is_fru": False, }, "/system/chassis/motherboard/membuf6": { "fru_type": "MEMORY_BUFFER", "is_fru": False, }, "/system/chassis/motherboard/membuf7": { "fru_type": "MEMORY_BUFFER", "is_fru": False, }, "/system/chassis/motherboard/dimm0": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm1": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm2": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm3": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm4": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm5": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm6": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm7": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm8": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm9": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm10": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm11": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm12": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm13": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm14": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm15": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm16": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm17": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm18": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm19": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm20": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm21": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm22": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm23": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm24": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm25": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm26": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm27": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm28": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm29": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm30": { "fru_type": "DIMM", "is_fru": True, }, "/system/chassis/motherboard/dimm31": { "fru_type": "DIMM", "is_fru": True, }, } ID_LOOKUP = { "FRU": { 0x01: "/system/chassis/motherboard/cpu0", 0x02: "/system/chassis/motherboard/cpu1", 0x03: "/system/chassis/motherboard", 0x04: "/system/chassis/motherboard/membuf0", 0x05: "/system/chassis/motherboard/membuf1", 0x06: "/system/chassis/motherboard/membuf2", 0x07: "/system/chassis/motherboard/membuf3", 0x08: "/system/chassis/motherboard/membuf4", 0x09: "/system/chassis/motherboard/membuf5", 0x0C: "/system/chassis/motherboard/dimm0", 0x0D: "/system/chassis/motherboard/dimm1", 0x0E: "/system/chassis/motherboard/dimm2", 0x0F: "/system/chassis/motherboard/dimm3", 0x10: "/system/chassis/motherboard/dimm4", 0x11: "/system/chassis/motherboard/dimm5", 0x12: "/system/chassis/motherboard/dimm6", 0x13: "/system/chassis/motherboard/dimm7", 0x14: "/system/chassis/motherboard/dimm8", 0x15: "/system/chassis/motherboard/dimm9", 0x16: "/system/chassis/motherboard/dimm10", 0x17: "/system/chassis/motherboard/dimm11", 0x18: "/system/chassis/motherboard/dimm12", 0x19: "/system/chassis/motherboard/dimm13", 0x1A: "/system/chassis/motherboard/dimm14", 0x1B: "/system/chassis/motherboard/dimm15", 0x1C: "/system/chassis/motherboard/dimm16", 0x1D: "/system/chassis/motherboard/dimm17", 0x1E: "/system/chassis/motherboard/dimm18", 0x1F: "/system/chassis/motherboard/dimm19", 0x20: "/system/chassis/motherboard/dimm20", 0x21: "/system/chassis/motherboard/dimm21", 0x22: "/system/chassis/motherboard/dimm22", 0x23: "/system/chassis/motherboard/dimm23", 0x24: "/system/chassis/motherboard/dimm24", 0x25: "/system/chassis/motherboard/dimm25", 0x26: "/system/chassis/motherboard/dimm26", 0x27: "/system/chassis/motherboard/dimm27", 0x28: "/system/chassis/motherboard/dimm28", 0x29: "/system/chassis/motherboard/dimm29", 0x2A: "/system/chassis/motherboard/dimm30", 0x2B: "/system/chassis/motherboard/dimm31", }, "FRU_STR": { "PRODUCT_0": "/system/bios", "BOARD_1": "/system/chassis/motherboard/cpu0", "BOARD_2": "/system/chassis/motherboard/cpu1", "CHASSIS_3": "/system/chassis/motherboard", "BOARD_3": "/system/misc", "BOARD_4": "/system/chassis/motherboard/membuf0", "BOARD_5": "/system/chassis/motherboard/membuf1", "BOARD_6": "/system/chassis/motherboard/membuf2", "BOARD_7": "/system/chassis/motherboard/membuf3", "BOARD_8": "/system/chassis/motherboard/membuf4", "BOARD_9": "/system/chassis/motherboard/membuf5", "BOARD_10": "/system/chassis/motherboard/membuf6", "BOARD_11": "/system/chassis/motherboard/membuf7", "PRODUCT_12": "/system/chassis/motherboard/dimm0", "PRODUCT_13": "/system/chassis/motherboard/dimm1", "PRODUCT_14": "/system/chassis/motherboard/dimm2", "PRODUCT_15": "/system/chassis/motherboard/dimm3", "PRODUCT_16": "/system/chassis/motherboard/dimm4", "PRODUCT_17": "/system/chassis/motherboard/dimm5", "PRODUCT_18": "/system/chassis/motherboard/dimm6", "PRODUCT_19": "/system/chassis/motherboard/dimm7", "PRODUCT_20": "/system/chassis/motherboard/dimm8", "PRODUCT_21": "/system/chassis/motherboard/dimm9", "PRODUCT_22": "/system/chassis/motherboard/dimm10", "PRODUCT_23": "/system/chassis/motherboard/dimm11", "PRODUCT_24": "/system/chassis/motherboard/dimm12", "PRODUCT_25": "/system/chassis/motherboard/dimm13", "PRODUCT_26": "/system/chassis/motherboard/dimm14", "PRODUCT_27": "/system/chassis/motherboard/dimm15", "PRODUCT_28": "/system/chassis/motherboard/dimm16", "PRODUCT_29": "/system/chassis/motherboard/dimm17", "PRODUCT_30": "/system/chassis/motherboard/dimm18", "PRODUCT_31": "/system/chassis/motherboard/dimm19", "PRODUCT_32": "/system/chassis/motherboard/dimm20", "PRODUCT_33": "/system/chassis/motherboard/dimm21", "PRODUCT_34": "/system/chassis/motherboard/dimm22", "PRODUCT_35": "/system/chassis/motherboard/dimm23", "PRODUCT_36": "/system/chassis/motherboard/dimm24", "PRODUCT_37": "/system/chassis/motherboard/dimm25", "PRODUCT_38": "/system/chassis/motherboard/dimm26", "PRODUCT_39": "/system/chassis/motherboard/dimm27", "PRODUCT_40": "/system/chassis/motherboard/dimm28", "PRODUCT_41": "/system/chassis/motherboard/dimm29", "PRODUCT_42": "/system/chassis/motherboard/dimm30", "PRODUCT_43": "/system/chassis/motherboard/dimm31", "PRODUCT_47": "/system/misc", }, "SENSOR": { 0x02: "/org/openbmc/sensors/host/HostStatus", 0x03: "/org/openbmc/sensors/host/BootProgress", 0x5A: "/system/chassis/motherboard/cpu0", 0xA4: "/system/chassis/motherboard/cpu1", 0x1E: "/system/chassis/motherboard/dimm3", 0x1F: "/system/chassis/motherboard/dimm2", 0x20: "/system/chassis/motherboard/dimm1", 0x21: "/system/chassis/motherboard/dimm0", 0x22: "/system/chassis/motherboard/dimm7", 0x23: "/system/chassis/motherboard/dimm6", 0x24: "/system/chassis/motherboard/dimm5", 0x25: "/system/chassis/motherboard/dimm4", 0x26: "/system/chassis/motherboard/dimm11", 0x27: "/system/chassis/motherboard/dimm10", 0x28: "/system/chassis/motherboard/dimm9", 0x29: "/system/chassis/motherboard/dimm8", 0x2A: "/system/chassis/motherboard/dimm15", 0x2B: "/system/chassis/motherboard/dimm14", 0x2C: "/system/chassis/motherboard/dimm13", 0x2D: "/system/chassis/motherboard/dimm12", 0x2E: "/system/chassis/motherboard/dimm19", 0x2F: "/system/chassis/motherboard/dimm18", 0x30: "/system/chassis/motherboard/dimm17", 0x31: "/system/chassis/motherboard/dimm16", 0x32: "/system/chassis/motherboard/dimm23", 0x33: "/system/chassis/motherboard/dimm22", 0x34: "/system/chassis/motherboard/dimm21", 0x35: "/system/chassis/motherboard/dimm20", 0x36: "/system/chassis/motherboard/dimm27", 0x37: "/system/chassis/motherboard/dimm26", 0x38: "/system/chassis/motherboard/dimm25", 0x39: "/system/chassis/motherboard/dimm24", 0x3A: "/system/chassis/motherboard/dimm31", 0x3B: "/system/chassis/motherboard/dimm30", 0x3C: "/system/chassis/motherboard/dimm29", 0x3D: "/system/chassis/motherboard/dimm28", 0x3E: "/system/chassis/motherboard/cpu0/core0", 0x3F: "/system/chassis/motherboard/cpu0/core1", 0x40: "/system/chassis/motherboard/cpu0/core2", 0x41: "/system/chassis/motherboard/cpu0/core3", 0x42: "/system/chassis/motherboard/cpu0/core4", 0x43: "/system/chassis/motherboard/cpu0/core5", 0x44: "/system/chassis/motherboard/cpu0/core6", 0x45: "/system/chassis/motherboard/cpu0/core7", 0x46: "/system/chassis/motherboard/cpu0/core8", 0x47: "/system/chassis/motherboard/cpu0/core9", 0x48: "/system/chassis/motherboard/cpu0/core10", 0x49: "/system/chassis/motherboard/cpu0/core11", 0x4A: "/system/chassis/motherboard/cpu1/core0", 0x4B: "/system/chassis/motherboard/cpu1/core1", 0x4C: "/system/chassis/motherboard/cpu1/core2", 0x4D: "/system/chassis/motherboard/cpu1/core3", 0x4E: "/system/chassis/motherboard/cpu1/core4", 0x4F: "/system/chassis/motherboard/cpu1/core5", 0x50: "/system/chassis/motherboard/cpu1/core6", 0x51: "/system/chassis/motherboard/cpu1/core7", 0x52: "/system/chassis/motherboard/cpu1/core8", 0x53: "/system/chassis/motherboard/cpu1/core9", 0x54: "/system/chassis/motherboard/cpu1/core10", 0x55: "/system/chassis/motherboard/cpu1/core11", 0x56: "/system/chassis/motherboard/membuf0", 0x57: "/system/chassis/motherboard/membuf1", 0x58: "/system/chassis/motherboard/membuf2", 0x59: "/system/chassis/motherboard/membuf3", 0x5A: "/system/chassis/motherboard/membuf4", 0x5B: "/system/chassis/motherboard/membuf5", 0x5C: "/system/chassis/motherboard/membuf6", 0x5D: "/system/chassis/motherboard/membuf7", 0x07: "/org/openbmc/sensors/host/BootCount", 0x0C: "/system/chassis/motherboard", 0x01: "/system/systemevent", 0x08: "/system/powerlimit", 0x0D: "/system/chassis/motherboard/refclock", 0x0E: "/system/chassis/motherboard/pcieclock", 0x0F: "/system/chassis/motherboard/todclock", 0x10: "/system/chassis/motherboard/apss", 0x02: "/org/openbmc/sensors/host/OperatingSystemStatus", 0x04: "/system/chassis/motherboard/pcielink", 0x0B: "/xyz/openbmc_project/sensors/chassis/PowerSupplyRedundancy", 0xDA: "/org/openbmc/sensors/host/TurboAllowed", 0xD8: "/org/openbmc/sensors/host/PowerSupplyDerating", }, "GPIO_PRESENT": {}, } GPIO_CONFIG = {} GPIO_CONFIG["BMC_POWER_UP"] = {"gpio_pin": "D1", "direction": "out"} GPIO_CONFIG["SOFTWARE_PGOOD"] = {"gpio_pin": "R1", "direction": "out"} GPIO_CONFIG["SYS_PWROK_BUFF"] = {"gpio_pin": "D2", "direction": "in"} # PV_CP_MD_JTAG_ATTENTION_N GPIO_CONFIG["CHECKSTOP"] = {"gpio_pin": "J2", "direction": "falling"} GPIO_CONFIG["BMC_CP0_RESET_N"] = {"gpio_pin": "A1", "direction": "out"} # pcie switch reset GPIO_CONFIG["BMC_VS1_PERST_N"] = {"gpio_pin": "B7", "direction": "out"} # pcie slots reset - not connected? GPIO_CONFIG["BMC_CP0_PERST_ENABLE_R"] = {"gpio_pin": "A3", "direction": "out"} # SOFT_FSI_DAT GPIO_CONFIG["FSI_DATA"] = {"gpio_pin": "E0", "direction": "out"} # SOFT_FSI_CLK GPIO_CONFIG["FSI_CLK"] = {"gpio_pin": "AA0", "direction": "out"} # BMC_FSI_IN_ENA GPIO_CONFIG["FSI_ENABLE"] = {"gpio_pin": "D0", "direction": "out"} # FSI_JMFG0_PRSNT_N GPIO_CONFIG["CRONUS_SEL"] = {"gpio_pin": "A6", "direction": "out"} # FP_PWR_BTN_N GPIO_CONFIG["POWER_BUTTON"] = {"gpio_pin": "I3", "direction": "both"} # BMC_NMIBTN_IN_N GPIO_CONFIG["RESET_BUTTON"] = {"gpio_pin": "J1", "direction": "both"} # FP_ID_BTN_N GPIO_CONFIG["IDBTN"] = {"gpio_pin": "Q7", "direction": "out"} GPIO_CONFIGS = { "power_config": { "power_good_in": "SYS_PWROK_BUFF", "power_up_outs": [ ("SOFTWARE_PGOOD", True), ("BMC_POWER_UP", True), ], "reset_outs": [ ("BMC_CP0_RESET_N", False), ], }, "hostctl_config": { "fsi_data": "FSI_DATA", "fsi_clk": "FSI_CLK", "fsi_enable": "FSI_ENABLE", "cronus_sel": "CRONUS_SEL", "optionals": [], }, } # Miscellaneous non-poll sensor with system specific properties. # The sensor id is the same as those defined in ID_LOOKUP['SENSOR']. MISC_SENSORS = { 0x07: {"class": "BootCountSensor"}, 0x03: {"class": "BootProgressSensor"}, 0x02: {"class": "OperatingSystemStatusSensor"}, # Garrison value is used, Not in P9 XML yet. 0x0B: {"class": "PowerSupplyRedundancySensor"}, 0xDA: {"class": "TurboAllowedSensor"}, 0xD8: {"class": "PowerSupplyDeratingSensor"}, } # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4