openMMC
Open Source Modular MMC for AMCs
Loading...
Searching...
No Matches
sdr.h File Reference
#include "ipmb.h"
Include dependency graph for sdr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SDR_entry_hdr_t
 
struct  SDR_type_01h_t
 
struct  SDR_type_02h_t
 
struct  SDR_type_12h_t
 
struct  sensor_t
 

Macros

#define NUM_SENSOR   21 /* Number of sensors */
 
#define NUM_SDR   (NUM_SENSOR+1) /* Number of SDRs */
 
#define SENSOR_TYPE_TEMPERATURE   0x01
 
#define SENSOR_TYPE_VOLTAGE   0x02
 
#define SENSOR_TYPE_CURRENT   0x03
 
#define SENSOR_TYPE_FAN   0x04
 
#define SENSOR_TYPE_WATCHDOG   0x23
 
#define SENSOR_TYPE_VERSION_CHANGE   0x2B
 
#define SENSOR_TYPE_HOT_SWAP   0xF2
 
#define ASSERTION_EVENT   0x00
 
#define DEASSERTION_EVENT   0x80
 
#define SENSOR_STATE_NORMAL   0x00
 
#define SENSOR_STATE_LOW   0x01
 
#define SENSOR_STATE_LOW_CRIT   0x02
 
#define SENSOR_STATE_LOW_NON_REC   0x04
 
#define SENSOR_STATE_HIGH   0x08
 
#define SENSOR_STATE_HIGH_CRIT   0x10
 
#define SENSOR_STATE_HIGH_NON_REC   0x20
 
#define IPMI_THRESHOLD_LNC_GL   0x00
 
#define IPMI_THRESHOLD_LNC_GH   0x01
 
#define IPMI_THRESHOLD_LC_GL   0x02
 
#define IPMI_THRESHOLD_LC_GH   0x03
 
#define IPMI_THRESHOLD_LNR_GL   0x04
 
#define IPMI_THRESHOLD_LNR_GH   0x05
 
#define IPMI_THRESHOLD_UNC_GL   0x06
 
#define IPMI_THRESHOLD_UNC_GH   0x07
 
#define IPMI_THRESHOLD_UC_GL   0x08
 
#define IPMI_THRESHOLD_UC_GH   0x09
 
#define IPMI_THRESHOLD_UNR_GL   0x0A
 
#define IPMI_THRESHOLD_UNR_GH   0x0B
 
#define UNSIGNED   0x00
 
#define SIGNED   0x01
 
#define LOWER_EQ   0x00
 
#define UPPER_EQ   0x01
 
#define GET_SENSOR_TYPE(sensor)   ((SDR_type_01h_t *)sensor->sdr)->sensortype
 
#define GET_EVENT_TYPE_CODE(n)   ((SDR_type_01h_t *)sensor->sdr)->event_reading_type
 

Typedefs

typedef struct sensor_t sensor_t
 

Enumerations

enum  SDR_TYPE { TYPE_01 = 0x1 , TYPE_02 = 0x2 , TYPE_11 = 0x11 , TYPE_12 = 0x12 }
 

Functions

void sdr_init (void)
 
void amc_sdr_init (void)
 
void sensor_init (void)
 
void sensor_enable (sensor_t *sensor)
 
void sensor_disable (sensor_t *sensor)
 
void check_sensor_event (sensor_t *sensor)
 
void sensor_state_check (sensor_t *sensor)
 
sensor_tsdr_insert_entry (SDR_TYPE type, void *sdr, TaskHandle_t *monitor_task, uint8_t diag_id, uint8_t slave_addr)
 
void sdr_remove_entry (sensor_t *entry)
 
void sdr_pop (void)
 
sensor_tsdr_add_settings (uint8_t chipid, void *settings)
 
sensor_tfind_sensor_by_sdr (void *sdr)
 
sensor_tfind_sensor_by_id (uint8_t id)
 

Variables

volatile uint8_t sdr_count
 
sensor_tsdr_head
 
sensor_tsdr_tail
 
const SDR_type_12h_t SDR0
 
const SDR_type_12h_t SDR_RTM_DEV_LOCATOR
 

Macro Definition Documentation

◆ ASSERTION_EVENT

#define ASSERTION_EVENT   0x00

◆ DEASSERTION_EVENT

#define DEASSERTION_EVENT   0x80

◆ GET_EVENT_TYPE_CODE

#define GET_EVENT_TYPE_CODE ( n)    ((SDR_type_01h_t *)sensor->sdr)->event_reading_type

◆ GET_SENSOR_TYPE

#define GET_SENSOR_TYPE ( sensor)    ((SDR_type_01h_t *)sensor->sdr)->sensortype

◆ IPMI_THRESHOLD_LC_GH

#define IPMI_THRESHOLD_LC_GH   0x03

◆ IPMI_THRESHOLD_LC_GL

#define IPMI_THRESHOLD_LC_GL   0x02

◆ IPMI_THRESHOLD_LNC_GH

#define IPMI_THRESHOLD_LNC_GH   0x01

◆ IPMI_THRESHOLD_LNC_GL

#define IPMI_THRESHOLD_LNC_GL   0x00

◆ IPMI_THRESHOLD_LNR_GH

