summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/x86/smbios.c1
-rw-r--r--src/arch/x86/smbios_defaults.c5
-rw-r--r--src/include/smbios.h13
3 files changed, 19 insertions, 0 deletions
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c
index 04f8717e72..ea429713ae 100644
--- a/src/arch/x86/smbios.c
+++ b/src/arch/x86/smbios.c
@@ -489,6 +489,7 @@ static int smbios_write_type1(unsigned long *current, int handle)
t->manufacturer = smbios_add_string(t->eos, smbios_system_manufacturer());
t->product_name = smbios_add_string(t->eos, smbios_system_product_name());
t->serial_number = smbios_add_string(t->eos, smbios_system_serial_number());
+ t->wakeup_type = smbios_system_wakeup_type();
t->sku = smbios_add_string(t->eos, smbios_system_sku());
t->version = smbios_add_string(t->eos, smbios_system_version());
#ifdef CONFIG_MAINBOARD_FAMILY
diff --git a/src/arch/x86/smbios_defaults.c b/src/arch/x86/smbios_defaults.c
index 30bbea1a8e..8b62ebba14 100644
--- a/src/arch/x86/smbios_defaults.c
+++ b/src/arch/x86/smbios_defaults.c
@@ -27,6 +27,11 @@ __weak void smbios_fill_dimm_asset_tag(const struct dimm_info *dimm, struct smbi
t->asset_tag = smbios_add_string(t->eos, buf);
}
+__weak smbios_wakeup_type smbios_system_wakeup_type(void)
+{
+ return SMBIOS_WAKEUP_TYPE_RESERVED;
+}
+
__weak const char *smbios_mainboard_bios_version(void)
{
return NULL;
diff --git a/src/include/smbios.h b/src/include/smbios.h
index fd9fbd40c9..2fb6297ea3 100644
--- a/src/include/smbios.h
+++ b/src/include/smbios.h
@@ -308,6 +308,18 @@ struct smbios_type0 {
u8 eos[2];
} __packed;
+typedef enum {
+ SMBIOS_WAKEUP_TYPE_RESERVED = 0x00,
+ SMBIOS_WAKEUP_TYPE_OTHER = 0x01,
+ SMBIOS_WAKEUP_TYPE_UNKNOWN = 0x02,
+ SMBIOS_WAKEUP_TYPE_APM_TIMER = 0x03,
+ SMBIOS_WAKEUP_TYPE_MODEM_RING = 0x04,
+ SMBIOS_WAKEUP_TYPE_LAN_REMOTE = 0x05,
+ SMBIOS_WAKEUP_TYPE_POWER_SWITCH = 0x06,
+ SMBIOS_WAKEUP_TYPE_PCI_PME = 0x07,
+ SMBIOS_WAKEUP_TYPE_AC_POWER_RESTORED = 0x08,
+} smbios_wakeup_type;
+
struct smbios_type1 {
struct smbios_header header;
u8 manufacturer;
@@ -962,6 +974,7 @@ void smbios_fill_dimm_asset_tag(const struct dimm_info *dimm,
void smbios_fill_dimm_locator(const struct dimm_info *dimm,
struct smbios_type17 *t);
+smbios_wakeup_type smbios_system_wakeup_type(void);
smbios_board_type smbios_mainboard_board_type(void);
smbios_enclosure_type smbios_mainboard_enclosure_type(void);