google/kahlee: Add ChromeOS SMBIOS Board ID

Kahlee uses 3 GPIO(144, 140, 135) pins to identify the
board revision.

Change-Id: Ia9693db6d6506af7ff40db0b3ce4cc6c1469f6ef
Signed-off-by: Marc Jones <marcj303@gmail.com>
Reviewed-on: https://review.coreboot.org/19837
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Marc Jones 2017-07-25 16:00:58 -06:00 committed by Martin Roth
parent 9156cac2ef
commit 241bd40966
3 changed files with 39 additions and 0 deletions

View File

@ -27,6 +27,7 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select HAVE_MP_TABLE select HAVE_MP_TABLE
select HAVE_ACPI_TABLES select HAVE_ACPI_TABLES
select GFXUMA select GFXUMA
select GOOGLE_SMBIOS_MAINBOARD_VERSION
select MAINBOARD_HAS_CHROMEOS select MAINBOARD_HAS_CHROMEOS
select MAINBOARD_HAS_LPC_TPM select MAINBOARD_HAS_LPC_TPM
select SERIRQ_CONTINUOUS_MODE select SERIRQ_CONTINUOUS_MODE

View File

@ -20,11 +20,13 @@ bootblock-y += ec.c
bootblock-y += gpio.c bootblock-y += gpio.c
romstage-y += BiosCallOuts.c romstage-y += BiosCallOuts.c
romstage-y += boardid.c
romstage-y += chromeos.c romstage-y += chromeos.c
romstage-y += gpio.c romstage-y += gpio.c
romstage-y += OemCustomize.c romstage-y += OemCustomize.c
ramstage-y += BiosCallOuts.c ramstage-y += BiosCallOuts.c
ramstage-y += boardid.c
ramstage-y += chromeos.c ramstage-y += chromeos.c
ramstage-y += ec.c ramstage-y += ec.c
ramstage-y += gpio.c ramstage-y += gpio.c

View File

@ -0,0 +1,36 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2017 Advanced Micro Devices, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <boardid.h>
#include <console/console.h>
#include <gpio.h>
uint8_t board_id(void)
{
MAYBE_STATIC int id = -1;
gpio_t gpios[] = {
GPIO_135,
GPIO_140,
GPIO_144,
};
if (id < 0) {
id = gpio_base2_value(gpios, ARRAY_SIZE(gpios));
printk(BIOS_SPEW, "Board ID: %#x.\n", id);
}
return id;
}