mb/google/geralt: Add MediaTek MT8188 reference board

Add mainboard folder and drivers for new reference board 'Geralt'.

TEST=saw the coreboot uart log to bootblock
BUG=b:233720142

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Change-Id: I5e437d46097369bef535ff64e6a693b7cf67f2f1
Reviewed-on: https://review.coreboot.org/c/coreboot/+/65586
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Yidi Lin <yidilin@chromium.org>
This commit is contained in:
Rex-BC Chen 2022-07-01 17:37:37 +08:00 committed by Hung-Te Lin
parent 3f83c6ff85
commit db8442b10a
12 changed files with 167 additions and 0 deletions

View File

@ -0,0 +1,28 @@
## SPDX-License-Identifier: GPL-2.0-only
# Umbrella option to be selected by variant boards.
config BOARD_GOOGLE_GERALT_COMMON
def_bool n
if BOARD_GOOGLE_GERALT_COMMON
config VBOOT
select VBOOT_VBNV_FLASH
config BOARD_SPECIFIC_OPTIONS
def_bool y
select SOC_MEDIATEK_MT8188
select BOARD_ROMSIZE_KB_8192
select MAINBOARD_HAS_CHROMEOS
select COMMON_CBFS_SPI_WRAPPER
select SPI_FLASH
select SPI_FLASH_INCLUDE_ALL_DRIVERS
config MAINBOARD_DIR
string
default "google/geralt"
config MAINBOARD_PART_NUMBER
string
default "Geralt" if BOARD_GOOGLE_GERALT
endif

View File

@ -0,0 +1,5 @@
comment "Geralt"
config BOARD_GOOGLE_GERALT
bool "-> Geralt"
select BOARD_GOOGLE_GERALT_COMMON

View File

@ -0,0 +1,16 @@
bootblock-y += memlayout.ld
bootblock-y += bootblock.c
bootblock-y += chromeos.c
verstage-y += memlayout.ld
verstage-y += chromeos.c
verstage-y += reset.c
romstage-y += memlayout.ld
romstage-y += chromeos.c
romstage-y += romstage.c
ramstage-y += memlayout.ld
ramstage-y += chromeos.c
ramstage-y += mainboard.c
ramstage-y += reset.c

View File

@ -0,0 +1,6 @@
Vendor name: Google
Board name: Geralt MediaTek MT8188 reference board
Category: eval
ROM protocol: SPI
ROM socketed: n
Flashrom support: y

View File

@ -0,0 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <bootblock_common.h>
#include <device/mmio.h>
void bootblock_mainboard_init(void)
{
/* TODO: add mainboard init for bootblock */
}

View File

@ -0,0 +1,15 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <bootmode.h>
#include <boot/coreboot_tables.h>
void fill_lb_gpios(struct lb_gpios *gpios)
{
/* TODO: add Chrome specific gpios */
}
int get_recovery_mode_switch(void)
{
/* TODO: use Chrome EC switches when EC support is added */
return 0;
}

View File

@ -0,0 +1,46 @@
# Firmware Layout Description for Chrome OS.
#
# The size and address of every section must be aligned to at least 4K, except:
# RO_FRID, RW_FWID*, GBB, or any unused / padding / CBFS type sections.
#
# 'FMAP' may be found by binary search so its starting address should be better
# aligned to larger values.
#
# For sections to be preserved on update, add (PRESERVE) to individual sections
# instead of a group section; otherwise the preserved data may be wrong if you
# resize or reorder sections inside a group.
FLASH@0x0 8M {
WP_RO@0x0 4M {
RO_SECTION {
BOOTBLOCK 128K
FMAP 4K
COREBOOT(CBFS)
GBB 0x2f00
RO_FRID 0x100
}
RO_GSCVD 8K
RO_VPD(PRESERVE) 32K # At least 16K.
}
RW_SECTION_A 1500K {
VBLOCK_A 8K
FW_MAIN_A(CBFS)
RW_FWID_A 0x100
}
RW_MISC 36K {
RW_VPD(PRESERVE) 16K # At least 8K.
RW_NVRAM(PRESERVE) 8K
RW_MRC_CACHE(PRESERVE) 8K
RW_ELOG(PRESERVE) 4K # ELOG driver hard-coded size in 4K.
}
RW_SECTION_B 1500K {
VBLOCK_B 8K
FW_MAIN_B(CBFS)
RW_FWID_B 0x100
}
RW_SHARED 36K { # Will be force updated on recovery.
SHARED_DATA 4K # 4K or less for netboot params.
RW_UNUSED
}
RW_LEGACY(CBFS) 1M # Minimal 1M.
}

View File

@ -0,0 +1,5 @@
## SPDX-License-Identifier: GPL-2.0-only
chip soc/mediatek/mt8188
device cpu_cluster 0 on end
end

View File

@ -0,0 +1,18 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <device/device.h>
static void mainboard_init(struct device *dev)
{
/* TODO: add mainboard init */
}
static void mainboard_enable(struct device *dev)
{
dev->ops->init = &mainboard_init;
}
struct chip_operations mainboard_ops = {
.name = CONFIG_MAINBOARD_PART_NUMBER,
.enable_dev = mainboard_enable,
};

View File

@ -0,0 +1,3 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <soc/memlayout.ld>

View File

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <reset.h>
void do_board_reset(void)
{
/* TODO: add reset function when gpio is ready */
}

View File

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <arch/stages.h>
void platform_romstage_main(void)
{
/* TODO: add romstage main function */
}