#define IPMI_THRESHOLD_LNR_GH   0x05

◆ IPMI_THRESHOLD_LNR_GL

#define IPMI_THRESHOLD_LNR_GL   0x04

◆ IPMI_THRESHOLD_UC_GH

#define IPMI_THRESHOLD_UC_GH   0x09

◆ IPMI_THRESHOLD_UC_GL

#define IPMI_THRESHOLD_UC_GL   0x08

◆ IPMI_THRESHOLD_UNC_GH

#define IPMI_THRESHOLD_UNC_GH   0x07

◆ IPMI_THRESHOLD_UNC_GL

#define IPMI_THRESHOLD_UNC_GL   0x06

◆ IPMI_THRESHOLD_UNR_GH

#define IPMI_THRESHOLD_UNR_GH   0x0B

◆ IPMI_THRESHOLD_UNR_GL

#define IPMI_THRESHOLD_UNR_GL   0x0A

◆ LOWER_EQ

#define LOWER_EQ   0x00

◆ NUM_SDR

#define NUM_SDR   (NUM_SENSOR+1) /* Number of SDRs */

◆ NUM_SENSOR

#define NUM_SENSOR   21 /* Number of sensors */

◆ SENSOR_STATE_HIGH

#define SENSOR_STATE_HIGH   0x08

◆ SENSOR_STATE_HIGH_CRIT

#define SENSOR_STATE_HIGH_CRIT   0x10

◆ SENSOR_STATE_HIGH_NON_REC

#define SENSOR_STATE_HIGH_NON_REC   0x20

◆ SENSOR_STATE_LOW

#define SENSOR_STATE_LOW   0x01

◆ SENSOR_STATE_LOW_CRIT

#define SENSOR_STATE_LOW_CRIT   0x02

◆ SENSOR_STATE_LOW_NON_REC

#define SENSOR_STATE_LOW_NON_REC   0x04

◆ SENSOR_STATE_NORMAL

#define SENSOR_STATE_NORMAL   0x00

◆ SENSOR_TYPE_CURRENT

#define SENSOR_TYPE_CURRENT   0x03

◆ SENSOR_TYPE_FAN

#define SENSOR_TYPE_FAN   0x04

◆ SENSOR_TYPE_HOT_SWAP

#define SENSOR_TYPE_HOT_SWAP   0xF2

◆ SENSOR_TYPE_TEMPERATURE

#define SENSOR_TYPE_TEMPERATURE   0x01

◆ SENSOR_TYPE_VERSION_CHANGE

#define SENSOR_TYPE_VERSION_CHANGE   0x2B

◆ SENSOR_TYPE_VOLTAGE

#define SENSOR_TYPE_VOLTAGE   0x02

◆ SENSOR_TYPE_WATCHDOG

#define SENSOR_TYPE_WATCHDOG   0x23

◆ SIGNED

#define SIGNED   0x01

◆ UNSIGNED

#define UNSIGNED   0x00

◆ UPPER_EQ

#define UPPER_EQ   0x01

Typedef Documentation

◆ sensor_t

typedef struct sensor_t sensor_t

Enumeration Type Documentation

◆ SDR_TYPE

enum SDR_TYPE
Enumerator
TYPE_01 
TYPE_02 
TYPE_11 
TYPE_12 

Function Documentation

◆ amc_sdr_init()

void amc_sdr_init ( void )

◆ check_sensor_event()

void check_sensor_event ( sensor_t * sensor)

Should be rewritten to be compliant with RTM management !!

Compare threshold with the upper thresholds

Upper non-critical threshold going-high

Upper critical threshold going-high

Upper non-recoverable threshold going-high

Lower non-critical threshold going-high

Lower critical threshold going-high

Lower non-recoverable threshold going-high

◆ find_sensor_by_id()

sensor_t * find_sensor_by_id ( uint8_t id)

◆ find_sensor_by_sdr()

sensor_t * find_sensor_by_sdr ( void * sdr)

◆ sdr_add_settings()

sensor_t * sdr_add_settings ( uint8_t chipid,
void * settings )

◆ sdr_init()

void sdr_init ( void )

◆ sdr_insert_entry()

sensor_t * sdr_insert_entry ( SDR_TYPE type,
void * sdr,
TaskHandle_t * monitor_task,
uint8_t diag_id,
uint8_t slave_addr )

◆ sdr_pop()

void sdr_pop ( void )

◆ sdr_remove_entry()

void sdr_remove_entry ( sensor_t * entry)

◆ sensor_disable()

void sensor_disable ( sensor_t * sensor)

◆ sensor_enable()

void sensor_enable ( sensor_t * sensor)

◆ sensor_init()

void sensor_init ( void )

◆ sensor_state_check()

void sensor_state_check ( sensor_t * sensor)

Variable Documentation

◆ SDR0

const SDR_type_12h_t SDR0
extern

◆ sdr_count

volatile uint8_t sdr_count
extern

◆ sdr_head

sensor_t* sdr_head
extern

◆ SDR_RTM_DEV_LOCATOR

const SDR_type_12h_t SDR_RTM_DEV_LOCATOR
extern

◆ sdr_tail

sensor_t* sdr_tail
extern