diff options
Diffstat (limited to 'src/drivers/ipmi/ocp/ipmi_ocp.h')
-rw-r--r-- | src/drivers/ipmi/ocp/ipmi_ocp.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/drivers/ipmi/ocp/ipmi_ocp.h b/src/drivers/ipmi/ocp/ipmi_ocp.h index 96b0086298..0c9f452db5 100644 --- a/src/drivers/ipmi/ocp/ipmi_ocp.h +++ b/src/drivers/ipmi/ocp/ipmi_ocp.h @@ -7,6 +7,12 @@ #include <cpu/x86/name.h> #include "drivers/ipmi/ipmi_kcs.h" +#define IPMI_NETFN_OEM 0x30 +#define IPMI_OEM_SET_PPIN 0x77 +#define IPMI_BMC_SET_POST_START 0x73 +#define IPMI_OEM_SET_BIOS_BOOT_ORDER 0x52 +#define IPMI_OEM_GET_BIOS_BOOT_ORDER 0x53 + #define IPMI_NETFN_OEM_COMMON 0x36 #define IPMI_BMC_SET_PROCESSOR_INFORMATION 0x10 #define IPMI_BMC_GET_PROCESSOR_INFORMATION 0x11 @@ -14,6 +20,12 @@ #define MSR_CORE_THREAD_COUNT 0x35 #define MSR_PLATFORM_INFO 0xce +#define CMOS_BIT (1 << 1) +#define VALID_BIT (1 << 7) +#define CLEAR_CMOS_AND_VALID_BIT(x) ((x) &= ~(CMOS_BIT | VALID_BIT)) +#define SET_CMOS_AND_VALID_BIT(x) ((x) |= (CMOS_BIT | VALID_BIT)) +#define IS_CMOS_AND_VALID_BIT(x) ((x)&CMOS_BIT && (x)&VALID_BIT) + struct ipmi_processor_info_req { uint8_t manufacturer_id[3]; uint8_t index; @@ -33,4 +45,22 @@ struct ipmi_processor_info_param2_req { char revision[2]; } __packed; +struct ppin_req { + uint32_t cpu0_lo; + uint32_t cpu0_hi; + uint32_t cpu1_lo; + uint32_t cpu1_hi; +} __packed; + +struct boot_order { + uint8_t boot_mode; + uint8_t boot_dev0; + uint8_t boot_dev1; + uint8_t boot_dev2; + uint8_t boot_dev3; + uint8_t boot_dev4; +} __packed; + +enum cb_err ipmi_set_post_start(const int port); +enum cb_err ipmi_set_cmos_clear(void); #endif |