22 if (ret !=
sizeof(rsp)) {
40 struct ipmi_oem_rsp rsp;
48 (
unsigned char *) &rsp,
sizeof(rsp));
50 if (ret <
sizeof(
struct ipmi_rsp) || rsp.resp.completion_code) {
51 printk(
BIOS_ERR,
"IPMI: %s command failed (read ret=%d resp=0x%x)\n",
52 __func__, ret, rsp.resp.completion_code);
61 (
const unsigned char *) &req,
sizeof(req),
62 (
unsigned char *) &rsp,
sizeof(rsp));
64 if (ret <
sizeof(
struct ipmi_rsp) || rsp.resp.completion_code) {
65 printk(
BIOS_ERR,
"IPMI: %s command failed (sent ret=%d resp=0x%x)\n",
66 __func__, ret, rsp.resp.completion_code);
70 printk(
BIOS_INFO,
"IPMI CMOS clear requested because CMOS data is invalid.\n");
cb_err
coreboot error codes
@ CB_ERR
Generic error code.
@ CB_SUCCESS
Call completed successfully.
#define printk(level,...)
int ipmi_kcs_message(int port, int netfn, int lun, int cmd, const unsigned char *inmsg, int inlen, unsigned char *outmsg, int outlen)
#define IPMI_BMC_SET_POST_START
#define IPMI_OEM_SET_BIOS_BOOT_ORDER
#define IS_CMOS_AND_VALID_BIT(x)
#define SET_CMOS_AND_VALID_BIT(x)
#define IPMI_OEM_GET_BIOS_BOOT_ORDER
enum cb_err ipmi_set_post_start(const int port)
enum cb_err ipmi_set_cmos_clear(void)
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_ERR
BIOS_ERR - System in incomplete state.