From 17942b7895775151b956576fb3173c1e2a799d60 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Fri, 20 Dec 2024 12:50:33 +0000 Subject: [PATCH] mb/starlabs/starbook: Add Meteor Lake (165H) variant Tested using `edk2` from `https://github.com/starlabsltd/edk2/tree/uefipayload_vs`: * Ubuntu 24.04 * Manjaro 24 No known issues. https://starlabs.systems/pages/starbook-specification Change-Id: I6621585086c58d19574841314796ed9db779036e Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/85715 Tested-by: build bot (Jenkins) Reviewed-by: Matt DeVillier --- Documentation/mainboard/index.md | 1 + .../mainboard/starlabs/starbook_mtl.md | 88 +++ src/mainboard/starlabs/starbook/Kconfig | 26 +- src/mainboard/starlabs/starbook/Kconfig.name | 3 + src/mainboard/starlabs/starbook/dsdt.asl | 6 + .../starbook/variants/mtl/Makefile.mk | 10 + .../starlabs/starbook/variants/mtl/board.fmd | 14 + .../starlabs/starbook/variants/mtl/data.vbt | Bin 0 -> 7680 bytes .../starbook/variants/mtl/devicetree.cb | 265 +++++++++ .../starlabs/starbook/variants/mtl/devtree.c | 66 +++ .../starlabs/starbook/variants/mtl/gpio.c | 507 ++++++++++++++++++ .../starlabs/starbook/variants/mtl/hda_verb.c | 121 +++++ .../starlabs/starbook/variants/mtl/ramstage.c | 14 + .../starlabs/starbook/variants/mtl/romstage.c | 38 ++ 14 files changed, 1158 insertions(+), 1 deletion(-) create mode 100644 Documentation/mainboard/starlabs/starbook_mtl.md create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/Makefile.mk create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/board.fmd create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/data.vbt create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/devicetree.cb create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/devtree.c create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/gpio.c create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/hda_verb.c create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/ramstage.c create mode 100644 src/mainboard/starlabs/starbook/variants/mtl/romstage.c diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md index 4a4d733ca8..0009ef4df4 100644 --- a/Documentation/mainboard/index.md +++ b/Documentation/mainboard/index.md @@ -337,6 +337,7 @@ StarLite Mk V StarBook Mk V StarBook Mk VI StarBook Mk VII (N200) +StarBook Mk VII (165H) Byte Mk II StarFighter Mk I diff --git a/Documentation/mainboard/starlabs/starbook_mtl.md b/Documentation/mainboard/starlabs/starbook_mtl.md new file mode 100644 index 0000000000..30c57335de --- /dev/null +++ b/Documentation/mainboard/starlabs/starbook_mtl.md @@ -0,0 +1,88 @@ +# StarBook Mk V + +## Specs + +- CPU (full processor specs available at ) + - Intel 165H (Meteor Lake) +- EC + - ITE IT5570E + - Backlit keyboard, with standard PS/2 keycodes and SCI hotkeys + - Battery + - USB-C PD Charger + - Suspend / resume +- GPU + - IntelĀ® ArcĀ® Graphics + - GOP driver is recommended, VBT is provided + - eDP 14-inch 3840x2160 LCD + - HDMI video + - USB-C DisplayPort video +- Memory + - 2 x DDR5 SODIMM +- Networking + - AX210 2230 WiFi / Bluetooth +- Sound + - Realtek ALC269-VB6 + - Internal speakers + - Internal microphone + - Combined headphone / microphone 3.5-mm jack + - HDMI audio + - USB-C DisplayPort audio +- Storage + - M.2 PCIe SSD + - RTS5129 MicroSD card reader +- USB + - 1920x1080 CCD camera + - USB 3.1 Gen 2 (left) + - USB 3.1 Gen 2 Type-A (left) + - USB 3.1 Gen 1 Type-A (right) + - USB 2.0 Type-A (right) + +## Building coreboot + +Please follow the [Star Labs build instructions](common/building.md) to build coreboot, using `config.starlabs_starbook_adl` as config file. + +### Preliminaries + +Prior to building coreboot the following files are required: +* Intel Flash Descriptor file (descriptor.bin) +* Intel Management Engine firmware (me.bin) +* ITE Embedded Controller firmware (ec.bin) + +The files listed below are optional: +- Splash screen image in Windows 3.1 BMP format (Logo.bmp) + +These files exist in the correct location in the StarLabsLtd/blobs repo on GitHub which is used in place of the standard 3rdparty/blobs repo. + +### Build + +The following commands will build a working image: + +```bash +make distclean +make defconfig KBUILD_DEFCONFIG=configs/config.starlabs_starbook_mtl +make +``` + +## Flashing coreboot + +```{eval-rst} ++---------------------+------------+ +| Type | Value | ++=====================+============+ +| Socketed flash | no | ++---------------------+------------+ +| Vendor | Winbond | ++---------------------+------------+ +| Model | W25Q256JW | ++---------------------+------------+ +| Size | 32 MiB | ++---------------------+------------+ +| Package | SOIC-8 | ++---------------------+------------+ +| Internal flashing | yes | ++---------------------+------------+ +| External flashing | yes | ++---------------------+------------+ +``` + +Please see [here](common/flashing.md) for instructions on how to flash with fwupd. diff --git a/src/mainboard/starlabs/starbook/Kconfig b/src/mainboard/starlabs/starbook/Kconfig index d56a150aa7..e5ceb0871f 100644 --- a/src/mainboard/starlabs/starbook/Kconfig +++ b/src/mainboard/starlabs/starbook/Kconfig @@ -101,6 +101,28 @@ config BOARD_STARLABS_STARBOOK_RPL select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES select SOC_INTEL_RAPTORLAKE +config BOARD_STARLABS_STARBOOK_MTL + select BOARD_ROMSIZE_KB_32768 + select BOARD_STARLABS_STARBOOK_SERIES + select DRIVERS_INTEL_PMC + select DRIVERS_INTEL_USB4_RETIMER + select EC_STARLABS_CHARGING_SPEED + select EC_STARLABS_KBL_LEVELS + select EC_STARLABS_LID_SWITCH + select EC_STARLABS_MAX_CHARGE + select EC_STARLABS_MERLIN + select EC_STARLABS_NEED_ITE_BIN + select MAINBOARD_HAS_TPM2 + select MEMORY_MAPPED_TPM + select SOC_INTEL_COMMON_BLOCK_VTD + select SOC_INTEL_METEORLAKE + select SOC_INTEL_METEORLAKE_U_H + select SOC_INTEL_COMMON_BLOCK_TCSS + select SOC_INTEL_CRASHLOG + select SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES + select SPI_FLASH_WINBOND + select TPM_MEASURED_BOOT + if BOARD_STARLABS_STARBOOK_SERIES config CCD_PORT @@ -172,13 +194,14 @@ config MAINBOARD_FAMILY default "B6-I" if BOARD_STARLABS_STARBOOK_ADL default "B62-I" if BOARD_STARLABS_STARBOOK_RPL default "B7-N" if BOARD_STARLABS_STARBOOK_ADL_N + default "B7-U" if BOARD_STARLABS_STARBOOK_MTL config MAINBOARD_PART_NUMBER default "LabTop Mk III" if BOARD_STARLABS_LABTOP_KBL default "LabTop Mk IV" if BOARD_STARLABS_LABTOP_CML default "StarBook Mk V" if BOARD_STARLABS_STARBOOK_TGL default "StarBook Mk VI" if BOARD_STARLABS_STARBOOK_ADL || BOARD_STARLABS_STARBOOK_RPL - default "StarBook Mk VII" if BOARD_STARLABS_STARBOOK_ADL_N + default "StarBook Mk VII" if BOARD_STARLABS_STARBOOK_ADL_N || BOARD_STARLABS_STARBOOK_MTL config MAINBOARD_SMBIOS_PRODUCT_NAME default "LabTop" if BOARD_STARLABS_LABTOP_KBL || BOARD_STARLABS_LABTOP_CML @@ -211,5 +234,6 @@ config VARIANT_DIR default "adl" if BOARD_STARLABS_STARBOOK_ADL default "rpl" if BOARD_STARLABS_STARBOOK_RPL default "adl_n" if BOARD_STARLABS_STARBOOK_ADL_N + default "mtl" if BOARD_STARLABS_STARBOOK_MTL endif diff --git a/src/mainboard/starlabs/starbook/Kconfig.name b/src/mainboard/starlabs/starbook/Kconfig.name index 3efc31d7f2..e6bc4ceb2f 100644 --- a/src/mainboard/starlabs/starbook/Kconfig.name +++ b/src/mainboard/starlabs/starbook/Kconfig.name @@ -19,3 +19,6 @@ config BOARD_STARLABS_STARBOOK_RPL config BOARD_STARLABS_STARBOOK_ADL_N bool "Star Labs StarBook Mk VII (N200)" + +config BOARD_STARLABS_STARBOOK_MTL + bool "Star Labs StarBook Mk VII (165H)" diff --git a/src/mainboard/starlabs/starbook/dsdt.asl b/src/mainboard/starlabs/starbook/dsdt.asl index 3b95098b4e..169731cb7f 100644 --- a/src/mainboard/starlabs/starbook/dsdt.asl +++ b/src/mainboard/starlabs/starbook/dsdt.asl @@ -1,6 +1,8 @@ /* SPDX-License-Identifier: GPL-2.0-only */ #include +#include + DefinitionBlock( "dsdt.aml", "DSDT", @@ -34,6 +36,10 @@ DefinitionBlock( #include #include #include +#elif CONFIG(SOC_INTEL_METEORLAKE) + #include + #include + #include #endif #include diff --git a/src/mainboard/starlabs/starbook/variants/mtl/Makefile.mk b/src/mainboard/starlabs/starbook/variants/mtl/Makefile.mk new file mode 100644 index 0000000000..9abc069b38 --- /dev/null +++ b/src/mainboard/starlabs/starbook/variants/mtl/Makefile.mk @@ -0,0 +1,10 @@ +## SPDX-License-Identifier: GPL-2.0-only + +bootblock-y += gpio.c + +romstage-y += romstage.c + +ramstage-y += devtree.c +ramstage-y += gpio.c +ramstage-y += hda_verb.c +ramstage-y += ramstage.c diff --git a/src/mainboard/starlabs/starbook/variants/mtl/board.fmd b/src/mainboard/starlabs/starbook/variants/mtl/board.fmd new file mode 100644 index 0000000000..cfa449253d --- /dev/null +++ b/src/mainboard/starlabs/starbook/variants/mtl/board.fmd @@ -0,0 +1,14 @@ +FLASH 0x2000000 { + SI_ALL 0x1200000 { + SI_DESC 0x4000 + SI_ME 0x80f000 + } + SI_BIOS 0xe00000 { + EC@0x0 0x20000 + RW_MRC_CACHE@0x20000 0x10000 + SMMSTORE@0x30000 0x40000 + CONSOLE@0x70000 0x20000 + FMAP@0x90000 0x1000 + COREBOOT(CBFS) + } +} diff --git a/src/mainboard/starlabs/starbook/variants/mtl/data.vbt b/src/mainboard/starlabs/starbook/variants/mtl/data.vbt new file mode 100644 index 0000000000000000000000000000000000000000..9dec888c9da82bd7889c8f9008e15ab335e05a04 GIT binary patch literal 7680 zcmeHMUrbw782`?_Z7H=#H_&yA;gKy^aKNQ($Oy@9`RBU9Xn~O~F`;9vj>raM%rIlJ ztMb6hlKZ0KVq!HhQGDUWXZxbT_(EnhK4^kZE{iWFd)r3+opVdO!Wh*#9ZSFFyXTzy z{mys3?>pz7^WEG1!yQAsuY0Jwf1o#TyqgP(kw)RlSzI?#N3efzq$@BK80qNk?>x?l zJxjcD^(Ik_vEA+_O=}9CpN^0F25NcV#OT;~ys;~O@%8D6NgnD9^1zuh@$vZ7>FIck z4-UT^;6h)CtK-txc#NO8bZ#_0)yAPj1DZD-Y-m2nx&Ng`t+~;!H64Pat*NE$(BTqS zS9fQBUntlc7z*~E;Qa%xV!9PIAv=sm?l1N}#X9l@dQt`b*{3!M{_m#4;FJ3GyN zoweMLaq6XBX)^Den3`T8S>Wz4;p~NK=CCO=HM9f8{NkT=?-461Q z6BQd+2Xn9!Ehkz|v}`DKc^86BNO_Mb=Px?9IAi zyP>QwW5?6-Y;#Vz@q|Sbw=8cl4@!IK3zSOzRBV`hWv|B>t+skswOqm8FY0ctMwG2J zBuY6oMJl<^D9>n+`#3a+y=iL=vE8Hxs7CY7wOAUwEmu^T3P6LMY(hgj&g9L#(CTPD zOq#Au;!G6;FVIoc+%xuyyfn=4aD_+r+@pb+;uz0Y!{?1NE8&V7Ju;uQftlifC%5ic z%)^GGM|5p;(XZ>ttOf_kY{xxp&nJ?vK0mw=rYfz+OwWagq$%<>f+_jL;jIQU5v{1w zHJ+XeMABv!OD~L~e7x|r8;Qxqeb7)RdRcQ}%0t(ku+QeP9J&AoEb8$fClw^UklCWU zwy8JyNW#ZUQ!fgCpbeQZG9LPd(y+O za~*9J^8=&wM-MmTn2ySLl^sNSI&=}2SXnRyG zpVnOb&&%dwVg`8v zn^Ai^IsIcbJuQs(jh*-7<#EKu)X*`EWe^t5;o}{ z5pk86j|_?c%d9tkDZ6nO0GrOdG>0!BHF(i-NG}XrS3bk{4f{OPXc8C={j9w%nU>Ai zIrBhPVe{n3%wHJI*jHGD<{_)ekuA?Cq&qZ4$LNbTe~#=