OpenBIC
OpenSource Bridge-IC
plat_isr.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_FUNC_H
18#define PLAT_FUNC_H
19
20#include <stdint.h>
21#include <zephyr.h>
22#include "ipmi.h"
23
24#define DETECT_SMI_DELAY_90S 90
25#define CPLD_OFFSET_10 0x10
26#define CPLD_BIT_E1S_0_12V_POWER_R_EN 5
27#define CPLD_BIT_E1S_0_3V3_POWER_R_EN 6
28
33};
34
35typedef enum { DEASSERT = 0, ASSERT } event_state_t;
36
38
39typedef enum {
52
53typedef struct _vr_fault_info {
56 uint8_t cpld_reg_bit;
58 uint8_t vr_i2c_bus;
59 uint8_t vr_addr;
60 uint8_t vr_page;
62
63typedef struct _cpld_reg_info {
68
69typedef struct _add_vr_sel_info {
70 bool is_init;
71 uint8_t gpio_num;
72 struct k_work_delayable add_sel_work;
74
75void send_gpio_interrupt(uint8_t gpio_num);
76int get_set_1ou_m2_power(ipmi_msg *msg, uint8_t device_id, uint8_t option);
77void ISR_PLTRST();
78void ISR_SLP3();
79void ISR_DC_ON();
80void ISR_BMC_PRDY();
81void ISR_PWRGD_CPU();
82void ISR_CATERR();
83void ISR_DBP_PRSNT();
86void ISR_SYS_THROTTLE();
88void ISR_HSC_OC();
89void ISR_CPU_MEMHOT();
90void ISR_CPUVR_HOT();
91void ISR_PCH_PWRGD();
92void ISR_MB_THROTTLE();
93void ISR_HSC_THROTTLE();
94void ISR_FM_THROTTLE();
95void ISR_RMCA();
96void ISR_CPU_VPP_INT();
97void ISR_NMI();
98void ISR_SMI();
101void ISR_VR_PWR_FAULT();
102void init_vr_event_work();
103#endif
struct _cpld_reg_info cpld_reg_info
void ISR_SYS_THROTTLE()
Definition: plat_isr.c:424
struct _add_vr_sel_info add_vr_sel_info
void ISR_CATERR()
Definition: plat_isr.c:242
void ISR_CPUVR_HOT()
Definition: plat_isr.c:506
void ISR_HSC_OC()
Definition: plat_isr.c:462
void ISR_MB_THROTTLE()
Definition: plat_isr.c:354
struct _vr_fault_info vr_fault_info
vr_source_id_t
Definition: plat_isr.h:39
@ P5V_STBY
Definition: plat_isr.h:47
@ P3V3_STBY
Definition: plat_isr.h:48
@ PVCCFA_EHV_FIVRA_CPU0
Definition: plat_isr.h:41
@ P1V8_STBY
Definition: plat_isr.h:46
@ PVCCD_HV_CPU
Definition: plat_isr.h:44
@ PVCCFA_EHV_CPU0
Definition: plat_isr.h:43
@ VR_P12V_E1S_0
Definition: plat_isr.h:49
@ P1V05_PCH_STB
Definition: plat_isr.h:45
@ VR_P3V3_E1S_0
Definition: plat_isr.h:50
@ PVCCINFAON_CPU0
Definition: plat_isr.h:42
@ PVCCIN_CPU0
Definition: plat_isr.h:40
void ISR_NMI()
Definition: plat_isr.c:562
void ISR_PLTRST()
Definition: plat_isr.c:258
void init_vr_event_work()
Definition: plat_isr.c:966
void ISR_DC_ON()
Definition: plat_isr.c:115
void ISR_POST_COMPLETE()
Definition: plat_isr.c:99
void ISR_CPU_MEMHOT()
Definition: plat_isr.c:484
void ISR_VR_PWR_FAULT()
Definition: plat_isr.c:977
void ISR_PWRGD_CPU()
Definition: plat_isr.c:192
void ISR_FM_THROTTLE()
Definition: plat_isr.c:268
void ISR_E1S_0_INA233_ALRT()
Definition: plat_isr.c:668
void ISR_SOC_THMALTRIP()
Definition: plat_isr.c:365
event_state_t
Definition: plat_isr.h:35
@ DEASSERT
Definition: plat_isr.h:35
@ ASSERT
Definition: plat_isr.h:35
int get_set_1ou_m2_power(ipmi_msg *msg, uint8_t device_id, uint8_t option)
Definition: plat_power.c:64
void ISR_SMI()
Definition: plat_isr.c:620
void ISR_PCH_PWRGD()
Definition: plat_isr.c:528
void ISR_RMCA()
Definition: plat_isr.c:545
GET_SET_M2_OPTION
Definition: plat_isr.h:29
@ DEVICE_GET_POWER_STATUS
Definition: plat_isr.h:32
@ DEVICE_SET_POWER_ON
Definition: plat_isr.h:31
@ DEVICE_SET_POWER_OFF
Definition: plat_isr.h:30
void send_gpio_interrupt(uint8_t gpio_num)
Definition: plat_isr.c:39
void ISR_BMC_PRDY()
Definition: plat_isr.c:163
void ISR_SMB_SENSOR_LVC3_ALERT()
Definition: plat_isr.c:678
void ISR_HSC_THROTTLE()
Definition: plat_isr.c:290
void ISR_PCH_THMALTRIP()
Definition: plat_isr.c:434
void ISR_DBP_PRSNT()
Definition: plat_isr.c:263
void ISR_CPU_VPP_INT()
Definition: plat_isr.c:671
cpld_reg_info_idx
Definition: plat_isr.h:37
@ CPLD_REG_INFO_IDX_MAX
Definition: plat_isr.h:37
@ CPLD_REG_INFO_IDX_1
Definition: plat_isr.h:37
@ CPLD_REG_INFO_IDX_0
Definition: plat_isr.h:37
void ISR_SLP3()
Definition: plat_isr.c:86
device_id
Definition: power_shell.h:29
Definition: vr_fault.h:41
struct k_work_delayable add_sel_work
Definition: plat_isr.h:72
bool is_init
Definition: plat_isr.h:70
uint8_t gpio_num
Definition: plat_isr.h:71
Definition: plat_isr.h:63
uint8_t cpld_reg_i2c_bus
Definition: plat_isr.h:64
uint8_t cpld_reg_offset
Definition: plat_isr.h:66
uint8_t cpld_reg_addr
Definition: plat_isr.h:65
Definition: plat_isr.h:53
bool is_pmbus_vr
Definition: plat_isr.h:57
uint8_t cpld_reg_data_idx
Definition: plat_isr.h:55
vr_source_id_t vr_source_id
Definition: plat_isr.h:54
uint8_t vr_i2c_bus
Definition: plat_isr.h:58
uint8_t vr_page
Definition: plat_isr.h:60
uint8_t cpld_reg_bit
Definition: plat_isr.h:56
uint8_t vr_addr
Definition: plat_isr.h:59
Definition: ipmb.h:165