OpenBIC
OpenSource Bridge-IC
plat_sensor_table.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef PLAT_SENSOR_TABLE_H
18#define PLAT_SENSOR_TABLE_H
19
20#include <stdint.h>
21#include "stdbool.h"
22
23/* Define configuration for sensors */
24#define NIC_TEMP_OFFSET 0x01
25#define NIC_OPTICS_TEMP_OFFSET 0x01
26#define TMP75_TEMP_OFFSET 0x00
27#define NIC_ADDR (0x3E >> 1)
28#define AMD_NIC_CHIP_TEMP_OFFSET 0x16
29#define AMD_NIC_DR4_MODULE_TEMP_OFFSET 0x19
30#define AMD_NIC_CPLD_ADDR (0x9E >> 1)
31#define NIC_0_POWER_MONITOR_ADDR (0x80 >> 1)
32#define NIC_1_POWER_MONITOR_ADDR (0x82 >> 1)
33#define NIC_2_POWER_MONITOR_ADDR (0x84 >> 1)
34#define NIC_3_POWER_MONITOR_ADDR (0x86 >> 1)
35#define NIC_4_POWER_MONITOR_ADDR (0x88 >> 1)
36#define NIC_5_POWER_MONITOR_ADDR (0x8A >> 1)
37#define NIC_6_POWER_MONITOR_ADDR (0x8C >> 1)
38#define NIC_7_POWER_MONITOR_ADDR (0x8E >> 1)
39
40#define HSC_MP5990_ADDR (0x40 >> 1)
41#define HSC_LTC4282_ADDR (0x82 >> 1)
42#define HSC_LTC4286_ADDR (0x82 >> 1)
43#define HSC_TEMP_NCT7718W_ADDR (0x98 >> 1)
44
45#define PEX_0_1_P0V8_VR_ADDR (0xC0 >> 1)
46#define PEX_2_3_P0V8_VR_ADDR (0xC4 >> 1)
47
48#define PEX_0_P1V25_POWER_MONITOR_ADDR (0x80 >> 1)
49#define PEX_1_P1V25_POWER_MONITOR_ADDR (0x82 >> 1)
50#define PEX_2_P1V25_POWER_MONITOR_ADDR (0x88 >> 1)
51#define PEX_3_P1V25_POWER_MONITOR_ADDR (0x8A >> 1)
52#define PEX_P1V8_POWER_MONITOR_ADDR (0x98 >> 1)
53#define DVT_PEX_P1V8_POWER_MONITOR_ADDR (0x9A >> 1)
54
55#define EVT_PEX_SWITCH_I2C_ADDR (0xD8 >> 1)
56
57#define DVT_PEX_SWITCH_0_I2C_ADDR (0xC0 >> 1)
58#define DVT_PEX_SWITCH_1_I2C_ADDR (0xC2 >> 1)
59#define DVT_PEX_SWITCH_2_I2C_ADDR (0xC4 >> 1)
60#define DVT_PEX_SWITCH_3_I2C_ADDR (0xC6 >> 1)
61
62#define SYSTEM_INLET_TEMP_ADDR (0x90 >> 1)
63#define SYSTEM_OUTLET_TEMP_L1_ADDR (0x90 >> 1)
64#define SYSTEM_OUTLET_TEMP_L2_ADDR (0x94 >> 1)
65#define SYSTEM_OUTLET_TEMP_R1_ADDR (0x98 >> 1)
66#define SYSTEM_OUTLET_TEMP_R2_ADDR (0x9C >> 1)
67
68#define SSD_COMMON_ADDR (0xD4 >> 1)
69#define SSD_OFFSET 0x00
70#define SSD_0_POWER_MONITOR_ADDR (0x80 >> 1)
71#define SSD_1_POWER_MONITOR_ADDR (0x82 >> 1)
72#define SSD_2_POWER_MONITOR_ADDR (0x84 >> 1)
73#define SSD_3_POWER_MONITOR_ADDR (0x86 >> 1)
74#define SSD_4_POWER_MONITOR_ADDR (0x88 >> 1)
75#define SSD_5_POWER_MONITOR_ADDR (0x8A >> 1)
76#define SSD_6_POWER_MONITOR_ADDR (0x8C >> 1)
77#define SSD_7_POWER_MONITOR_ADDR (0x8E >> 1)
78#define SSD_8_POWER_MONITOR_ADDR (0x90 >> 1)
79#define SSD_9_POWER_MONITOR_ADDR (0x92 >> 1)
80#define SSD_10_POWER_MONITOR_ADDR (0x94 >> 1)
81#define SSD_11_POWER_MONITOR_ADDR (0x96 >> 1)
82#define SSD_12_POWER_MONITOR_ADDR (0x98 >> 1)
83#define SSD_13_POWER_MONITOR_ADDR (0x9A >> 1)
84#define SSD_14_POWER_MONITOR_ADDR (0x9C >> 1)
85#define SSD_15_POWER_MONITOR_ADDR (0x9E >> 1)
86
87/* Define the device maximum number in this platform */
88#define PEX_MAX_NUMBER 4
89#define NIC_MAX_NUMBER 8
90#define SSD_MAX_NUMBER 16
91
92/* Define the sensor numbers used in this platform */
93#define SENSOR_NUM_TEMP_NIC_0 0x01
94#define SENSOR_NUM_VOLT_NIC_0 0x02
95#define SENSOR_NUM_IOUT_NIC_0 0x03
96#define SENSOR_NUM_POUT_NIC_0 0x04
97
98#define SENSOR_NUM_TEMP_NIC_1 0x05
99#define SENSOR_NUM_VOLT_NIC_1 0x06
100#define SENSOR_NUM_IOUT_NIC_1 0x07
101#define SENSOR_NUM_POUT_NIC_1 0x08
102
103#define SENSOR_NUM_TEMP_NIC_2 0x0A
104#define SENSOR_NUM_VOLT_NIC_2 0x0B
105#define SENSOR_NUM_IOUT_NIC_2 0x0C
106#define SENSOR_NUM_POUT_NIC_2 0x0D
107
108#define SENSOR_NUM_TEMP_NIC_3 0x11
109#define SENSOR_NUM_VOLT_NIC_3 0x12
110#define SENSOR_NUM_IOUT_NIC_3 0x13
111#define SENSOR_NUM_POUT_NIC_3 0x14
112
113#define SENSOR_NUM_TEMP_NIC_4 0x15
114#define SENSOR_NUM_VOLT_NIC_4 0x16
115#define SENSOR_NUM_IOUT_NIC_4 0x17
116#define SENSOR_NUM_POUT_NIC_4 0x18
117
118#define SENSOR_NUM_TEMP_NIC_5 0x1A
119#define SENSOR_NUM_VOLT_NIC_5 0x1B
120#define SENSOR_NUM_IOUT_NIC_5 0x1C
121#define SENSOR_NUM_POUT_NIC_5 0x1D
122
123#define SENSOR_NUM_TEMP_NIC_6 0x21
124#define SENSOR_NUM_VOLT_NIC_6 0x22
125#define SENSOR_NUM_IOUT_NIC_6 0x23
126#define SENSOR_NUM_POUT_NIC_6 0x24
127
128#define SENSOR_NUM_TEMP_NIC_7 0x25
129#define SENSOR_NUM_VOLT_NIC_7 0x26
130#define SENSOR_NUM_IOUT_NIC_7 0x27
131#define SENSOR_NUM_POUT_NIC_7 0x28
132
133#define SENSOR_NUM_TEMP_PDB_HSC 0x2A
134#define SENSOR_NUM_VOUT_PDB_HSC 0x2B
135#define SENSOR_NUM_IOUT_PDB_HSC 0x2C
136#define SENSOR_NUM_POUT_PDB_HSC 0x2D
137
138#define SENSOR_NUM_BB_P12V_AUX 0x30
139#define SENSOR_NUM_BB_P5V_AUX 0x31
140#define SENSOR_NUM_BB_P3V3_AUX 0x32
141#define SENSOR_NUM_BB_P1V2_AUX 0x33
142#define SENSOR_NUM_BB_P3V3 0x34
143#define SENSOR_NUM_BB_P1V8_PEX0 0x35
144#define SENSOR_NUM_BB_P1V8_PEX1 0x36
145#define SENSOR_NUM_BB_P1V8_PEX2 0x37
146#define SENSOR_NUM_BB_P1V8_PEX3 0x38
147
148#define SENSOR_NUM_PEX_0_VR_TEMP 0x40
149#define SENSOR_NUM_P0V8_VOLT_PEX_0 0x41
150#define SENSOR_NUM_P0V8_IOUT_PEX_0 0x42
151#define SENSOR_NUM_P0V8_POUT_PEX_0 0x43
152#define SENSOR_NUM_P1V25_VOLT_PEX_0 0x44
153#define SENSOR_NUM_P1V25_IOUT_PEX_0 0x45
154#define SENSOR_NUM_P1V25_POUT_PEX_0 0x46
155
156#define SENSOR_NUM_PEX_1_VR_TEMP 0x47
157#define SENSOR_NUM_P0V8_VOLT_PEX_1 0x48
158#define SENSOR_NUM_P0V8_IOUT_PEX_1 0x49
159#define SENSOR_NUM_P0V8_POUT_PEX_1 0x4A
160#define SENSOR_NUM_P1V25_VOLT_PEX_1 0x4B
161#define SENSOR_NUM_P1V25_IOUT_PEX_1 0x4C
162#define SENSOR_NUM_P1V25_POUT_PEX_1 0x4D
163
164#define SENSOR_NUM_PEX_2_VR_TEMP 0x50
165#define SENSOR_NUM_P0V8_VOLT_PEX_2 0x51
166#define SENSOR_NUM_P0V8_IOUT_PEX_2 0x52
167#define SENSOR_NUM_P0V8_POUT_PEX_2 0x53
168#define SENSOR_NUM_P1V25_VOLT_PEX_2 0x54
169#define SENSOR_NUM_P1V25_IOUT_PEX_2 0x55
170#define SENSOR_NUM_P1V25_POUT_PEX_2 0x56
171
172#define SENSOR_NUM_PEX_3_VR_TEMP 0x57
173#define SENSOR_NUM_P0V8_VOLT_PEX_3 0x58
174#define SENSOR_NUM_P0V8_IOUT_PEX_3 0x59
175#define SENSOR_NUM_P0V8_POUT_PEX_3 0x5A
176#define SENSOR_NUM_P1V25_VOLT_PEX_3 0x5B
177#define SENSOR_NUM_P1V25_IOUT_PEX_3 0x5C
178#define SENSOR_NUM_P1V25_POUT_PEX_3 0x5D
179
180#define SENSOR_NUM_P1V8_VOLT_PEX 0x60
181#define SENSOR_NUM_P1V8_IOUT_PEX 0x61
182#define SENSOR_NUM_P1V8_POUT_PEX 0x62
183
184#define SENSOR_NUM_TEMP_PEX_0 0x6A
185#define SENSOR_NUM_TEMP_PEX_1 0x6B
186#define SENSOR_NUM_TEMP_PEX_2 0x6C
187#define SENSOR_NUM_TEMP_PEX_3 0x6D
188
189#define SENSOR_NUM_SYSTEM_INLET_TEMP 0x70
190#define SENSOR_NUM_OUTLET_TEMP_L1 0x71
191#define SENSOR_NUM_OUTLET_TEMP_L2 0x72
192#define SENSOR_NUM_OUTLET_TEMP_R1 0x73
193#define SENSOR_NUM_OUTLET_TEMP_R2 0x74
194
195#define SENSOR_NUM_TEMP_E1S_0 0x80
196#define SENSOR_NUM_VOLT_E1S_0 0x81
197#define SENSOR_NUM_CURR_E1S_0 0x82
198#define SENSOR_NUM_POUT_E1S_0 0x83
199
200#define SENSOR_NUM_TEMP_E1S_1 0x84
201#define SENSOR_NUM_VOLT_E1S_1 0x85
202#define SENSOR_NUM_CURR_E1S_1 0x86
203#define SENSOR_NUM_POUT_E1S_1 0x87
204
205#define SENSOR_NUM_TEMP_E1S_2 0x88
206#define SENSOR_NUM_VOLT_E1S_2 0x89
207#define SENSOR_NUM_CURR_E1S_2 0x8A
208#define SENSOR_NUM_POUT_E1S_2 0x8B
209
210#define SENSOR_NUM_TEMP_E1S_3 0x8C
211#define SENSOR_NUM_VOLT_E1S_3 0x8D
212#define SENSOR_NUM_CURR_E1S_3 0x8E
213#define SENSOR_NUM_POUT_E1S_3 0x8F
214
215#define SENSOR_NUM_TEMP_E1S_4 0x90
216#define SENSOR_NUM_VOLT_E1S_4 0x91
217#define SENSOR_NUM_CURR_E1S_4 0x92
218#define SENSOR_NUM_POUT_E1S_4 0x93
219
220#define SENSOR_NUM_TEMP_E1S_5 0x94
221#define SENSOR_NUM_VOLT_E1S_5 0x95
222#define SENSOR_NUM_CURR_E1S_5 0x96
223#define SENSOR_NUM_POUT_E1S_5 0x97
224
225#define SENSOR_NUM_TEMP_E1S_6 0x98
226#define SENSOR_NUM_VOLT_E1S_6 0x99
227#define SENSOR_NUM_CURR_E1S_6 0x9A
228#define SENSOR_NUM_POUT_E1S_6 0x9B
229
230#define SENSOR_NUM_TEMP_E1S_7 0x9C
231#define SENSOR_NUM_VOLT_E1S_7 0x9D
232#define SENSOR_NUM_CURR_E1S_7 0x9E
233#define SENSOR_NUM_POUT_E1S_7 0x9F
234
235#define SENSOR_NUM_TEMP_E1S_8 0xA0
236#define SENSOR_NUM_VOLT_E1S_8 0xA1
237#define SENSOR_NUM_CURR_E1S_8 0xA2
238#define SENSOR_NUM_POUT_E1S_8 0xA3
239
240#define SENSOR_NUM_TEMP_E1S_9 0xA4
241#define SENSOR_NUM_VOLT_E1S_9 0xA5
242#define SENSOR_NUM_CURR_E1S_9 0xA6
243#define SENSOR_NUM_POUT_E1S_9 0xA7
244
245#define SENSOR_NUM_TEMP_E1S_10 0xA8
246#define SENSOR_NUM_VOLT_E1S_10 0xA9
247#define SENSOR_NUM_CURR_E1S_10 0xAA
248#define SENSOR_NUM_POUT_E1S_10 0xAB
249
250#define SENSOR_NUM_TEMP_E1S_11 0xAC
251#define SENSOR_NUM_VOLT_E1S_11 0xAD
252#define SENSOR_NUM_CURR_E1S_11 0xAE
253#define SENSOR_NUM_POUT_E1S_11 0xAF
254
255#define SENSOR_NUM_TEMP_E1S_12 0xB0
256#define SENSOR_NUM_VOLT_E1S_12 0xB1
257#define SENSOR_NUM_CURR_E1S_12 0xB2
258#define SENSOR_NUM_POUT_E1S_12 0xB3
259
260#define SENSOR_NUM_TEMP_E1S_13 0xB4
261#define SENSOR_NUM_VOLT_E1S_13 0xB5
262#define SENSOR_NUM_CURR_E1S_13 0xB6
263#define SENSOR_NUM_POUT_E1S_13 0xB7
264
265#define SENSOR_NUM_TEMP_E1S_14 0xB8
266#define SENSOR_NUM_VOLT_E1S_14 0xB9
267#define SENSOR_NUM_CURR_E1S_14 0xBA
268#define SENSOR_NUM_POUT_E1S_14 0xBB
269
270#define SENSOR_NUM_TEMP_E1S_15 0xBC
271#define SENSOR_NUM_VOLT_E1S_15 0xBD
272#define SENSOR_NUM_CURR_E1S_15 0xBE
273#define SENSOR_NUM_POUT_E1S_15 0xBF
274
275#define SENSOR_NUM_TEMP_NIC_OPTICS_0 0xC0
276#define SENSOR_NUM_TEMP_NIC_OPTICS_1 0xC1
277#define SENSOR_NUM_TEMP_NIC_OPTICS_2 0xC2
278#define SENSOR_NUM_TEMP_NIC_OPTICS_3 0xC3
279#define SENSOR_NUM_TEMP_NIC_OPTICS_4 0xC4
280#define SENSOR_NUM_TEMP_NIC_OPTICS_5 0xC5
281#define SENSOR_NUM_TEMP_NIC_OPTICS_6 0xC6
282#define SENSOR_NUM_TEMP_NIC_OPTICS_7 0xC7
283
284/* The sensors of different source components by ADC */
285#define SENSOR_NUM_HSC_TYPE 0xF0
286#define SENSOR_NUM_VR_TYPE 0xF1
287#define SENSOR_NUM_ADC_TYPE 0xF2
288
289uint8_t plat_get_config_size();
290void load_sensor_config(void);
292bool is_e1s_access(uint8_t sensor_num);
293bool is_nic_access(uint8_t sensor_num);
294bool is_nic_optics_access(uint8_t sensor_num);
295bool is_dc_access(uint8_t sensor_num);
296
297#endif
void load_sensor_config(void)
Definition: sensor.c:1479
uint8_t plat_get_config_size()
Definition: sensor.c:1474
bool is_dc_access(uint8_t sensor_num)
Definition: plat_sensor_table.c:1564
bool is_e1s_access(uint8_t sensor_num)
Definition: plat_sensor_table.c:1921
void update_nic_sensor_config_for_pollara(void)
Definition: plat_sensor_table.c:1349
bool is_nic_access(uint8_t sensor_num)
Definition: plat_sensor_table.c:1688
bool is_nic_optics_access(uint8_t sensor_num)
Definition: plat_sensor_table.c:1698
uint8_t sensor_num
Definition: storage_handler.h:6