mb/google/deltaur: add deltaur mainboard initial support
Created a new Google baseboard using Tiger Lake named deltaur, taking volteer as a starting point. BUG=b:151102807 TEST=make build successful Signed-off-by: Bora Guvendik <bora.guvendik@intel.com> Change-Id: Ib98f328df22f39e7d9d625a3292954881ee15b15 Reviewed-on: https://review.coreboot.org/c/coreboot/+/39502 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: EricR Lai <ericr_lai@compal.corp-partner.google.com>
This commit is contained in:
parent
97bd2a7f33
commit
3a1a037231
|
@ -0,0 +1,83 @@
|
|||
config BOARD_GOOGLE_BASEBOARD_DELTAUR
|
||||
def_bool n
|
||||
select BOARD_ROMSIZE_KB_32768
|
||||
select DRIVERS_I2C_GENERIC
|
||||
select DRIVERS_INTEL_ISH
|
||||
select DRIVERS_SPI_ACPI
|
||||
select EC_GOOGLE_WILCO
|
||||
select HAVE_ACPI_RESUME
|
||||
select HAVE_ACPI_TABLES
|
||||
select INTEL_LPSS_UART_FOR_CONSOLE
|
||||
select MAINBOARD_HAS_CHROMEOS
|
||||
select MAINBOARD_HAS_I2C_TPM_CR50
|
||||
select MAINBOARD_HAS_TPM2
|
||||
select MAINBOARD_USES_IFD_EC_REGION
|
||||
select SOC_INTEL_TIGERLAKE
|
||||
select SYSTEM_TYPE_LAPTOP
|
||||
|
||||
if BOARD_GOOGLE_BASEBOARD_DELTAUR
|
||||
|
||||
config CHROMEOS
|
||||
bool
|
||||
default y
|
||||
select GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC
|
||||
select GBB_FLAG_FORCE_DEV_SWITCH_ON
|
||||
select GBB_FLAG_FORCE_DEV_BOOT_USB
|
||||
select GBB_FLAG_FORCE_DEV_BOOT_LEGACY
|
||||
|
||||
config DIMM_SPD_SIZE
|
||||
int
|
||||
default 512
|
||||
|
||||
config DEVICETREE
|
||||
string
|
||||
default "variants/baseboard/devicetree.cb"
|
||||
|
||||
config DRIVER_TPM_I2C_BUS
|
||||
hex
|
||||
default 0x3
|
||||
|
||||
config DRIVER_TPM_I2C_ADDR
|
||||
hex
|
||||
default 0x50
|
||||
|
||||
config OVERRIDE_DEVICETREE
|
||||
string
|
||||
default "variants/$(CONFIG_VARIANT_DIR)/overridetree.cb"
|
||||
|
||||
config MAINBOARD_DIR
|
||||
string
|
||||
default "google/deltaur"
|
||||
|
||||
config MAINBOARD_FAMILY
|
||||
string
|
||||
default "Google_Deltaur"
|
||||
|
||||
config MAINBOARD_PART_NUMBER
|
||||
string
|
||||
default "Deltan" if BOARD_GOOGLE_DELTAN
|
||||
default "Deltaur" if BOARD_GOOGLE_DELTAUR
|
||||
|
||||
config MAX_CPUS
|
||||
int
|
||||
default 8
|
||||
|
||||
config TPM_TIS_ACPI_INTERRUPT
|
||||
int
|
||||
default 23 # GPE0_DW0_23 (GPP_C23)
|
||||
|
||||
config UART_FOR_CONSOLE
|
||||
int
|
||||
default 2
|
||||
|
||||
config VARIANT_DIR
|
||||
string
|
||||
default "deltan" if BOARD_GOOGLE_DELTAN
|
||||
default "deltaur" if BOARD_GOOGLE_DELTAUR
|
||||
|
||||
config VBOOT
|
||||
select HAS_RECOVERY_MRC_CACHE
|
||||
select MRC_CLEAR_NORMAL_CACHE_ON_RECOVERY_RETRAIN
|
||||
select VBOOT_LID_SWITCH
|
||||
|
||||
endif # BOARD_GOOGLE_BASEBOARD_DELTAUR
|
|
@ -0,0 +1,9 @@
|
|||
comment "Deltaur"
|
||||
|
||||
config BOARD_GOOGLE_DELTAN
|
||||
bool "-> Deltan"
|
||||
select BOARD_GOOGLE_BASEBOARD_DELTAUR
|
||||
|
||||
config BOARD_GOOGLE_DELTAUR
|
||||
bool "-> Deltaur"
|
||||
select BOARD_GOOGLE_BASEBOARD_DELTAUR
|
|
@ -0,0 +1,30 @@
|
|||
##
|
||||
## This file is part of the coreboot project.
|
||||
##
|
||||
## SPDX-License-Identifier: GPL-2.0-or-later
|
||||
##
|
||||
|
||||
bootblock-y += bootblock.c
|
||||
bootblock-$(CONFIG_CHROMEOS) += chromeos.c
|
||||
bootblock-y += ec.c
|
||||
|
||||
romstage-$(CONFIG_CHROMEOS) += chromeos.c
|
||||
romstage-y += ec.c
|
||||
|
||||
ramstage-$(CONFIG_CHROMEOS) += chromeos.c
|
||||
ramstage-y += ec.c
|
||||
ramstage-y += mainboard.c
|
||||
|
||||
verstage-$(CONFIG_CHROMEOS) += chromeos.c
|
||||
verstage-y += ec.c
|
||||
|
||||
smm-y += smihandler.c
|
||||
|
||||
subdirs-y += variants/baseboard
|
||||
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include
|
||||
|
||||
VARIANT_DIR:=$(call strip_quotes,$(CONFIG_VARIANT_DIR))
|
||||
subdirs-y += variants/$(VARIANT_DIR)
|
||||
CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/include
|
||||
|
||||
subdirs-y += spd
|
|
@ -0,0 +1,6 @@
|
|||
Vendor name: Google
|
||||
Board name: Deltaur
|
||||
Category: laptop
|
||||
ROM protocol: SPI
|
||||
ROM socketed: n
|
||||
Flashrom support: y
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <baseboard/variants.h>
|
||||
#include <bootblock_common.h>
|
||||
#include <ec/google/wilco/bootblock.h>
|
||||
#include <soc/gpio.h>
|
||||
#include <variant/gpio.h>
|
||||
|
||||
static void early_config_gpio(void)
|
||||
{
|
||||
const struct pad_config *early_gpio_table;
|
||||
size_t num_gpios = 0;
|
||||
|
||||
early_gpio_table = variant_early_gpio_table(&num_gpios);
|
||||
gpio_configure_pads(early_gpio_table, num_gpios);
|
||||
}
|
||||
|
||||
void bootblock_mainboard_init(void)
|
||||
{
|
||||
early_config_gpio();
|
||||
wilco_ec_early_init();
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <arch/acpi.h>
|
||||
#include <baseboard/variants.h>
|
||||
#include <boot/coreboot_tables.h>
|
||||
#include <gpio.h>
|
||||
#include <soc/gpio.h>
|
||||
#include <variant/gpio.h>
|
||||
#include <vendorcode/google/chromeos/chromeos.h>
|
||||
#include <security/tpm/tss.h>
|
||||
#include <device/device.h>
|
||||
#include <intelblocks/pmclib.h>
|
||||
#include <soc/pmc.h>
|
||||
#include <soc/pci_devs.h>
|
||||
|
||||
|
||||
enum rec_mode_state {
|
||||
REC_MODE_UNINITIALIZED,
|
||||
REC_MODE_NOT_REQUESTED,
|
||||
REC_MODE_REQUESTED,
|
||||
};
|
||||
|
||||
void fill_lb_gpios(struct lb_gpios *gpios)
|
||||
{
|
||||
struct lb_gpio chromeos_gpios[] = {
|
||||
{-1, ACTIVE_HIGH, get_lid_switch(), "lid"},
|
||||
{-1, ACTIVE_HIGH, 0, "power"},
|
||||
{-1, ACTIVE_HIGH, gfx_get_init_done(), "oprom"},
|
||||
{-1, ACTIVE_HIGH, 0, "EC in RW"},
|
||||
};
|
||||
lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios));
|
||||
}
|
||||
|
||||
static int cros_get_gpio_value(int type)
|
||||
{
|
||||
const struct cros_gpio *cros_gpios;
|
||||
size_t i, num_gpios = 0;
|
||||
|
||||
cros_gpios = variant_cros_gpios(&num_gpios);
|
||||
|
||||
for (i = 0; i < num_gpios; i++) {
|
||||
const struct cros_gpio *gpio = &cros_gpios[i];
|
||||
if (gpio->type == type) {
|
||||
int state = gpio_get(gpio->gpio_num);
|
||||
if (gpio->polarity == CROS_GPIO_ACTIVE_LOW)
|
||||
return !state;
|
||||
else
|
||||
return state;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void mainboard_chromeos_acpi_generate(void)
|
||||
{
|
||||
const struct cros_gpio *cros_gpios;
|
||||
size_t num_gpios = 0;
|
||||
|
||||
cros_gpios = variant_cros_gpios(&num_gpios);
|
||||
|
||||
chromeos_acpi_gpio_generate(cros_gpios, num_gpios);
|
||||
}
|
||||
|
||||
int get_write_protect_state(void)
|
||||
{
|
||||
return cros_get_gpio_value(CROS_GPIO_WP);
|
||||
}
|
||||
|
||||
int get_recovery_mode_switch(void)
|
||||
{
|
||||
static enum rec_mode_state saved_rec_mode = REC_MODE_UNINITIALIZED;
|
||||
enum rec_mode_state state = REC_MODE_NOT_REQUESTED;
|
||||
uint8_t cr50_state = 0;
|
||||
|
||||
/* Check cached state, since TPM will only tell us the first time */
|
||||
if (saved_rec_mode != REC_MODE_UNINITIALIZED)
|
||||
return saved_rec_mode == REC_MODE_REQUESTED;
|
||||
|
||||
/*
|
||||
* Read one-time recovery request from cr50 in verstage only since
|
||||
* the TPM driver won't be set up in time for other stages like romstage
|
||||
* and the value from the TPM would be wrong anyway since the verstage
|
||||
* read would have cleared the value on the TPM.
|
||||
*
|
||||
* The TPM recovery request is passed between stages through vboot data
|
||||
* or cbmem depending on stage.
|
||||
*/
|
||||
if (ENV_VERSTAGE &&
|
||||
tlcl_cr50_get_recovery_button(&cr50_state) == TPM_SUCCESS &&
|
||||
cr50_state)
|
||||
state = REC_MODE_REQUESTED;
|
||||
|
||||
/* Read state from the GPIO controlled by servo. */
|
||||
if (cros_get_gpio_value(CROS_GPIO_REC))
|
||||
state = REC_MODE_REQUESTED;
|
||||
|
||||
/* Store the state in case this is called again in verstage. */
|
||||
saved_rec_mode = state;
|
||||
|
||||
return state == REC_MODE_REQUESTED;
|
||||
}
|
||||
|
||||
int get_lid_switch(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
void mainboard_prepare_cr50_reset(void)
|
||||
{
|
||||
/* Ensure system powers up after CR50 reset */
|
||||
if (ENV_RAMSTAGE)
|
||||
pmc_soc_set_afterg3_en(true);
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
FLASH@0xfe000000 0x2000000 {
|
||||
SI_ALL@0x0 0x604000 {
|
||||
SI_DESC@0x0 0x1000
|
||||
SI_EC@0x1000 0x100000
|
||||
SI_ME@0x101000 0x4ff000
|
||||
SI_PDR(PRESERVE)@0x600000 0x4000
|
||||
}
|
||||
SI_BIOS@0x604000 0x19fc000 {
|
||||
RW_DIAG@0x0 0x10cc000 {
|
||||
RW_LEGACY(CBFS)@0x0 0x10bc000
|
||||
DIAG_NVRAM@0x10bc000 0x10000
|
||||
}
|
||||
RW_SECTION_A@0x10cc000 0x280000 {
|
||||
VBLOCK_A@0x0 0x10000
|
||||
FW_MAIN_A(CBFS)@0x10000 0x26ffc0
|
||||
RW_FWID_A@0x27ffc0 0x40
|
||||
}
|
||||
RW_SECTION_B@0x134c000 0x280000 {
|
||||
VBLOCK_B@0x0 0x10000
|
||||
FW_MAIN_B(CBFS)@0x10000 0x26ffc0
|
||||
RW_FWID_B@0x27ffc0 0x40
|
||||
}
|
||||
RW_MISC@0x15cc000 0x30000 {
|
||||
UNIFIED_MRC_CACHE@0x0 0x20000 {
|
||||
RECOVERY_MRC_CACHE@0x0 0x10000
|
||||
RW_MRC_CACHE@0x10000 0x10000
|
||||
}
|
||||
RW_ELOG(PRESERVE)@0x20000 0x4000
|
||||
RW_SHARED@0x24000 0x4000 {
|
||||
SHARED_DATA@0x0 0x2000
|
||||
VBLOCK_DEV@0x2000 0x2000
|
||||
}
|
||||
RW_VPD(PRESERVE)@0x28000 0x2000
|
||||
RW_NVRAM(PRESERVE)@0x2a000 0x6000
|
||||
}
|
||||
WP_RO@0x15fc000 0x400000 {
|
||||
RO_VPD(PRESERVE)@0x0 0x4000
|
||||
RO_UNUSED@0x4000 0xc000
|
||||
RO_SECTION@0x10000 0x3f0000 {
|
||||
FMAP@0x0 0x800
|
||||
RO_FRID@0x800 0x40
|
||||
RO_FRID_PAD@0x840 0x7c0
|
||||
GBB@0x1000 0x3000
|
||||
COREBOOT(CBFS)@0x4000 0x3ec000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <arch/acpi.h>
|
||||
#include "variant/ec.h"
|
||||
#include "variant/gpio.h"
|
||||
|
||||
DefinitionBlock(
|
||||
"dsdt.aml",
|
||||
"DSDT",
|
||||
0x02, /* DSDT revision: ACPI v2.0 and up */
|
||||
OEM_ID,
|
||||
ACPI_TABLE_CREATOR,
|
||||
0x20110725 /* OEM revision */
|
||||
)
|
||||
{
|
||||
#include <soc/intel/tigerlake/acpi/platform.asl>
|
||||
|
||||
/* global NVS and variables */
|
||||
#include <soc/intel/common/block/acpi/acpi/globalnvs.asl>
|
||||
|
||||
#include <cpu/intel/common/acpi/cpu.asl>
|
||||
|
||||
Scope (\_SB) {
|
||||
Device (PCI0)
|
||||
{
|
||||
#include <soc/intel/common/block/acpi/acpi/northbridge.asl>
|
||||
#include <soc/intel/tigerlake/acpi/southbridge.asl>
|
||||
}
|
||||
}
|
||||
|
||||
/* Chrome OS specific */
|
||||
#include <vendorcode/google/chromeos/acpi/chromeos.asl>
|
||||
|
||||
/* VPD support */
|
||||
#include <vendorcode/google/chromeos/acpi/vpd.asl>
|
||||
|
||||
/* Chrome OS Embedded Controller */
|
||||
Scope (\_SB.PCI0.LPCB)
|
||||
{
|
||||
/* ACPI code for EC SuperIO functions */
|
||||
#include <ec/google/wilco/acpi/superio.asl>
|
||||
/* ACPI code for EC functions */
|
||||
#include <ec/google/wilco/acpi/ec.asl>
|
||||
}
|
||||
|
||||
#include <southbridge/intel/common/acpi/sleepstates.asl>
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <console/console.h>
|
||||
#include <ec/google/wilco/commands.h>
|
||||
#include <variant/ec.h>
|
||||
|
||||
void mainboard_post(uint8_t value)
|
||||
{
|
||||
wilco_ec_save_post_code(value);
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <arch/acpi.h>
|
||||
#include <baseboard/variants.h>
|
||||
#include <device/device.h>
|
||||
#include <soc/gpio.h>
|
||||
#include <vendorcode/google/chromeos/chromeos.h>
|
||||
#include <variant/gpio.h>
|
||||
|
||||
|
||||
static void mainboard_enable(struct device *dev)
|
||||
{
|
||||
dev->ops->acpi_inject_dsdt_generator = chromeos_dsdt_generator;
|
||||
}
|
||||
|
||||
static void mainboard_chip_init(void *chip_info)
|
||||
{
|
||||
const struct pad_config *base_pads;
|
||||
const struct pad_config *override_pads;
|
||||
size_t base_num, override_num;
|
||||
|
||||
base_pads = variant_base_gpio_table(&base_num);
|
||||
override_pads = variant_override_gpio_table(&override_num);
|
||||
|
||||
gpio_configure_pads_with_override(base_pads, base_num, override_pads, override_num);
|
||||
}
|
||||
|
||||
struct chip_operations mainboard_ops = {
|
||||
.init = mainboard_chip_init,
|
||||
.enable_dev = mainboard_enable,
|
||||
};
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <cpu/x86/smm.h>
|
||||
#include <ec/google/wilco/smm.h>
|
||||
#include <intelblocks/smihandler.h>
|
||||
#include <variant/ec.h>
|
||||
|
||||
void mainboard_smi_espi_handler(void)
|
||||
{
|
||||
wilco_ec_smi_espi();
|
||||
}
|
||||
|
||||
void mainboard_smi_sleep(u8 slp_typ)
|
||||
{
|
||||
wilco_ec_smi_sleep(slp_typ);
|
||||
}
|
||||
|
||||
int mainboard_smi_apmc(u8 apmc)
|
||||
{
|
||||
wilco_ec_smi_apmc(apmc);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
##
|
||||
## This file is part of the coreboot project.
|
||||
##
|
||||
## SPDX-License-Identifier: GPL-2.0-or-later
|
||||
##
|
||||
|
||||
bootblock-y += gpio.c
|
||||
|
||||
ramstage-y += gpio.c
|
||||
|
||||
verstage-y += gpio.c
|
|
@ -0,0 +1,6 @@
|
|||
chip soc/intel/tigerlake
|
||||
|
||||
device cpu_cluster 0 on
|
||||
device lapic 0 on end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
#include <baseboard/variants.h>
|
||||
#include <commonlib/helpers.h>
|
||||
|
||||
/* Pad configuration in ramstage */
|
||||
static const struct pad_config gpio_table[] = {
|
||||
|
||||
};
|
||||
|
||||
/* Early pad configuration in bootblock */
|
||||
static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
};
|
||||
|
||||
const struct pad_config *__weak variant_base_gpio_table(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(gpio_table);
|
||||
return gpio_table;
|
||||
}
|
||||
|
||||
const struct pad_config *__weak variant_override_gpio_table(size_t *num)
|
||||
{
|
||||
*num = 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const struct pad_config *__weak variant_early_gpio_table(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(early_gpio_table);
|
||||
return early_gpio_table;
|
||||
}
|
||||
|
||||
static const struct cros_gpio cros_gpios[] = {
|
||||
|
||||
};
|
||||
|
||||
const struct cros_gpio *__weak variant_cros_gpios(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(cros_gpios);
|
||||
return cros_gpios;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef __MAINBOARD_EC_H__
|
||||
#define __MAINBOARD_EC_H__
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* __MAINBOARD_EC_H__ */
|
|
@ -0,0 +1,13 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef __BASEBOARD_GPIO_H__
|
||||
#define __BASEBOARD_GPIO_H__
|
||||
|
||||
#include <soc/gpio.h>
|
||||
|
||||
|
||||
#endif /* BASEBOARD_GPIO_H */
|
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef __BASEBOARD_VARIANTS_H__
|
||||
#define __BASEBOARD_VARIANTS_H__
|
||||
|
||||
#include <soc/gpio.h>
|
||||
#include <stddef.h>
|
||||
#include <vendorcode/google/chromeos/chromeos.h>
|
||||
|
||||
/*
|
||||
* The next set of functions return the gpio table and fill in the number of
|
||||
* entries for each table.
|
||||
*/
|
||||
const struct pad_config *variant_base_gpio_table(size_t *num);
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num);
|
||||
const struct pad_config *variant_override_gpio_table(size_t *num);
|
||||
|
||||
const struct cros_gpio *variant_cros_gpios(size_t *num);
|
||||
|
||||
#endif /* __BASEBOARD_VARIANTS_H__ */
|
|
@ -0,0 +1,9 @@
|
|||
##
|
||||
## This file is part of the coreboot project.
|
||||
##
|
||||
##
|
||||
## SPDX-License-Identifier: GPL-2.0-or-later
|
||||
##
|
||||
|
||||
bootblock-y += gpio.c
|
||||
ramstage-y += gpio.c
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
#include <baseboard/variants.h>
|
||||
#include <commonlib/helpers.h>
|
||||
|
||||
/* Pad configuration in ramstage */
|
||||
static const struct pad_config gpio_table[] = {
|
||||
|
||||
};
|
||||
|
||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(gpio_table);
|
||||
return gpio_table;
|
||||
}
|
||||
|
||||
/* Early pad configuration in bootblock */
|
||||
static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(early_gpio_table);
|
||||
return early_gpio_table;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef __VARIANT_EC_H__
|
||||
#define __VARIANT_EC_H__
|
||||
|
||||
#include <baseboard/ec.h>
|
||||
|
||||
/* eSPI virtual wire reporting */
|
||||
#define EC_SCI_GPI GPE0_ESPI
|
||||
|
||||
#endif
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef VARIANT_GPIO_H
|
||||
#define VARIANT_GPIO_H
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
|
||||
/* Copied from baseboard and may need to change for the new variant. */
|
||||
|
||||
#endif
|
|
@ -0,0 +1,6 @@
|
|||
chip soc/intel/tigerlake
|
||||
|
||||
device domain 0 on
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
##
|
||||
## This file is part of the coreboot project.
|
||||
##
|
||||
##
|
||||
## SPDX-License-Identifier: GPL-2.0-or-later
|
||||
##
|
||||
|
||||
bootblock-y += gpio.c
|
||||
ramstage-y += gpio.c
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
#include <baseboard/variants.h>
|
||||
#include <commonlib/helpers.h>
|
||||
|
||||
/* Pad configuration in ramstage */
|
||||
static const struct pad_config gpio_table[] = {
|
||||
|
||||
};
|
||||
|
||||
const struct pad_config *variant_override_gpio_table(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(gpio_table);
|
||||
return gpio_table;
|
||||
}
|
||||
|
||||
/* Early pad configuration in bootblock */
|
||||
static const struct pad_config early_gpio_table[] = {
|
||||
|
||||
};
|
||||
|
||||
const struct pad_config *variant_early_gpio_table(size_t *num)
|
||||
{
|
||||
*num = ARRAY_SIZE(early_gpio_table);
|
||||
return early_gpio_table;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef __VARIANT_EC_H__
|
||||
#define __VARIANT_EC_H__
|
||||
|
||||
#include <baseboard/ec.h>
|
||||
|
||||
/* eSPI virtual wire reporting */
|
||||
#define EC_SCI_GPI GPE0_ESPI
|
||||
|
||||
#endif
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* This file is part of the coreboot project.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef VARIANT_GPIO_H
|
||||
#define VARIANT_GPIO_H
|
||||
|
||||
#include <baseboard/gpio.h>
|
||||
|
||||
/* Copied from baseboard and may need to change for the new variant. */
|
||||
|
||||
#endif
|
|
@ -0,0 +1,6 @@
|
|||
chip soc/intel/tigerlake
|
||||
|
||||
device domain 0 on
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue