lenovo/t60: Add "IBM ThinkPad Embedded Controller" SMBIOS OEM String

linux/drivers/platform/x86/thinkpad_acpi.c looks for an EC
version string before loading, this code copies the vendor BIOS by
exposing this string. This was originally part of x60's mainboard.c 

Change-Id: I5e54ea2833252bc4dbba46ceb67d78c435b34845
Signed-off-by: Trevor Mosey <uberushaximus@gmail.com>
Reviewed-on: http://review.coreboot.org/5638
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
This commit is contained in:
Trevor Mosey 2014-05-02 20:07:03 -05:00 committed by Kyösti Mälkki
parent 69634c316e
commit 2237324e77
1 changed files with 16 additions and 0 deletions

View File

@ -33,6 +33,7 @@
#include <northbridge/intel/i945/i945.h>
#include <pc80/mc146818rtc.h>
#include <arch/x86/include/arch/acpigen.h>
#include <smbios.h>
static acpi_cstate_t cst_entries[] = {
{ 1, 1, 1000, { 0x7f, 1, 2, { 0 }, 1, 0 } },
@ -78,9 +79,24 @@ static void mainboard_init(device_t dev)
ec_write(0x0c, inb(0x164c) & 8 ? 0x89 : 0x09);
}
static int mainboard_smbios_data(device_t dev, int *handle, unsigned long *current)
{
int len;
char tpec[] = "IBM ThinkPad Embedded Controller -[ ]-";
const char *oem_strings[] = {
tpec,
};
h8_build_id_and_function_spec_version(tpec + 35, 17);
len = smbios_write_type11(current, (*handle)++, oem_strings, ARRAY_SIZE(oem_strings));
return len;
}
static void mainboard_enable(device_t dev)
{
dev->ops->init = mainboard_init;
dev->ops->get_smbios_data = mainboard_smbios_data;
}
struct chip_operations mainboard_ops = {