common/util/hal_peci.h (38 lines of code) (raw):

#ifndef HAL_PECI_H #define HAL_PECI_H #define DEBUG_PECI 0 enum peci_cmd { PECI_PING_CMD = 0x00, PECI_GET_TEMP0_CMD = 0x01, PECI_GET_TEMP1_CMD = 0x02, PECI_RD_PCI_CFG0_CMD = 0x61, PECI_RD_PCI_CFG1_CMD = 0x62, PECI_WR_PCI_CFG0_CMD = 0x65, PECI_WR_PCI_CFG1_CMD = 0x66, PECI_CRASHDUMP_CMD = 0x71, PECI_RD_PKG_CFG0_CMD = 0xA1, PECI_RD_PKG_CFG1_CMD = 0xA, PECI_WR_PKG_CFG0_CMD = 0xA5, PECI_WR_PKG_CFG1_CMD = 0xA6, PECI_RD_IAMSR0_CMD = 0xB1, PECI_RD_IAMSR1_CMD = 0xB2, PECI_WR_IAMSR0_CMD = 0xB5, PECI_WR_IAMSR1_CMD = 0xB6, PECI_RD_ENDPOINT_CFG_CMD = 0xC1, PECI_WR_ENDPOINT_CFG_CMD = 0xC5, PECI_RD_PCI_CFG_LOCAL0_CMD = 0xE1, PECI_RD_PCI_CFG_LOCAL1_CMD = 0xE2, PECI_WR_PCI_CFG_LOCAL0_CMD = 0xE5, PECI_WR_PCI_CFG_LOCAL1_CMD = 0xE6, PECI_GET_DIB_CMD = 0xF7, }; int peci_init(); int peci_ping(uint8_t address); int peci_read(uint8_t cmd, uint8_t address, uint8_t u8Index, uint16_t u16Param, uint8_t u8ReadLen, uint8_t *readBuf); int peci_write(uint8_t cmd, uint8_t address, uint8_t u8ReadLen, uint8_t *readBuf, uint8_t u8WriteLen, uint8_t *writeBuf); bool peci_retry_read(uint8_t cmd, uint8_t address, uint8_t u8Index, uint16_t u16Param, uint8_t u8ReadLen, uint8_t *readBuf); bool peci_getPwr(uint8_t sensor_num, int *reading); #endif