OpenBIC
OpenSource Bridge-IC
plat_class.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_CLASS_H
18#define PLAT_CLASS_H
19
20#include <stdbool.h>
21#include <stdint.h>
22
23#define SYS_CLASS_1 1
24#define SYS_CLASS_2 2
25
26#define CPLD_ADDR 0x21 // 7-bit address
27#define CPLD_CLASS_TYPE_REG 0x05
28#define CPLD_2OU_EXPANSION_CARD_REG 0x06
29#define CPLD_BOARD_REV_ID_REG 0x08
30#define CPLD_1OU_CARD_DETECTION 0x09
31#define CPLD_1OU_VPP_POWER_STATUS 0x11
32#define I2C_DATA_SIZE 5
33#define NUMBER_OF_ADC_CHANNEL 16
34#define AST1030_ADC_BASE_ADDR 0x7e6e9000
35#define E1S_BOOT_OFFSET_CARD_PRSNT 0x10
36#define PRSNT_E1S_BOOT_BIT 2
37
38#define MAX_1OU_M2_COUNT 4
39
52};
53
54typedef struct _CARD_STATUS_ {
55 bool present;
56 uint8_t card_type;
58
70};
71
73 TYPE_2OU_DPV2_8 = 0x07, // DPV2x8
74 TYPE_2OU_DPV2_16 = 0x70, // DPV2x16
77};
78
79/* ADC channel number */
83};
84
91};
92
96};
97
100};
101
107};
108
113};
114
115uint8_t get_system_class();
116uint8_t get_system_sku();
119uint8_t get_board_revision();
120uint8_t get_hsc_module();
121uint8_t get_vr_module(void);
123bool get_adc_voltage(int channel, float *voltage);
124void init_hsc_module();
127void read_adm1278_model();
128void read_mp5990_model();
129void mp5998_init();
132#endif
uint8_t get_hsc_module()
Definition: plat_class.c:31
HSC_MODULE
Definition: plat_class.h:23
@ HSC_MODULE_UNKNOWN
Definition: plat_class.h:26
uint8_t get_board_revision()
Definition: plat_class.c:431
VR_MODULE
Definition: plat_class.h:92
int init_platform_config()
Definition: expansion_board.c:43
uint8_t get_vr_module()
Definition: plat_class.c:451
@ HSC_MODULE_LTC4286
Definition: plat_class.h:88
struct _CARD_STATUS_ CARD_STATUS
uint8_t get_e1s_boot_drive_module()
Definition: plat_class.c:73
E1S_BOOT_DRIVE_MODULE
Definition: plat_class.h:109
@ E1S_BOOT_DRIVE_MODULE_SQ52205
Definition: plat_class.h:112
@ E1S_BOOT_DRIVE_MODULE_INA233
Definition: plat_class.h:111
@ E1S_BOOT_DRIVE_MODULE_UNKNOWN
Definition: plat_class.h:110
SYSTEM_SKU
Definition: plat_class.h:98
@ SYS_TYPE_EMR
Definition: plat_class.h:99
@ VR_MODULE_TPS53689
Definition: plat_class.h:106
@ VR_MODULE_UNKNOWN
Definition: plat_class.h:103
@ VR_MODULE_XDPE15284D
Definition: plat_class.h:105
@ VR_MODULE_ISL69259
Definition: plat_class.h:104
uint8_t get_system_class()
Definition: util_sys.c:146
void init_hsc_module()
Definition: plat_class.c:202
CARD_STATUS get_1ou_status()
Definition: plat_class.c:53
BIC_CARD_PRESENT
Definition: plat_class.h:93
@ CARD_PRESENT
Definition: plat_class.h:95
@ CARD_UNPRESENT
Definition: plat_class.h:94
uint8_t get_system_sku()
Definition: plat_class.c:48
void read_adm1278_model()
Definition: plat_class.c:266
CARD_STATUS get_2ou_status()
Definition: plat_class.c:58
void set_bootdrive_exist_status()
Definition: plat_class.c:374
_1OU_CARD_TYPE_
Definition: plat_class.h:59
@ TYPE_1OU_EXP_WITH_6_M2
Definition: plat_class.h:61
@ TYPE_1OU_RAINBOW_FALLS
Definition: plat_class.h:62
@ TYPE_1OU_EXP_WITH_NIC
Definition: plat_class.h:67
@ TYPE_1OU_VERNAL_FALLS_WITH_AST
Definition: plat_class.h:64
@ TYPE_1OU_SI_TEST_CARD
Definition: plat_class.h:60
@ TYPE_1OU_WAIMANO_FALLS
Definition: plat_class.h:66
@ TYPE_1OU_ABSENT
Definition: plat_class.h:68
@ TYPE_1OU_KAHUNA_FALLS
Definition: plat_class.h:65
@ TYPE_1OU_VERNAL_FALLS_WITH_TI
Definition: plat_class.h:63
@ TYPE_1OU_UNKNOWN
Definition: plat_class.h:69
bool get_bootdrive_exist_status()
Definition: plat_class.c:392
void read_mp5990_model()
Definition: plat_class.c:291
void init_e1s_boot_drive_module()
Definition: plat_class.c:197
@ HSC_MODULE_ADM1278
Definition: plat_class.h:86
@ HSC_MODULE_LTC4282
Definition: plat_class.h:88
@ HSC_MODULE_MP5990
Definition: plat_class.h:87
_2OU_CARD_TYPE_
Definition: plat_class.h:72
@ TYPE_2OU_DPV2_8
Definition: plat_class.h:73
@ TYPE_2OU_DPV2_16
Definition: plat_class.h:74
@ TYPE_2OU_ABSENT
Definition: plat_class.h:75
@ TYPE_2OU_UNKNOWN
Definition: plat_class.h:76
void mp5998_init()
Definition: plat_class.c:315
ADC_CHANNEL
Definition: plat_class.h:80
@ CHANNEL_7
Definition: plat_class.h:82
@ CHANNEL_6
Definition: plat_class.h:81
BIC_BOARD_REVISION
Definition: plat_class.h:40
@ SYS_BOARD_MP_HOTSWAP
Definition: plat_class.h:50
@ SYS_BOARD_DVT_HOTSWAP
Definition: plat_class.h:46
@ SYS_BOARD_EVT3_EFUSE
Definition: plat_class.h:45
@ SYS_BOARD_DVT_EFUSE
Definition: plat_class.h:47
@ SYS_BOARD_EVT3_HOTSWAP
Definition: plat_class.h:44
@ SYS_BOARD_MP_EFUSE
Definition: plat_class.h:51
@ SYS_BOARD_PVT_HOTSWAP
Definition: plat_class.h:48
@ SYS_BOARD_EVT2
Definition: plat_class.h:43
@ SYS_BOARD_POC
Definition: plat_class.h:41
@ SYS_BOARD_EVT
Definition: plat_class.h:42
@ SYS_BOARD_PVT_EFUSE
Definition: plat_class.h:49
bool get_adc_voltage(int channel, float *voltage)
Definition: plat_class.c:126
Definition: plat_class.h:54
uint8_t card_type
Definition: plat_class.h:56
bool present
Definition: plat_class.h:55