aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/x86/boot/smbios.c13
-rw-r--r--src/include/smbios.h1
-rw-r--r--src/mainboard/lenovo/t60/mainboard.c11
-rw-r--r--src/mainboard/lenovo/x201/mainboard.c11
-rw-r--r--src/mainboard/lenovo/x230/mainboard.c10
-rw-r--r--src/mainboard/lenovo/x60/mainboard.c11
6 files changed, 53 insertions, 4 deletions
diff --git a/src/arch/x86/boot/smbios.c b/src/arch/x86/boot/smbios.c
index 0e84acc737..ce47a8bd64 100644
--- a/src/arch/x86/boot/smbios.c
+++ b/src/arch/x86/boot/smbios.c
@@ -118,6 +118,14 @@ static int smbios_processor_name(char *start)
return smbios_add_string(start, tmp);
}
+const char *__attribute__((weak)) smbios_mainboard_bios_version(void)
+{
+ if (strlen(CONFIG_LOCALVERSION))
+ return CONFIG_LOCALVERSION;
+ else
+ return COREBOOT_VERSION;
+}
+
static int smbios_write_type0(unsigned long *current, int handle)
{
struct smbios_type0 *t = (struct smbios_type0 *)*current;
@@ -132,10 +140,7 @@ static int smbios_write_type0(unsigned long *current, int handle)
#if !CONFIG_CHROMEOS
t->bios_release_date = smbios_add_string(t->eos, COREBOOT_DMI_DATE);
- if (strlen(CONFIG_LOCALVERSION))
- t->bios_version = smbios_add_string(t->eos, CONFIG_LOCALVERSION);
- else
- t->bios_version = smbios_add_string(t->eos, COREBOOT_VERSION);
+ t->bios_version = smbios_add_string(t->eos, smbios_mainboard_bios_version());
#else
#define SPACES \
" "
diff --git a/src/include/smbios.h b/src/include/smbios.h
index 0ab074df07..7c41c42fad 100644
--- a/src/include/smbios.h
+++ b/src/include/smbios.h
@@ -19,6 +19,7 @@ const char *smbios_mainboard_product_name(void);
const char *smbios_mainboard_serial_number(void);
const char *smbios_mainboard_version(void);
void smbios_mainboard_set_uuid(u8 *uuid);
+const char *smbios_mainboard_bios_version(void);
#define BIOS_CHARACTERISTICS_PCI_SUPPORTED (1 << 7)
#define BIOS_CHARACTERISTICS_PC_CARD (1 << 8)
diff --git a/src/mainboard/lenovo/t60/mainboard.c b/src/mainboard/lenovo/t60/mainboard.c
index a25c92c7f6..6f93dcf105 100644
--- a/src/mainboard/lenovo/t60/mainboard.c
+++ b/src/mainboard/lenovo/t60/mainboard.c
@@ -24,6 +24,7 @@
#include <device/device.h>
#include <arch/io.h>
#include <delay.h>
+#include <string.h>
#include <device/pci_def.h>
#include <device/pci_ops.h>
#include <arch/io.h>
@@ -34,6 +35,7 @@
#include <pc80/mc146818rtc.h>
#include <arch/x86/include/arch/acpigen.h>
#include <smbios.h>
+#include <build.h>
static acpi_cstate_t cst_entries[] = {
{ 1, 1, 1000, { 0x7f, 1, 2, { 0 }, 1, 0 } },
@@ -47,6 +49,15 @@ int get_cst_entries(acpi_cstate_t **entries)
return ARRAY_SIZE(cst_entries);
}
+const char *smbios_mainboard_bios_version(void)
+{
+ /* Satisfy thinkpad_acpi. */
+ if (strlen(CONFIG_LOCALVERSION))
+ return "CBET4000 " CONFIG_LOCALVERSION;
+ else
+ return "CBET4000 " COREBOOT_VERSION;
+}
+
static void mainboard_init(device_t dev)
{
struct southbridge_intel_i82801gx_config *config;
diff --git a/src/mainboard/lenovo/x201/mainboard.c b/src/mainboard/lenovo/x201/mainboard.c
index d772d194a9..332b2aa099 100644
--- a/src/mainboard/lenovo/x201/mainboard.c
+++ b/src/mainboard/lenovo/x201/mainboard.c
@@ -25,6 +25,7 @@
#include <device/device.h>
#include <arch/io.h>
#include <delay.h>
+#include <string.h>
#include <device/pci_def.h>
#include <device/pci_ops.h>
#include <device/pci_ids.h>
@@ -47,6 +48,7 @@
#include <cpu/x86/lapic.h>
#include <device/pci.h>
#include <smbios.h>
+#include <build.h>
static acpi_cstate_t cst_entries[] = {
{1, 1, 1000, {0x7f, 1, 2, {0}, 1, 0}},
@@ -88,6 +90,15 @@ static int int15_handler(void)
}
#endif
+const char *smbios_mainboard_bios_version(void)
+{
+ /* Satisfy thinkpad_acpi. */
+ if (strlen(CONFIG_LOCALVERSION))
+ return "CBET4000 " CONFIG_LOCALVERSION;
+ else
+ return "CBET4000 " COREBOOT_VERSION;
+}
+
const char *smbios_mainboard_version(void)
{
return "Lenovo X201";
diff --git a/src/mainboard/lenovo/x230/mainboard.c b/src/mainboard/lenovo/x230/mainboard.c
index 01d1910159..e5ce0ed35c 100644
--- a/src/mainboard/lenovo/x230/mainboard.c
+++ b/src/mainboard/lenovo/x230/mainboard.c
@@ -39,6 +39,7 @@
#include <device/pci.h>
#include <cbfs.h>
#include <pc80/keyboard.h>
+#include <build.h>
void mainboard_suspend_resume(void)
{
@@ -131,6 +132,15 @@ static int int15_handler(void)
}
#endif
+const char *smbios_mainboard_bios_version(void)
+{
+ /* Satisfy thinkpad_acpi. */
+ if (strlen(CONFIG_LOCALVERSION))
+ return "CBET4000 " CONFIG_LOCALVERSION;
+ else
+ return "CBET4000 " COREBOOT_VERSION;
+}
+
const char *smbios_mainboard_version(void)
{
return "ThinkPad X230";
diff --git a/src/mainboard/lenovo/x60/mainboard.c b/src/mainboard/lenovo/x60/mainboard.c
index d1fcb7b0bf..8143eceb00 100644
--- a/src/mainboard/lenovo/x60/mainboard.c
+++ b/src/mainboard/lenovo/x60/mainboard.c
@@ -24,6 +24,7 @@
#include <device/device.h>
#include <arch/io.h>
#include <delay.h>
+#include <string.h>
#include <device/pci_def.h>
#include <device/pci_ops.h>
#include <device/pci_ids.h>
@@ -37,6 +38,7 @@
#include "dock.h"
#include <arch/x86/include/arch/acpigen.h>
#include <smbios.h>
+#include <build.h>
#include <x86emu/x86emu.h>
#define PANEL INT15_5F35_CL_DISPLAY_DEFAULT
@@ -148,6 +150,15 @@ static int mainboard_smbios_data(device_t dev, int *handle, unsigned long *curre
return len;
}
+const char *smbios_mainboard_bios_version(void)
+{
+ /* Satisfy thinkpad_acpi. */
+ if (strlen(CONFIG_LOCALVERSION))
+ return "CBET4000 " CONFIG_LOCALVERSION;
+ else
+ return "CBET4000 " COREBOOT_VERSION;
+}
+
static void mainboard_enable(device_t dev)
{
dev->ops->init = mainboard_init;