xref: /openbmc/skeleton/configs/Palmetto.py (revision ed9ff701)
1## System states
2##   state can change to next state in 2 ways:
3##   - a process emits a GotoSystemState signal with state name to goto
4##   - objects specified in EXIT_STATE_DEPEND have started
5SYSTEM_STATES = [
6	'BASE_APPS',
7	'BMC_STARTING',
8	'BMC_READY',
9	'HOST_POWERING_ON',
10	'HOST_POWERED_ON',
11	'HOST_BOOTING',
12	'HOST_BOOTED',
13	'HOST_POWERED_OFF',
14]
15
16EXIT_STATE_DEPEND = {
17	'BASE_APPS' : {
18		'/org/openbmc/sensors': 0,
19	},
20	'BMC_STARTING' : {
21		'/org/openbmc/control/chassis0': 0,
22		'/org/openbmc/control/power0' : 0,
23		'/org/openbmc/control/led/identify' : 0,
24		'/org/openbmc/control/host0' : 0,
25		'/org/openbmc/control/flash/bios' : 0,
26	}
27}
28
29ID_LOOKUP = {
30	'FRU' : {
31		0x0d : '<inventory_root>/system/chassis',
32		0x34 : '<inventory_root>/system/chassis/motherboard',
33		0x01 : '<inventory_root>/system/chassis/motherboard/cpu',
34		0x02 : '<inventory_root>/system/chassis/motherboard/membuf',
35		0x03 : '<inventory_root>/system/chassis/motherboard/dimm0',
36		0x04 : '<inventory_root>/system/chassis/motherboard/dimm1',
37		0x05 : '<inventory_root>/system/chassis/motherboard/dimm2',
38		0x06 : '<inventory_root>/system/chassis/motherboard/dimm3',
39		0x35 : '<inventory_root>/system',
40	},
41	'FRU_STR' : {
42		'PRODUCT_15' : '<inventory_root>/system',
43		'CHASSIS_2' : '<inventory_root>/system/chassis',
44		'BOARD_1'   : '<inventory_root>/system/chassis/motherboard/cpu',
45		'BOARD_2'   : '<inventory_root>/system/chassis/motherboard/membuf',
46		'BOARD_14'   : '<inventory_root>/system/chassis/motherboard',
47		'PRODUCT_3'   : '<inventory_root>/system/chassis/motherboard/dimm0',
48		'PRODUCT_4'   : '<inventory_root>/system/chassis/motherboard/dimm1',
49		'PRODUCT_5'   : '<inventory_root>/system/chassis/motherboard/dimm2',
50		'PRODUCT_6'   : '<inventory_root>/system/chassis/motherboard/dimm3',
51	},
52	'SENSOR' : {
53		0x34 : '<inventory_root>/system/chassis/motherboard',
54		0x37 : '<inventory_root>/system/chassis/motherboard/refclock',
55		0x38 : '<inventory_root>/system/chassis/motherboard/pcieclock',
56		0x39 : '<inventory_root>/system/chassis/motherboard/todclock',
57		0x3A : '<inventory_root>/system/chassis/apss',
58		0x2f : '<inventory_root>/system/chassis/motherboard/cpu',
59		0x22 : '<inventory_root>/system/chassis/motherboard/cpu/core1',
60		0x23 : '<inventory_root>/system/chassis/motherboard/cpu/core2',
61		0x24 : '<inventory_root>/system/chassis/motherboard/cpu/core3',
62		0x25 : '<inventory_root>/system/chassis/motherboard/cpu/core4',
63		0x26 : '<inventory_root>/system/chassis/motherboard/cpu/core5',
64		0x27 : '<inventory_root>/system/chassis/motherboard/cpu/core6',
65		0x28 : '<inventory_root>/system/chassis/motherboard/cpu/core9',
66		0x29 : '<inventory_root>/system/chassis/motherboard/cpu/core10',
67		0x2a : '<inventory_root>/system/chassis/motherboard/cpu/core11',
68		0x2b : '<inventory_root>/system/chassis/motherboard/cpu/core12',
69		0x2c : '<inventory_root>/system/chassis/motherboard/cpu/core13',
70		0x2d : '<inventory_root>/system/chassis/motherboard/cpu/core14',
71		0x2e : '<inventory_root>/system/chassis/motherboard/membuf',
72		0x1e : '<inventory_root>/system/chassis/motherboard/dimm0',
73		0x1f : '<inventory_root>/system/chassis/motherboard/dimm1',
74		0x20 : '<inventory_root>/system/chassis/motherboard/dimm2',
75		0x21 : '<inventory_root>/system/chassis/motherboard/dimm3',
76		0x09 : '/org/openbmc/sensors/host/BootCount',
77		0x05 : '/org/openbmc/sensors/host/BootProgress',
78		0x08 : '/org/openbmc/sensors/host/cpu0/OccStatus',
79		0x32 : '/org/openbmc/sensors/host/OperatingSystemStatus',
80		0x33 : '/org/openbmc/sensors/host/PowerCap',
81	},
82	'GPIO_PRESENT' : {
83		'SLOT0_PRESENT' : '<inventory_root>/system/chassis/motherboard/pciecard_x16',
84		'SLOT1_PRESENT' : '<inventory_root>/system/chassis/motherboard/pciecard_x8',
85	}
86}
87
88GPIO_CONFIG = {}
89GPIO_CONFIG['FSI_CLK']    =   { 'gpio_pin': 'A4', 'direction': 'out' }
90GPIO_CONFIG['FSI_DATA']   =   { 'gpio_pin': 'A5', 'direction': 'out' }
91GPIO_CONFIG['FSI_ENABLE'] =   { 'gpio_pin': 'D0', 'direction': 'out' }
92GPIO_CONFIG['POWER_PIN']  =   { 'gpio_pin': 'E1', 'direction': 'out'  }
93GPIO_CONFIG['CRONUS_SEL'] =   { 'gpio_pin': 'A6', 'direction': 'out'  }
94GPIO_CONFIG['PGOOD']      =   { 'gpio_pin': 'C7', 'direction': 'in'  }
95GPIO_CONFIG['BMC_THROTTLE'] = { 'gpio_pin': 'J3', 'direction': 'out' }
96GPIO_CONFIG['IDBTN']       = { 'gpio_pin': 'Q7', 'direction': 'out' }
97GPIO_CONFIG['POWER_BUTTON'] = { 'gpio_pin': 'E0', 'direction': 'both' }
98GPIO_CONFIG['PCIE_RESET']   = { 'gpio_pin': 'B5', 'direction': 'out' }
99GPIO_CONFIG['USB_RESET']    = { 'gpio_pin': 'B6', 'direction': 'out' }
100GPIO_CONFIG['SLOT0_RISER_PRESENT'] =   { 'gpio_pin': 'N0', 'direction': 'in' }
101GPIO_CONFIG['SLOT1_RISER_PRESENT'] =   { 'gpio_pin': 'N1', 'direction': 'in' }
102GPIO_CONFIG['SLOT2_RISER_PRESENT'] =   { 'gpio_pin': 'N2', 'direction': 'in' }
103GPIO_CONFIG['SLOT0_PRESENT'] =         { 'gpio_pin': 'N3', 'direction': 'in' }
104GPIO_CONFIG['SLOT1_PRESENT'] =         { 'gpio_pin': 'N4', 'direction': 'in' }
105GPIO_CONFIG['SLOT2_PRESENT'] =         { 'gpio_pin': 'N5', 'direction': 'in' }
106GPIO_CONFIG['MEZZ0_PRESENT'] =         { 'gpio_pin': 'O0', 'direction': 'in' }
107GPIO_CONFIG['MEZZ1_PRESENT'] =         { 'gpio_pin': 'O1', 'direction': 'in' }
108GPIO_CONFIG['CHECKSTOP']      =   { 'gpio_pin': 'P5', 'direction': 'falling' }
109
110HWMON_CONFIG = {
111	'0-0068' :  {
112		'names' : {
113			'temp1_input' : { 'object_path' : 'temperature/rtc','poll_interval' : 5000,'scale' : -3,'units' : 'C' },
114		}
115	},
116	'2-004c' :  {
117		'names' : {
118			'temp1_input' : { 'object_path' : 'temperature/ambient','poll_interval' : 5000,'scale' : -3,'units' : 'C' },
119		}
120	},
121	'3-0050' : {
122		'names' : {
123			'caps_curr_powercap' : { 'object_path' : 'powercap/curr_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' },
124			'caps_curr_powerreading' : { 'object_path' : 'powercap/system_power','poll_interval' : 10000,'scale' : 1,'units' : 'W' },
125			'caps_max_powercap' : { 'object_path' : 'powercap/max_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' },
126			'caps_min_powercap' : { 'object_path' : 'powercap/min_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' },
127			'caps_norm_powercap' : { 'object_path' : 'powercap/n_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' },
128			'caps_user_powerlimit' : { 'object_path' : 'powercap/user_cap','poll_interval' : 10000,'scale' : 1,'units' : 'W' },
129		}
130	}
131}
132
133GPIO_CONFIGS = {
134    'power_config' : {
135        'power_good_in' : 'PGOOD',
136        'power_up_outs' : [
137            ('POWER_PIN', False),
138        ],
139        'reset_outs' : [
140            ('USB_RESET', False),
141        ],
142        'pci_reset_outs': [
143            # net name, polarity, reset hold
144            ('PCIE_RESET', False, False),
145        ],
146    },
147    'hostctl_config' : {
148        'fsi_data' : 'FSI_DATA',
149        'fsi_clk' : 'FSI_CLK',
150        'fsi_enable' : 'FSI_ENABLE',
151        'cronus_sel' : 'CRONUS_SEL',
152        'optionals' : [
153            ('BMC_THROTTLE', True),
154            ('IDBTN', False),
155        ],
156    },
157}
158
159# Miscellaneous non-poll sensor with system specific properties.
160# The sensor id is the same as those defined in ID_LOOKUP['SENSOR'].
161MISC_SENSORS = {
162	0x09 : { 'class' : 'BootCountSensor' },
163	0x05 : { 'class' : 'BootProgressSensor' },
164	0x08 : { 'class' : 'OccStatusSensor',
165		'os_path' : '/sys/class/i2c-adapter/i2c-3/3-0050/online' },
166	0x32 : { 'class' : 'OperatingSystemStatusSensor' },
167	0x33 : { 'class' : 'PowerCap',
168		'os_path' : '/sys/class/hwmon/hwmon1/user_powercap' },
169}
170
171# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
172