[coreboot-gerrit] Patch set updated for coreboot: 302e4a3 lenovo: Make version look like something thinkpad_acpi would accept
Vladimir Serbinenko (phcoder@gmail.com)
gerrit at coreboot.org
Thu Jan 23 20:24:53 CET 2014
Vladimir Serbinenko (phcoder at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4650
-gerrit
commit 302e4a3b661c868b8c5ee232320b9aedaf74cc51
Author: Vladimir Serbinenko <phcoder at gmail.com>
Date: Fri Jun 7 02:11:41 2013 +0200
lenovo: Make version look like something thinkpad_acpi would accept
thinkpad_acpi checks that BIOS version matches some pattern.
Report version in this form.
Change-Id: I15e33e87e7a7f42d6a06f12fb39b5172153af8a1
Signed-off-by: Vladimir Serbinenko <phcoder at gmail.com>
---
src/arch/x86/boot/smbios.c | 16 ++++++++++++----
src/include/smbios.h | 1 +
src/mainboard/lenovo/t60/mainboard.c | 12 ++++++++++++
src/mainboard/lenovo/x201/mainboard.c | 11 +++++++++++
src/mainboard/lenovo/x230/mainboard.c | 10 ++++++++++
src/mainboard/lenovo/x60/mainboard.c | 11 +++++++++++
6 files changed, 57 insertions(+), 4 deletions(-)
diff --git a/src/arch/x86/boot/smbios.c b/src/arch/x86/boot/smbios.c
index 65bf538..03a7728 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;
@@ -130,12 +138,12 @@ static int smbios_write_type0(unsigned long *current, int handle)
t->vendor = smbios_add_string(t->eos, "coreboot");
#if !CONFIG_CHROMEOS
+#ifndef CONFIG_VENDOR_VERSION
+#define CONFIG_VENDOR_VERSION ""
+#endif
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 42c5d2d..b08459f 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 52f5dcf..67829fa 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>
@@ -33,6 +34,8 @@
#include <northbridge/intel/i945/i945.h>
#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 } },
@@ -46,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_enable(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 6321777..b1c46e0 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>
@@ -46,6 +47,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}},
@@ -87,6 +89,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 91965b6..b269e3e 100644
--- a/src/mainboard/lenovo/x230/mainboard.c
+++ b/src/mainboard/lenovo/x230/mainboard.c
@@ -38,6 +38,7 @@
#include <device/pci.h>
#include <cbfs.h>
#include <pc80/keyboard.h>
+#include <build.h>
void mainboard_suspend_resume(void)
{
@@ -130,6 +131,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 d1fcb7b..8143ece 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;
More information about the coreboot-gerrit
mailing list