Christian Walter has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add Support for Prodrive Hermes Board ......................................................................
mainboard/prodrive/hermes: Add Support for Prodrive Hermes Board
This patch adds support for the Prodrive Hermes mainboard. This is untested yet.
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com --- A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/acpi_tables.c A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 19 files changed, 993 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/1
diff --git a/src/mainboard/prodrive/Kconfig b/src/mainboard/prodrive/Kconfig new file mode 100644 index 0000000..0847425 --- /dev/null +++ b/src/mainboard/prodrive/Kconfig @@ -0,0 +1,16 @@ +if VENDOR_PRODRIVE + +choice + prompt "Mainboard model" + +source "src/mainboard/prodrive/*/Kconfig.name" + +endchoice + +source "src/mainboard/prodrive/*/Kconfig" + +config MAINBOARD_VENDOR + string + default "Prodrive" + +endif # VENDOR_PRODRIVE diff --git a/src/mainboard/prodrive/Kconfig.name b/src/mainboard/prodrive/Kconfig.name new file mode 100644 index 0000000..b516ef1 --- /dev/null +++ b/src/mainboard/prodrive/Kconfig.name @@ -0,0 +1,2 @@ +config VENDOR_PRODRIVE + bool "Prodrive" diff --git a/src/mainboard/prodrive/hermes/Kconfig b/src/mainboard/prodrive/hermes/Kconfig new file mode 100644 index 0000000..8d01923 --- /dev/null +++ b/src/mainboard/prodrive/hermes/Kconfig @@ -0,0 +1,71 @@ +config BOARD_PRODRIVE_HERMES + def_bool n + select SOC_INTEL_COFFEELAKE + select BOARD_ROMSIZE_KB_32768 + select GENERIC_SPD_BIN +# select HAVE_ACPI_RESUME + select HAVE_ACPI_TABLES + select SOC_INTEL_CANNONLAKE_PCH_H + select SUPERIO_ASPEED_COMMON_PRE_RAM + select SUPERIO_ASPEED_AST2400 + select DRIVERS_ASPEED_AST_COMMON + select DRIVERS_ASPEED_AST2050 + select SOC_INTEL_COMMON_BLOCK_LPC_COMB_ENABLE + select IPMI_KCS + select SOC_INTEL_COMMON_BLOCK_GPIO_LEGACY_MACROS + +if BOARD_PRODRIVE_HERMES + +config MAINBOARD_FAMILY + string + default "PRODRIVE_HERMES_SERIES" + +config MAINBOARD_PART_NUMBER + string + default "Baseboard" if BOARD_PRODRIVE_HERMES_BASEBOARD + +config MAINBOARD_DIR + string + default "prodrive/hermes" + +config VARIANT_DIR + string + default "baseboard" if BOARD_PRODRIVE_HERMES_BASEBOARD + +config MAINBOARD_PART_NUMBER + string + default "Baseboard" if BOARD_PRODRIVE_HERMES_BASEBOARD + +config MAINBOARD_VENDOR + string + default "Prodrive" + +config MAX_CPUS + int + default 12 + +config OVERRIDE_DEVICETREE + string + default "variants/$(CONFIG_VARIANT_DIR)/overridetree.cb" + +config DIMM_SPD_SIZE + int + default 512 + +config CONSOLE_POST + bool + default n + +config POST_DEVICE + bool + default n + +config POST_IO + bool + default n + +config CBFS_SIZE + hex + default 0xa00000 + +endif # BOARD_PRODRIVE_HERMES diff --git a/src/mainboard/prodrive/hermes/Kconfig.name b/src/mainboard/prodrive/hermes/Kconfig.name new file mode 100644 index 0000000..034c285 --- /dev/null +++ b/src/mainboard/prodrive/hermes/Kconfig.name @@ -0,0 +1,3 @@ +config BOARD_PRODRIVE_HERMES_BASEBOARD + bool "Hermes" + select BOARD_PRODRIVE_HERMES diff --git a/src/mainboard/prodrive/hermes/Makefile.inc b/src/mainboard/prodrive/hermes/Makefile.inc new file mode 100644 index 0000000..073acc2 --- /dev/null +++ b/src/mainboard/prodrive/hermes/Makefile.inc @@ -0,0 +1,22 @@ +## +## This file is part of the coreboot project. +## +## Copyright (C) 2013 Google Inc. +## Copyright (C) 2018 Intel Corporation. +## +## 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. +## + +subdirs-y += variants/$(VARIANT_DIR) +CPPFLAGS_common += -I$(src)/mainboard/prodrive/hermes/variants/$(VARIANT_DIR)/include + +bootblock-y += bootblock.c +romstage-y += memory.c +ramstage-y += ramstage.c diff --git a/src/mainboard/prodrive/hermes/acpi_tables.c b/src/mainboard/prodrive/hermes/acpi_tables.c new file mode 100644 index 0000000..3b44754 --- /dev/null +++ b/src/mainboard/prodrive/hermes/acpi_tables.c @@ -0,0 +1 @@ +/* Nothing here */ diff --git a/src/mainboard/prodrive/hermes/board_info.txt b/src/mainboard/prodrive/hermes/board_info.txt new file mode 100644 index 0000000..84007b8 --- /dev/null +++ b/src/mainboard/prodrive/hermes/board_info.txt @@ -0,0 +1,2 @@ +Category: server +Vendor name: Prodrive diff --git a/src/mainboard/prodrive/hermes/bootblock.c b/src/mainboard/prodrive/hermes/bootblock.c new file mode 100644 index 0000000..9677536 --- /dev/null +++ b/src/mainboard/prodrive/hermes/bootblock.c @@ -0,0 +1,52 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2018 Intel Corporation. + * + * 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 <variant/gpio.h> +#include <bootblock_common.h> +#include <soc/gpio.h> +#include <superio/aspeed/common/aspeed.h> +#include <superio/aspeed/ast2400/ast2400.h> +#include <delay.h> +#include <console/uart.h> +#include <console/console.h> + +static void early_config_gpio(void) +{ + /* This is a hack for FSP because it does things in MemoryInit() + * which it shouldn't do. We have to prepare certain gpios here + * because of the brokenness in FSP. */ + size_t num = 0; + const struct pad_config *early_gpio_table = get_early_gpio_table(&num); + + gpio_configure_pads(early_gpio_table, num); +} + +static void early_config_superio(void) +{ + const pnp_devfn_t serial_dev = PNP_DEV(0x4e, AST2400_SUART1); + if (CONFIG(CONSOLE_SERIAL)) { + aspeed_enable_serial(serial_dev, CONFIG_TTYS0_BASE); + /* The serial output is garbeled before this timeout. + * FIXME: Find out why and remove delay. + */ + mdelay(1000); + } +} + +void bootblock_mainboard_early_init(void) +{ + early_config_gpio(); + early_config_superio(); +} diff --git a/src/mainboard/prodrive/hermes/devicetree.cb b/src/mainboard/prodrive/hermes/devicetree.cb new file mode 100644 index 0000000..b7321ac --- /dev/null +++ b/src/mainboard/prodrive/hermes/devicetree.cb @@ -0,0 +1,58 @@ +chip soc/intel/cannonlake + + device cpu_cluster 0 on + device lapic 0 on end + end + + device domain 0 on + device pci 00.0 on end # Host Bridge + device pci 01.0 on end + device pci 02.0 on end # Integrated Graphics Device + device pci 04.0 on end # SA Thermal device + device pci 04.0 on end # Intel Xeon E3 + device pci 12.0 on end # Thermal Subsystem + device pci 14.0 on end # USB xHCI + device pci 14.1 off end # USB xDCI (OTG) + device pci 14.2 on end + device pci 15.0 on end # I2C #0 + device pci 15.1 on end # I2C #1 + device pci 16.0 on end # Management Engine Interface + device pci 16.1 on end # Management Engine Interface + device pci 16.4 on end # Management Engine Interface + device pci 17.0 on end # SATA + device pci 1c.1 on end # Aspeed Graphics + device pci 1e.0 on end # UART #0 + device pci 1f.0 on # LPC Interface + chip drivers/ipmi + # On cold boot it takes a while for the BMC to start the IPMI service + register "wait_for_bmc" = "0" + register "bmc_boot_timeout" = "60" + device pnp ca2.0 on end # IPMI KCS + end + chip superio/common + device pnp 4e.0 on + chip superio/aspeed/ast2400 + device pnp 4e.2 on # SUART1 + io 0x60 = 0x3f8 + irq 0x70 = 4 + end + device pnp 4e.3 on # SUART2 + io 0x60 = 0x2f8 + irq 0x70 = 3 + end + device pnp 4e.4 off end # SWC + device pnp 4e.5 off end # KBC + device pnp 4e.7 off end # GPIO + device pnp 4e.b off end # SUART3 + device pnp 4e.c off end # SUART4 + device pnp 4e.d off end # iLPC2AHB + device pnp 4e.e off end # Mailbox + end + end + end + end + device pci 1f.4 on end # SMBus + device pci 1f.5 on end # PCH SPI + end + +end diff --git a/src/mainboard/prodrive/hermes/dsdt.asl b/src/mainboard/prodrive/hermes/dsdt.asl new file mode 100644 index 0000000..e03bec1 --- /dev/null +++ b/src/mainboard/prodrive/hermes/dsdt.asl @@ -0,0 +1,45 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2007-2009 coresystems GmbH + * Copyright (C) 2015 Google Inc. + * Copyright (C) 2018 Intel Corporation + * + * 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 <arch/acpi.h> +DefinitionBlock( + "dsdt.aml", + "DSDT", + 0x02, // DSDT revision: ACPI v2.0 and up + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20110725 // OEM revision +) +{ + // Some generic macros + #include <soc/intel/cannonlake/acpi/platform.asl> + + // global NVS and variables + #include <soc/intel/common/block/acpi/acpi/globalnvs.asl> + + Scope (_SB) { + Device (PCI0) + { + #include <soc/intel/cannonlake/acpi/northbridge.asl> + #include <soc/intel/cannonlake/acpi/southbridge.asl> + } + } + + // Chipset specific sleep states + #include <southbridge/intel/common/acpi/sleepstates.asl> + +} diff --git a/src/mainboard/prodrive/hermes/memory.c b/src/mainboard/prodrive/hermes/memory.c new file mode 100644 index 0000000..d8822d3 --- /dev/null +++ b/src/mainboard/prodrive/hermes/memory.c @@ -0,0 +1,61 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2017 Google Inc. + * Copyright 2018 Intel Corp. + * + * 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 <variant/variants.h> +#include <variant/gpio.h> +#include <soc/cnl_memcfg_init.h> + +static const struct cnl_mb_cfg baseboard_memcfg_cfg = { + /* Access memory info through SMBUS. */ + .spd[0] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xA0} + }, + .spd[1] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xA2} + }, + .spd[2] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xA4} + }, + .spd[3] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xA6} + }, + + /* Baseboard uses 121, 81 and 100 rcomp resistors */ + .rcomp_resistor = {121, 81, 100}, + + /* + * Baseboard Rcomp target values. + */ + .rcomp_targets = {100, 40, 20, 20, 26}, + + /* Baseboard is an interleaved design */ + .dq_pins_interleaved = 1, + + /* Baseboard is using config 2 for vref_ca */ + .vref_ca_config = 2, + + /* Disable Early Command Training */ + .ect = 0, +}; + +const struct cnl_mb_cfg *variant_memcfg_config(void) +{ + return &baseboard_memcfg_cfg; +} diff --git a/src/mainboard/prodrive/hermes/ramstage.c b/src/mainboard/prodrive/hermes/ramstage.c new file mode 100644 index 0000000..1074ea4 --- /dev/null +++ b/src/mainboard/prodrive/hermes/ramstage.c @@ -0,0 +1,30 @@ +/* + * This file is part of the coreboot project. + * + * 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 <bootstate.h> +#include <soc/ramstage.h> +#include <variant/gpio.h> + +void mainboard_silicon_init_params(FSP_S_CONFIG *params) +{ + + size_t num = 0; + const struct pad_config *gpio_table = get_gpio_table(&num); + + /* Configure pads prior to SiliconInit() in case there's any + * dependencies during hardware initialization. */ + gpio_configure_pads(gpio_table, num); + + /* This must be one, otherwise FSP crashes ... */ + params->PchHdaVcType = 0x1; +} diff --git a/src/mainboard/prodrive/hermes/romstage.c b/src/mainboard/prodrive/hermes/romstage.c new file mode 100644 index 0000000..8e8580a --- /dev/null +++ b/src/mainboard/prodrive/hermes/romstage.c @@ -0,0 +1,25 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2016 Google Inc. + * Copyright (C) 2017-2018 Intel Corp. + * + * 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 <soc/cnl_memcfg_init.h> +#include <soc/romstage.h> +#include <variant/variants.h> +#include <console/console.h> + +void mainboard_memory_init_params(FSPM_UPD *memupd) +{ + cannonlake_memcfg_init(&memupd->FspmConfig, variant_memcfg_config()); +} diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc b/src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc new file mode 100644 index 0000000..d560afc --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc @@ -0,0 +1,2 @@ +bootblock-y += gpio.c +ramstage-y += gpio.c \ No newline at end of file diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt b/src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt new file mode 100644 index 0000000..80dba95 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt @@ -0,0 +1,7 @@ +Category: server +Vendor name: Prodrive +Board name: Hermes +Board URL: TBD +ROM protocol: SPI +ROM socketed: n +Flashrom support: y diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c b/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c new file mode 100644 index 0000000..1f09215 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c @@ -0,0 +1,443 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 9elements Agency GmbH + * + * 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 "include/variant/gpio.h" +#include <commonlib/helpers.h> + +/* Pad configuration in ramstage */ +static const struct pad_config gpio_table[] = { + /* ------- GPIO Group GPP_A ------- */ + /* GPP_A0 - ESPI_ALERT1# */ + PAD_CFG_NF_BUF_TRIG(GPP_A0, NONE, DEEP, NF3, TX_RX_DISABLE, OFF), + /* GPP_A1 - ESPI_IO0 */ + PAD_CFG_NF_BUF_TRIG(GPP_A1, NONE, DEEP, NF3, TX_RX_DISABLE, OFF), + /* GPP_A2 - ESPI_IO1 */ + PAD_CFG_NF_BUF_TRIG(GPP_A2, NONE, DEEP, NF3, TX_RX_DISABLE, OFF), + /* GPP_A3 - ESPI_IO2 */ + PAD_CFG_NF_BUF_TRIG(GPP_A3, NONE, DEEP, NF3, TX_RX_DISABLE, OFF), + /* GPP_A4 - ESPI_IO3 */ + PAD_CFG_NF_BUF_TRIG(GPP_A4, NONE, DEEP, NF3, TX_RX_DISABLE, OFF), + /* GPP_A5 - ESPI_CS0# */ + PAD_CFG_NF_BUF_TRIG(GPP_A5, NONE, DEEP, NF3, TX_RX_DISABLE, OFF), + /* GPP_A6 - GPIO */ + PAD_CFG_GPI_INT(GPP_A6, NONE, DEEP, OFF), + /* GPP_A7 - ESPI_ALERT0# */ + PAD_CFG_NF_BUF_TRIG(GPP_A7, NONE, DEEP, NF3, TX_RX_DISABLE, OFF), + /* GPP_A8 - CLKRUN# */ + PAD_CFG_NF_BUF_TRIG(GPP_A8, NONE, DEEP, NF1, TX_DISABLE, OFF), + /* GPP_A9 - ESPI_CLK */ + PAD_CFG_NF_BUF_TRIG(GPP_A9, NONE, DEEP, NF3, TX_RX_DISABLE, OFF), + /* GPP_A10 - CLKOUT_LPC1 */ + PAD_CFG_NF_BUF_TRIG(GPP_A10, NONE, DEEP, NF1, RX_DISABLE, OFF), + /* GPP_A11 - GPIO */ + PAD_CFG_GPI_INT(GPP_A11, NONE, DEEP, OFF), + /* GPP_A12 - GPIO */ + PAD_CFG_GPI_SCI(GPP_A12, NONE, PLTRST, LEVEL, YES), + /* GPP_A13 - SUSWARN#/SUSPWRDNACK */ + PAD_CFG_NF_BUF_TRIG(GPP_A13, NONE, DEEP, NF1, RX_DISABLE, OFF), + /* GPP_A15 - SUSACK# */ + PAD_CFG_NF_BUF_TRIG(GPP_A15, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_A16 - GPIO */ + PAD_CFG_GPO(GPP_A16, 0, DEEP), + /* GPP_A17 - GPIO */ + PAD_CFG_GPO(GPP_A17, 0, DEEP), + /* GPP_A18 - GPIO */ + PAD_CFG_GPI_INT(GPP_A18, NONE, DEEP, OFF), + /* GPP_A19 - RESERVED */ + /* GPP_A20 - GPIO */ + PAD_CFG_GPI_INT(GPP_A20, NONE, DEEP, OFF), + /* GPP_A21 - GPIO */ + PAD_CFG_GPI_INT(GPP_A21, NONE, DEEP, OFF), + /* GPP_A22 - GPIO */ + PAD_CFG_GPI_INT(GPP_A22, NONE, DEEP, OFF), + /* GPP_A23 - GPIO */ + PAD_CFG_GPI_INT(GPP_A23, NONE, DEEP, OFF), + + /* ------- GPIO Group GPP_B ------- */ + /* GPP_B0 - GPIO */ + PAD_CFG_GPO(GPP_B0, 0, DEEP), + /* GPP_B1 - GPIO */ + PAD_CFG_GPI_INT(GPP_B1, NONE, DEEP, OFF), + /* GPP_B2 - GPIO */ + PAD_CFG_GPI_INT(GPP_B2, NONE, DEEP, OFF), + /* GPP_B3 - GPIO */ + PAD_CFG_GPO(GPP_B3, 0, DEEP), + /* GPP_B4 - GPIO */ + PAD_CFG_GPO(GPP_B4, 0, DEEP), + /* GPP_B5 - GPIO */ + PAD_CFG_GPO(GPP_B5, 0, DEEP), + /* GPP_B6 - GPIO */ + PAD_CFG_GPI_INT(GPP_B6, NONE, DEEP, OFF), + /* GPP_B7 - GPIO */ + PAD_CFG_GPO(GPP_B7, 0, DEEP), + /* GPP_B8 - GPIO */ + PAD_CFG_GPO(GPP_B8, 0, DEEP), + /* GPP_B9 - GPIO */ + PAD_CFG_GPO(GPP_B9, 0, DEEP), + /* GPP_B10 - GPIO */ + PAD_CFG_GPO(GPP_B10, 0, DEEP), + /* GPP_B11 - GPIO */ + PAD_CFG_GPO(GPP_B11, 0, DEEP), + /* GPP_B14 - SPKR */ + PAD_CFG_NF_BUF_TRIG(GPP_B14, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_B15 - GPIO */ + PAD_CFG_GPO(GPP_B15, 1, DEEP), + /* GPP_B16 - GPIO */ + PAD_CFG_GPO(GPP_B16, 1, DEEP), + /* GPP_B17 - GPIO */ + PAD_CFG_GPO(GPP_B17, 0, DEEP), + /* GPP_B18 - GPIO */ + PAD_CFG_GPI_INT(GPP_B18, NONE, DEEP, OFF), + /* GPP_B19 - GPIO */ + PAD_CFG_GPI_INT(GPP_B19, NONE, DEEP, OFF), + /* GPP_B20 - GPIO */ + PAD_CFG_GPO(GPP_B20, 1, DEEP), + /* GPP_B21 - GPIO */ + PAD_CFG_GPO(GPP_B21, 1, DEEP), + /* GPP_B22 - GPIO */ + PAD_CFG_GPI_INT(GPP_B22, NONE, DEEP, OFF), + /* GPP_B23 - PCHHOT# */ + PAD_CFG_NF_BUF_TRIG(GPP_B23, NONE, DEEP, NF2, TX_RX_DISABLE, OFF), + /* ------- GPIO Community 1 ------- */ + + /* ------- GPIO Group GPP_C ------- */ + /* GPP_C0 - RESERVED */ + /* GPP_C1 - RESERVED */ + /* GPP_C2 - GPIO */ + PAD_CFG_GPI_INT(GPP_C2, NONE, DEEP, OFF), + /* GPP_C3 - RESERVED */ + /* GPP_C4 - RESERVED */ + /* GPP_C8 - GPIO */ + PAD_CFG_GPI_INT(GPP_C8, NONE, PLTRST, OFF), + /* GPP_C9 - GPIO */ + PAD_CFG_GPI_INT(GPP_C9, NONE, PLTRST, OFF), + /* GPP_C10 - GPIO */ + PAD_CFG_GPO(GPP_C10, 1, DEEP), + /* GPP_C11 - GPIO */ + PAD_CFG_GPO(GPP_C11, 0, DEEP), + /* GPP_C12 - GPIO */ + PAD_CFG_GPO(GPP_C12, 0, DEEP), + /* GPP_C13 - GPIO */ + PAD_CFG_GPO(GPP_C13, 0, DEEP), + /* GPP_C14 - GPIO */ + PAD_CFG_GPI_INT(GPP_C14, NONE, DEEP, OFF), + /* GPP_C15 - GPIO */ + PAD_CFG_GPO(GPP_C15, 0, DEEP), + /* GPP_C16 - I2C0_SDA */ + PAD_CFG_NF_BUF_TRIG(GPP_C16, NONE, DEEP, NF1, RX_DISABLE, OFF), + /* GPP_C17 - I2C0_SCL */ + PAD_CFG_NF_BUF_TRIG(GPP_C17, NONE, DEEP, NF1, RX_DISABLE, OFF), + /* GPP_C18 - I2C1_SDA */ + PAD_CFG_NF_BUF_TRIG(GPP_C18, NONE, DEEP, NF1, RX_DISABLE, OFF), + /* GPP_C19 - I2C1_SCL */ + PAD_CFG_NF_BUF_TRIG(GPP_C19, NONE, DEEP, NF1, RX_DISABLE, OFF), + /* GPP_C20 - RESERVED */ + /* GPP_C21 - GPIO */ + PAD_CFG_GPO(GPP_C21, 1, DEEP), + /* GPP_C22 - GPIO */ + PAD_CFG_GPI_ACPI_SMI(GPP_C22, NONE, PLTRST, YES), + /* GPP_C23 - GPIO */ + PAD_CFG_GPI_INT(GPP_C23, NONE, DEEP, OFF), + + /* ------- GPIO Group GPP_D ------- */ + /* GPP_D0 - GPIO */ + PAD_CFG_GPI_NMI(GPP_D0, NONE, PLTRST, EDGE_SINGLE, YES), + /* GPP_D1 - GPIO */ + PAD_CFG_GPO(GPP_D1, 1, PLTRST), + /* GPP_D2 - GPIO */ + PAD_CFG_GPI_INT(GPP_D2, NONE, DEEP, OFF), + /* GPP_D3 - GPIO */ + PAD_CFG_GPI_INT(GPP_D3, NONE, DEEP, OFF), + /* GPP_D4 - GPIO */ + PAD_CFG_GPI_INT(GPP_D4, NONE, DEEP, OFF), + /* GPP_D5 - GPIO */ + PAD_CFG_GPO(GPP_D5, 0, DEEP), + /* GPP_D6 - GPIO */ + PAD_CFG_GPO(GPP_D6, 0, DEEP), + /* GPP_D7 - GPIO */ + PAD_CFG_GPO(GPP_D7, 0, DEEP), + /* GPP_D8 - GPIO */ + PAD_CFG_GPO(GPP_D8, 0, DEEP), + /* GPP_D9 - GPIO */ + PAD_CFG_GPO(GPP_D9, 0, DEEP), + /* GPP_D10 - GPIO */ + PAD_CFG_GPO(GPP_D10, 0, DEEP), + /* GPP_D11 - GPIO */ + PAD_CFG_GPO(GPP_D11, 0, DEEP), + /* GPP_D12 - GPIO */ + PAD_CFG_GPO(GPP_D12, 0, DEEP), + /* GPP_D13 - GPIO */ + PAD_CFG_GPO(GPP_D13, 0, DEEP), + /* GPP_D14 - GPIO */ + PAD_CFG_GPO(GPP_D14, 0, DEEP), + /* GPP_D15 - GPIO */ + PAD_CFG_GPO(GPP_D15, 0, DEEP), + /* GPP_D16 - GPIO */ + PAD_CFG_GPO(GPP_D16, 0, DEEP), + /* GPP_D17 - GPIO */ + PAD_CFG_GPO(GPP_D17, 0, DEEP), + /* GPP_D18 - GPIO */ + PAD_CFG_GPO(GPP_D18, 0, DEEP), + /* GPP_D19 - GPIO */ + PAD_CFG_GPO(GPP_D19, 0, DEEP), + /* GPP_D20 - GPIO */ + PAD_CFG_GPO(GPP_D20, 0, DEEP), + /* GPP_D21 - GPIO */ + PAD_CFG_GPO(GPP_D21, 0, DEEP), + /* GPP_D22 - GPIO */ + PAD_CFG_GPO(GPP_D22, 0, DEEP), + /* GPP_D23 - GPIO */ + PAD_CFG_GPO(GPP_D23, 0, DEEP), + + /* ------- GPIO Group GPP_G ------- */ + /* GPP_G0 - GPIO */ + PAD_CFG_GPO(GPP_G0, 0, DEEP), + /* GPP_G1 - GPIO */ + PAD_CFG_GPO(GPP_G1, 0, DEEP), + /* GPP_G2 - GPIO */ + PAD_CFG_GPO(GPP_G2, 0, DEEP), + /* GPP_G3 - GPIO */ + PAD_CFG_GPO(GPP_G3, 0, DEEP), + /* GPP_G4 - GPIO */ + PAD_CFG_GPO(GPP_G4, 0, DEEP), + /* GPP_G5 - GPIO */ + PAD_CFG_GPO(GPP_G5, 0, DEEP), + /* GPP_G6 - GPIO */ + PAD_CFG_GPO(GPP_G6, 0, DEEP), + /* GPP_G7 - GPIO */ + PAD_CFG_GPO(GPP_G7, 0, DEEP), + + /* ------- GPIO Community 2 ------- */ + + /* ------- GPIO Group GPD ------- */ + /* GPD0 - GPIO */ + PAD_CFG_GPO(GPD0, 0, DEEP), + /* GPD1 - ACPRESENT */ + PAD_CFG_NF_BUF_TRIG(GPD1, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPD2 - LAN_WAKE# */ + PAD_CFG_NF_BUF_TRIG(GPD2, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPD3 - PRWBTN# */ + PAD_CFG_NF_BUF_TRIG(GPD3, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPD4 - SLP_S3# */ + PAD_CFG_NF_BUF_TRIG(GPD4, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPD5 - SLP_S4# */ + PAD_CFG_NF_BUF_TRIG(GPD5, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPD6 - SLP_A# */ + PAD_CFG_NF_BUF_TRIG(GPD6, NONE, DEEP, NF1, RX_DISABLE, OFF), + /* GPD7 - GPIO */ + PAD_CFG_GPI_INT(GPD7, NONE, DEEP, OFF), + /* GPD8 - SUSCLK */ + PAD_CFG_NF_BUF_TRIG(GPD8, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPD9 - GPIO */ + PAD_CFG_GPO(GPD9, 0, DEEP), + /* GPD10 - SLP_S5# */ + PAD_CFG_NF_BUF_TRIG(GPD10, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPD11 - GPIO */ + PAD_CFG_GPO(GPD11, 0, DEEP), + + /* ------- GPIO Community 3 ------- */ + + /* ------- GPIO Group GPP_K ------- */ + /* GPP_K0 - GPIO */ + PAD_CFG_GPI_INT(GPP_K0, NONE, DEEP, OFF), + /* GPP_K1 - GPIO */ + PAD_CFG_GPI_INT(GPP_K1, NONE, DEEP, OFF), + /* GPP_K2 - GPIO */ + PAD_CFG_GPI_INT(GPP_K2, NONE, DEEP, OFF), + /* GPP_K3 - GPIO */ + PAD_CFG_GPI_INT(GPP_K3, NONE, DEEP, OFF), + /* GPP_K4 - GPIO */ + PAD_CFG_GPO(GPP_K4, 0, DEEP), + /* GPP_K5 - GPIO */ + PAD_CFG_GPO(GPP_K5, 0, DEEP), + /* GPP_K6 - GPIO */ + PAD_CFG_GPO(GPP_K6, 0, DEEP), + /* GPP_K7 - GPIO */ + PAD_CFG_GPO(GPP_K7, 0, DEEP), + /* GPP_K8 - GPIO */ + PAD_CFG_GPI_INT(GPP_K8, NONE, DEEP, OFF), + /* GPP_K9 - GPIO */ + PAD_CFG_GPO(GPP_K9, 0, DEEP), + /* GPP_K10 - GPIO */ + PAD_CFG_GPO(GPP_K10, 0, DEEP), + /* GPP_K11 - GPIO */ + PAD_CFG_GPO(GPP_K11, 0, DEEP), + /* GPP_K12 - GPIO */ + PAD_CFG_GPI_INT(GPP_K12, NONE, DEEP, OFF), + /* GPP_K13 - GPIO */ + PAD_CFG_GPI_INT(GPP_K13, NONE, DEEP, OFF), + /* GPP_K14 - GPIO */ + PAD_CFG_GPI_INT(GPP_K14, NONE, DEEP, OFF), + /* GPP_K15 - GPIO */ + PAD_CFG_GPO(GPP_K15, 0, DEEP), + /* GPP_K16 - GPIO */ + PAD_CFG_GPO(GPP_K16, 0, DEEP), + /* GPP_K17 - GPIO */ + PAD_CFG_GPI_INT(GPP_K17, NONE, DEEP, OFF), + /* GPP_K18 - GPIO */ + PAD_CFG_GPO(GPP_K18, 1, DEEP), + /* GPP_K19 - SMI# */ + PAD_CFG_NF_BUF_TRIG(GPP_K19, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_K20 - GPIO */ + PAD_CFG_GPO(GPP_K20, 0, DEEP), + /* GPP_K21 - GPIO */ + PAD_CFG_GPO(GPP_K21, 0, DEEP), + /* GPP_K22 - GPIO */ + PAD_CFG_GPI_INT(GPP_K22, NONE, DEEP, OFF), + /* GPP_K23 - GPIO */ + PAD_CFG_GPI_INT(GPP_K23, NONE, DEEP, OFF), + + /* ------- GPIO Group GPP_H ------- */ + /* GPP_H0 - GPIO */ + PAD_CFG_GPO(GPP_H0, 0, DEEP), + /* GPP_H1 - GPIO */ + PAD_CFG_GPO(GPP_H1, 0, DEEP), + /* GPP_H2 - GPIO */ + PAD_CFG_GPI_INT(GPP_H2, NONE, DEEP, OFF), + /* GPP_H3 - GPIO */ + PAD_CFG_GPO(GPP_H3, 0, DEEP), + /* GPP_H4 - GPIO */ + PAD_CFG_GPO(GPP_H4, 0, DEEP), + /* GPP_H5 - RESERVED */ + /* GPP_H6 - GPIO */ + PAD_CFG_GPO(GPP_H6, 0, DEEP), + /* GPP_H7 - GPIO */ + PAD_CFG_GPO(GPP_H7, 0, DEEP), + /* GPP_H8 - GPIO */ + PAD_CFG_GPO(GPP_H8, 0, DEEP), + /* GPP_H9 - GPIO */ + PAD_CFG_GPO(GPP_H9, 0, DEEP), + /* GPP_H10 - RESERVED */ + /* GPP_H11 - RESERVED */ + /* GPP_H12 - GPIO */ + PAD_CFG_GPO(GPP_H12, 1, PLTRST), + /* GPP_H13 - RESERVED */ + /* GPP_H14 - RESERVED */ + /* GPP_H15 - GPIO */ + PAD_CFG_GPI_INT(GPP_H15, NONE, PLTRST, OFF), + /* GPP_H16 - RESERVED */ + /* GPP_H17 - RESERVED */ + /* GPP_H18 - GPIO */ + PAD_CFG_GPI_INT(GPP_H18, NONE, DEEP, OFF), + /* GPP_H19 - GPIO */ + PAD_CFG_GPO(GPP_H19, 1, PLTRST), + /* GPP_H20 - GPIO */ + PAD_CFG_GPO(GPP_H20, 1, PLTRST), + /* GPP_H21 - GPIO */ + PAD_CFG_GPO(GPP_H21, 0, PLTRST), + /* GPP_H22 - GPIO */ + PAD_CFG_GPO(GPP_H22, 0, PLTRST), + /* GPP_H23 - GPIO */ + PAD_CFG_GPO(GPP_H23, 0, DEEP), + + /* ------- GPIO Group GPP_E ------- */ + /* GPP_E0 - GPIO */ + PAD_CFG_GPO(GPP_E0, 0, DEEP), + /* GPP_E2 - GPIO */ + PAD_CFG_GPI_INT(GPP_E2, NONE, DEEP, OFF), + /* GPP_E3 - GPIO */ + PAD_CFG_GPI_INT(GPP_E3, NONE, DEEP, OFF), + /* GPP_E4 - GPIO */ + PAD_CFG_GPO(GPP_E4, 0, DEEP), + /* GPP_E5 - GPIO */ + PAD_CFG_GPI_INT(GPP_E5, NONE, DEEP, OFF), + /* GPP_E6 - GPIO */ + PAD_CFG_GPI_NMI(GPP_E6, NONE, PLTRST, EDGE_SINGLE, YES), + /* GPP_E7 - GPIO */ + PAD_CFG_GPO(GPP_E7, 0, DEEP), + /* GPP_E8 - SATALED# */ + PAD_CFG_NF_BUF_TRIG(GPP_E8, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* ------- GPIO Group GPP_F ------- */ + /* GPP_F0 - GPIO */ + PAD_CFG_GPI_INT(GPP_F0, NONE, DEEP, OFF), + /* GPP_F1 - GPIO */ + PAD_CFG_GPI_INT(GPP_F1, NONE, DEEP, OFF), + /* GPP_F2 - GPIO */ + PAD_CFG_GPI_INT(GPP_F2, NONE, DEEP, OFF), + /* GPP_F3 - GPIO */ + PAD_CFG_GPI_INT(GPP_F3, NONE, DEEP, OFF), + /* GPP_F4 - GPIO */ + PAD_CFG_GPI_INT(GPP_F4, NONE, DEEP, OFF), + /* GPP_F5 - GPIO */ + PAD_CFG_GPI_INT(GPP_F5, NONE, DEEP, OFF), + /* GPP_F6 - GPIO */ + PAD_CFG_GPI_INT(GPP_F6, NONE, DEEP, OFF), + /* GPP_F7 - GPIO */ + PAD_CFG_GPI_INT(GPP_F7, NONE, DEEP, OFF), + /* GPP_F8 - GPIO */ + PAD_CFG_GPI_INT(GPP_F8, NONE, DEEP, OFF), + /* GPP_F9 - GPIO */ + PAD_CFG_GPI_INT(GPP_F9, NONE, DEEP, OFF), + /* GPP_F10 - SATA_SCLOCK */ + PAD_CFG_NF_BUF_TRIG(GPP_F10, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_F11 - SATA_SLOAD */ + PAD_CFG_NF_BUF_TRIG(GPP_F11, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_F12 - SATA_SDATAOUT1 */ + PAD_CFG_NF_BUF_TRIG(GPP_F12, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_F13 - SATA_SDATAOUT0 */ + PAD_CFG_NF_BUF_TRIG(GPP_F13, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_F14 - GPIO */ + PAD_CFG_GPO(GPP_F14, 0, DEEP), + /* GPP_F17 - GPIO */ + PAD_CFG_GPO(GPP_F17, 0, DEEP), + /* GPP_F18 - GPIO */ + PAD_CFG_GPO(GPP_F18, 0, DEEP), + /* GPP_F19 - GPIO */ + PAD_CFG_GPO(GPP_F19, 0, DEEP), + /* GPP_F20 - GPIO */ + PAD_CFG_GPO(GPP_F20, 0, DEEP), + /* GPP_F21 - GPIO */ + PAD_CFG_GPO(GPP_F21, 0, DEEP), + /* GPP_F22 - GPIO */ + PAD_CFG_GPO(GPP_F22, 0, DEEP), + /* GPP_J2 - n/a */ + PAD_CFG_NF_BUF_TRIG(GPP_J2, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_J3 - n/a */ + PAD_CFG_NF_BUF_TRIG(GPP_J3, NONE, DEEP, NF1, TX_RX_DISABLE, OFF), + /* GPP_J4 - GPIO */ + PAD_CFG_GPI_INT(GPP_J4, NONE, DEEP, OFF), + /* GPP_J5 - GPIO */ + PAD_CFG_GPI_INT(GPP_J5, NONE, DEEP, OFF), + /* GPP_J6 - GPIO */ + PAD_CFG_GPI_INT(GPP_J6, NONE, DEEP, OFF), + /* GPP_J7 - GPIO */ + PAD_CFG_GPO(GPP_J7, 1, DEEP), + /* GPP_J8 - GPIO */ + PAD_CFG_GPO(GPP_J8, 1, DEEP), + /* GPP_J9 - GPIO */ + PAD_CFG_GPI_INT(GPP_J9, NONE, DEEP, OFF), + /* GPP_J10 - GPIO */ + PAD_CFG_GPI_INT(GPP_J10, NONE, DEEP, OFF), + /* GPP_J11 - GPIO */ + PAD_CFG_GPI_INT(GPP_J11, NONE, DEEP, OFF), +}; + +/* Early pad configuration in romstage. */ +const struct pad_config early_gpio_table[] = { + /* GPP_B0 - GPIO */ + PAD_CFG_GPO(GPP_B0, 1, DEEP), +}; + +const struct pad_config *get_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(gpio_table); + return gpio_table; +} + +const struct pad_config *get_early_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(early_gpio_table); + return early_gpio_table; +} diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h new file mode 100644 index 0000000..f38f6c1 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h @@ -0,0 +1,28 @@ +/* +* This file is part of the coreboot project. +* +* 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. +*/ + +#ifndef PCH_GPIO_H +#define PCH_GPIO_H + +#include <soc/gpe.h> +#include <soc/gpio.h> +#include <intelblocks/gpio_defs.h> + +const struct pad_config *get_gpio_table(size_t *num); +const struct pad_config *get_early_gpio_table(size_t *num); + + + + +#endif /* PCH_GPIO_H */ diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h new file mode 100644 index 0000000..83cf232 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h @@ -0,0 +1,4 @@ +#include <soc/cnl_memcfg_init.h> + +/* Return memory configuration structure. */ +const struct cnl_mb_cfg *variant_memcfg_config(void); diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb b/src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb new file mode 100644 index 0000000..4735d92 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb @@ -0,0 +1,121 @@ +chip soc/intel/cannonlake + + device cpu_cluster 0 on + device lapic 0 on end + end + + # FSP configuration + register "SaGv" = "SaGv_Enabled" + + register "SataSalpSupport" = "1" + register "SataPortsEnable[0]" = "1" + register "SataPortsEnable[1]" = "1" + register "SataPortsEnable[2]" = "1" + register "SataPortsEnable[3]" = "1" + register "SataPortsEnable[4]" = "1" + register "SataPortsEnable[5]" = "1" + register "SataPortsEnable[6]" = "1" + register "SataPortsEnable[7]" = "1" + + register "PchHdaDspEnable" = "0" + register "PchHdaAudioLinkHda" = "1" + + register "PcieRpEnable[1]" = "1" + register "PcieRpEnable[5]" = "1" + register "PcieRpEnable[8]" = "1" + register "PcieRpEnable[20]" = "1" + register "PcieRpEnable[21]" = "1" + + register "PcieClkSrcUsage[0]" = "0x80" + register "PcieClkSrcUsage[1]" = "0x80" + register "PcieClkSrcUsage[2]" = "0x80" + register "PcieClkSrcUsage[3]" = "0x80" + register "PcieClkSrcUsage[4]" = "0x80" + register "PcieClkSrcUsage[5]" = "0x80" + register "PcieClkSrcUsage[6]" = "0x80" + register "PcieClkSrcUsage[7]" = "0x80" + register "PcieClkSrcUsage[8]" = "0x80" + register "PcieClkSrcUsage[9]" = "0x80" + register "PcieClkSrcUsage[10]" = "0x80" + register "PcieClkSrcUsage[11]" = "0x80" + register "PcieClkSrcUsage[12]" = "0x80" + register "PcieClkSrcUsage[13]" = "0x80" + register "PcieClkSrcUsage[14]" = "0x80" + register "PcieClkSrcUsage[15]" = "0x80" + + register "PcieClkSrcClkReq[0]" = "0" + register "PcieClkSrcClkReq[1]" = "1" + register "PcieClkSrcClkReq[2]" = "2" + register "PcieClkSrcClkReq[3]" = "3" + register "PcieClkSrcClkReq[4]" = "4" + register "PcieClkSrcClkReq[5]" = "5" + register "PcieClkSrcClkReq[6]" = "6" + register "PcieClkSrcClkReq[7]" = "7" + register "PcieClkSrcClkReq[8]" = "8" + register "PcieClkSrcClkReq[9]" = "9" + register "PcieClkSrcClkReq[10]" = "10" + register "PcieClkSrcClkReq[11]" = "11" + register "PcieClkSrcClkReq[12]" = "12" + register "PcieClkSrcClkReq[13]" = "13" + register "PcieClkSrcClkReq[14]" = "14" + register "PcieClkSrcClkReq[15]" = "15" + + register "gen1_dec" = "0x000c0ca1" # IPMI KCS + + # USB Config 2.0/3.0 + + # USB OC0 + register "usb2_ports[0]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[2]" = "USB2_PORT_MID(OC0)" + + # USB OC1 + register "usb2_ports[1]" = "USB2_PORT_MID(OC1)" + register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC1)" + + # USB OC2 + register "usb2_ports[3]" = "USB2_PORT_MID(OC2)" + register "usb2_ports[5]" = "USB2_PORT_MID(OC2)" + register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC2)" + register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC2)" + + # USB OC3 + register "usb2_ports[4]" = "USB2_PORT_MID(OC3)" + register "usb2_ports[6]" = "USB2_PORT_MID(OC3)" + + # USB OC4 + register "usb2_ports[7]" = "USB2_PORT_MID(OC4)" + register "usb2_ports[9]" = "USB2_PORT_MID(OC4)" + + # USB OC5 + register "usb2_ports[8]" = "USB2_PORT_MID(OC5)" + register "usb2_ports[10]" = "USB2_PORT_MID(OC5)" + register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC5)" + register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC5)" + + # USB KCS + register "usb2_ports[13]" = "USB2_PORT_MID(OC_SKIP)" + + # USB OC6/7 - not connected + + # Enable "Intel Speed Shift Technology" + register "speed_shift_enable" = "1" + + # HECI + register "HeciEnabled" = "1" + + # Internal GFX + register "InternalGfx" = "0" + + # Enable S0ix + register "s0ix_enable" = "1" + + device domain 0 on + device pci 1b.0 on end # PCIe Bridge + device pci 1b.4 on end # onboard Ethernet + device pci 1b.5 on end # onboard Ethernet + device pci 1c.0 on end # PCIe Bridge + device pci 1c.1 on end # Aspeed Graphics + device pci 1c.4 on end # NVMe PCIE x4 + device pci 1d.0 on end # PCIE x4 + end +end
Christian Walter has removed Martin Roth from this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add Support for Prodrive Hermes Board ......................................................................
Removed reviewer Martin Roth.
Christian Walter has removed Patrick Georgi from this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add Support for Prodrive Hermes Board ......................................................................
Removed reviewer Patrick Georgi.
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 41:
(5 comments)
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/eeprom.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 24: } else { else is not generally useful after a break or return
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 33: bool read_write_config(u8 addr, void *blob, size_t read_offset, size_t write_offset, size_t size) line over 96 characters
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/romstage.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 25: memupd->FspmConfig.IedSize=0x400000; spaces required around that '=' (ctx:VxV)
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 22: #define EEPROM_OFFSET_FSP_CONFIG EEPROM_OFFSET_FSP_SIGNATURE + sizeof(FSP_UPD_HEADER) Macros with complex values should be enclosed in parentheses
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 32: bool read_write_config(u8 addr, void *blob, size_t read_offset, size_t write_offset, size_t size); line over 96 characters
Felix Singer has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 41: Code-Review+1
(8 comments)
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 46: config MAINBOARD_VENDOR : string : default "Prodrive" Remove, it is set by hermes/Kconfig.
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 66: config POST_DEVICE : bool : default y Remove, AFAIK it is enabled by default.
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/bootblock.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 42: Remove these lines at the end.
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/mainboard.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 9: // Testing Confusing comment.
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 15: register "SataPortsEnable[2]" = "0" # Not used for SATA : register "SataPortsEnable[3]" = "0" # Not used for SATA Used anywhere else? If not, remove.
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 42: register "PcieClkSrcUsage[2]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[3]" = "PCIE_CLK_NOTUSED" IMO can be removed, since if not configured these values are set by SoC code.
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 46: register "PcieClkSrcUsage[6]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[7]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[8]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[9]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[10]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[11]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[12]" = "PCIE_CLK_NOTUSED" Same here.
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 94: # unused : register "usb2_ports[11]" = "USB2_PORT_EMPTY" Remove.
Patrick Rudolph has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 41:
(2 comments)
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/mainboard.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 9: // Testing
Confusing comment.
Maybe this should read "FIXME: example implementation"
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 15: register "SataPortsEnable[2]" = "0" # Not used for SATA : register "SataPortsEnable[3]" = "0" # Not used for SATA
Used anywhere else? If not, remove.
All those are informal and let the reader know that the value wasn't forgotten when porting, but is intentionally not enabled. Removing them will not decrease size or improve performance.
Felix Singer has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 41:
(4 comments)
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 15: register "SataPortsEnable[2]" = "0" # Not used for SATA : register "SataPortsEnable[3]" = "0" # Not used for SATA
All those are informal and let the reader know that the value wasn't forgotten when porting, but is […]
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 42: register "PcieClkSrcUsage[2]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[3]" = "PCIE_CLK_NOTUSED"
IMO can be removed, since if not configured these values are set by SoC code.
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 46: register "PcieClkSrcUsage[6]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[7]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[8]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[9]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[10]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[11]" = "PCIE_CLK_NOTUSED" : register "PcieClkSrcUsage[12]" = "PCIE_CLK_NOTUSED"
Same here.
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 94: # unused : register "usb2_ports[11]" = "USB2_PORT_EMPTY"
Remove.
Ack
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#42).
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
mainboard/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested with FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * PCIe Link Width x8 on Slot6 by changing PCIe mux * DDR Dual Channel with 1x1, 2x2 * DDR Single Channel with two DIMMs on one channel * DDR Single Channel with one DIMM on one channel * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working except the one under ETH1 * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,371 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/42
Christian Walter has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 42:
(9 comments)
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 46: config MAINBOARD_VENDOR : string : default "Prodrive"
Remove, it is set by hermes/Kconfig.
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 66: config POST_DEVICE : bool : default y
Remove, AFAIK it is enabled by default.
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/bootblock.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 42:
Remove these lines at the end.
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/eeprom.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 24: } else {
else is not generally useful after a break or return
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 33: bool read_write_config(u8 addr, void *blob, size_t read_offset, size_t write_offset, size_t size)
line over 96 characters
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/mainboard.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 9: // Testing
Maybe this should read "FIXME: example implementation"
Removed.
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/romstage.c:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 25: memupd->FspmConfig.IedSize=0x400000;
spaces required around that '=' (ctx:VxV)
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h:
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 22: #define EEPROM_OFFSET_FSP_CONFIG EEPROM_OFFSET_FSP_SIGNATURE + sizeof(FSP_UPD_HEADER)
Macros with complex values should be enclosed in parentheses
Ack
https://review.coreboot.org/c/coreboot/+/38303/41/src/mainboard/prodrive/her... PS41, Line 32: bool read_write_config(u8 addr, void *blob, size_t read_offset, size_t write_offset, size_t size);
line over 96 characters
Ack
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#43).
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
mainboard/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested with FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * PCIe Link Width x8 on Slot6 by changing PCIe mux * DDR Dual Channel with 1x1, 2x2 * DDR Single Channel with two DIMMs on one channel * DDR Single Channel with one DIMM on one channel * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working except the one under ETH1 * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,370 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/43
Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 43:
(31 comments)
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@7 PS43, Line 7: mainboard mb
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@9 PS43, Line 9: mainboard Maybe say "server"?
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@11 PS43, Line 11: FSP Maybe mention which FSP? I guess CoffeeLakeFspBinPkg
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@14 PS43, Line 14: * CNVi CNVi is an in-PCH Wi-Fi MAC (still uses an external PHY). It shouldn't exist on a server board
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@19 PS43, Line 19: DDR Dual Channel with 1x1, 2x2 : * DDR Single Channel with two DIMMs on one channel : * DDR Single Channel with one DIMM on one channel Maybe group this together?
* All four DDR4 slots in different configurations
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@35 PS43, Line 35: except the one under ETH1 This should be mentioned in the Not Working section.
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@39 PS43, Line 39: Intel HDA Do servers have HDA, though? Documentation does not mention audio connectors
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... File Documentation/mainboard/prodrive/hermes.md:
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 1: # Hermes To start off, it would be nice to mention what kind of board this is. Is it a regular ATX mainboard, or is it a proprietary format that comes in a rackmountable server?
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 3: The board features 5 PCIe 16x Gen3 slots, 4 ECC capable DDR4 DIMMs, 5 dedicated Ethernet Why not turn this into a list, with each element on a single line?
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 5: displayport DisplayPort
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 14: * The BIOS flash can be updated over the BMC, but the update file has a proprietary format. Did you use that method for porting coreboot, though? I would add if internal and/or external flashing works.
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 32: AST2500 Also add the vendor: Aspeed AST2500
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig:
PS43: Missing license header?
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig.name:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 1: BOARD_PRODRIVE_HERMES_BASEBOARD Shouldn't this be the other way around? The baseboard is usually for the "common" settings
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Makefile.inc:
PS43: Missing license header?
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/bootblock.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 37: HSI What does HSI mean?
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/devicetree.cb:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 34: 2400 2500?
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/dsdt.asl:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 14: // Some generic macros Please remove this comment, it was dropped from the tree
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 20: Scope (_SB) { : Device (PCI0) To avoid the inconsistent brace placement, how about using a single scope?
Device (_SB.PCI0) { #include <soc/intel/common/block/acpi/acpi/northbridge.asl> #include <soc/intel/cannonlake/acpi/southbridge.asl> }
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 28: // Chipset specific sleep states Same for this comment
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/eeprom.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 12: /* Check Code style suggests that these comments start like this:
/* * Check ...
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 12: EEPROM Which EEPROM is this code for?
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/mainboard.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 11: static void mb_configure_dp1_pwr(bool enable) Do we really need this many functions? How about putting the GPIO functions into defines?
#define HERMES_DP1_PWR GPP_K3 #define HERMES_DP2_PWR GPP_K4
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 76: if (0) { Dead code
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/memory.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 31: * Baseboard Rcomp target values. nit: this coment fits in a single line like the rest
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/ramstage.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 24: * This asterisk should not be there, as per code style
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/romstage.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 15: paras typo: para*m*s
Also, why not make this snake_case instead? fspm_params_list
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/gpio.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 27: PCH_M2_E_BT_KILL_n A server with BlueTooth? How unusual.
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 13: Double empty line
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 62: Enumartion Enumeration
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 64: // Maybe use a colon?
USB OC0: RP1
Patrick Rudolph has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 43:
(5 comments)
Thanks for the review, we'll fix those issues.
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@14 PS43, Line 14: * CNVi
CNVi is an in-PCH Wi-Fi MAC (still uses an external PHY). […]
I don't see why. The schematics prove that it supports CNVi.
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@35 PS43, Line 35: except the one under ETH1
This should be mentioned in the Not Working section.
Need to check if this is still the case.
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@39 PS43, Line 39: Intel HDA
Do servers have HDA, though? Documentation does not mention audio connectors
Well it's unclear why the PCI HDA device doesn't appear. An ALC HDA codec is onboard. Audio connectors are available through a separate riser card, not on the baseboard itself.
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/bootblock.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 37: HSI
What does HSI mean?
That's what the schematics read. I guess that should be something like "Hardware Strap ID"
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/gpio.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 27: PCH_M2_E_BT_KILL_n
A server with BlueTooth? How unusual.
It's connected to the CNVi, nothing special.
Justin van Son has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 43:
(3 comments)
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@35 PS43, Line 35: except the one under ETH1
Need to check if this is still the case.
It is working, was a hw issue I believe.
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... File Documentation/mainboard/prodrive/hermes.md:
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 1: # Hermes
To start off, it would be nice to mention what kind of board this is. […]
It's a regular ATX board.
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 32: Baseboard In the OS, the board model is read as "baseboard" (tested in windows using CPU-Z). Is this related to that? Model should read as Hermes CFL.
Stef van Os has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 43:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... File Documentation/mainboard/prodrive/hermes.md:
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 24: | CPU | Intel Coffeelake | Maybe clarify 8th and 9th gen Core and Xeon CPUs? Or use CoffeeLake + CoffeeLake R (Core + Xeon)
Stef van Os has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 43:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@18 PS43, Line 18: * PCIe Link Width x8 on Slot6 by changing PCIe mux * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F
Justin van Son has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 43:
(2 comments)
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@9 PS43, Line 9: mainboard
Maybe say "server"?
It can also function as desktop or workstation
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@18 PS43, Line 18: * PCIe Link Width x8 on Slot6 by changing PCIe mux
- CPU Intel Xeon E2288G […]
Also i5 9600K and pentium gold g5400
Christian Walter has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mainboard/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 43:
(17 comments)
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@7 PS43, Line 7: mainboard
mb
Ack
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@9 PS43, Line 9: mainboard
It can also function as desktop or workstation
Ack
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@11 PS43, Line 11: FSP
Maybe mention which FSP? I guess CoffeeLakeFspBinPkg
Ack
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@18 PS43, Line 18: * PCIe Link Width x8 on Slot6 by changing PCIe mux
Also i5 9600K and pentium gold g5400
Ack
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@19 PS43, Line 19: DDR Dual Channel with 1x1, 2x2 : * DDR Single Channel with two DIMMs on one channel : * DDR Single Channel with one DIMM on one channel
Maybe group this together? […]
Ack
https://review.coreboot.org/c/coreboot/+/38303/43//COMMIT_MSG@35 PS43, Line 35: except the one under ETH1
It is working, was a hw issue I believe.
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/devicetree.cb:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 34: 2400
2500?
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/dsdt.asl:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 14: // Some generic macros
Please remove this comment, it was dropped from the tree
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 20: Scope (_SB) { : Device (PCI0)
To avoid the inconsistent brace placement, how about using a single scope? […]
If gives me: dsdt.asl 108: Scope (_SB.PCI0) { Error 6148 - ^ Illegal open scope on external object from within DSDT
dsdt.asl 108: Scope (_SB.PCI0) { Error 6117 - ^ Existing object has invalid type for Scope operator (_SB.PCI0 [Untyped])
dsdt.asl 423: Scope (_SB.PCI0) { Error 6148 - ^ Illegal open scope on external object from within DSDT
dsdt.asl 1252: Scope (_SB.PCI0) { Error 6148 - ^ Illegal open scope on external object from within DSDT
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 28: // Chipset specific sleep states
Same for this comment
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/eeprom.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 12: /* Check
Code style suggests that these comments start like this: […]
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 12: EEPROM
Which EEPROM is this code for?
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/memory.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 31: * Baseboard Rcomp target values.
nit: this coment fits in a single line like the rest
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/ramstage.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 24: *
This asterisk should not be there, as per code style
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 13:
Double empty line
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 62: Enumartion
Enumeration
Ack
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 64: //
Maybe use a colon? […]
Ack
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#44).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Core Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,368 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/44
Justin van Son has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 45:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/45//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/45//COMMIT_MSG@24 PS45, Line 24: Core This is a pentium cpu, not a core series
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#46).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,368 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/46
Christian Walter has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 46:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/45//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/45//COMMIT_MSG@24 PS45, Line 24: Core
This is a pentium cpu, not a core series
Ack
Frans Hendriks has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 46:
Any reason for adding 'variants' for single board?
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#47).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,371 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/47
HAOUAS Elyes has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 47:
(6 comments)
Please include only what you use.
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/bootblock.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 1: /* SPDX-License-Identifier: GPL-2.0-only */ : /* This file is part of the coreboot project. */ Maybe:
/* This file is part of the coreboot project. */ /* SPDX-License-Identifier: GPL-2.0-only */
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 11: #include <console/console.h> please include only what you use
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/memory.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 1: /* SPDX-License-Identifier: GPL-2.0-only */ : /* This file is part of the coreboot project. */ Maybe:
/* This file is part of the coreboot project. */ /* SPDX-License-Identifier: GPL-2.0-only */
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 4: < include "....."
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 5: include <variant/gpio.h> maybe not used ?
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/ramstage.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 4: #include <bootstate.h> : #include <soc/ramstage.h> : #include <variant/gpio.h> : #include <device/pci_ops.h> : #include <soc/pci_devs.h> : #include <console/console.h> : #include <device/smbus_host.h> : #include <string.h> : #include <lib.h> : #include "variants/baseboard/include/eeprom.h" Please include only what you use
Please check the other files
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#48).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,371 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/48
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#49).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,371 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/49
Patrick Rudolph has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 49:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/eeprom.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 23: BIOS_DEBUG Add a prefix to indicate which signature was found valid. Some for other printks here.
Patrick Rudolph has uploaded a new patch set (#50) to the change originally created by Christian Walter. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,371 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/50
Patrick Rudolph has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 50:
(21 comments)
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... File Documentation/mainboard/prodrive/hermes.md:
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 1: # Hermes
It's a regular ATX board.
Done
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 3: The board features 5 PCIe 16x Gen3 slots, 4 ECC capable DDR4 DIMMs, 5 dedicated Ethernet
Why not turn this into a list, with each element on a single line?
Done
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 5: displayport
DisplayPort
Done
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 14: * The BIOS flash can be updated over the BMC, but the update file has a proprietary format.
Did you use that method for porting coreboot, though? I would add if internal and/or external flashi […]
Done
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 24: | CPU | Intel Coffeelake |
Maybe clarify 8th and 9th gen Core and Xeon CPUs? Or use CoffeeLake + CoffeeLake R (Core + Xeon)
Done
https://review.coreboot.org/c/coreboot/+/38303/43/Documentation/mainboard/pr... PS43, Line 32: AST2500
Also add the vendor: Aspeed AST2500
Done
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig:
PS43:
Missing license header?
No usually Kconfigs doesn't have a license header
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 32: Baseboard
In the OS, the board model is read as "baseboard" (tested in windows using CPU-Z). […]
Done
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Makefile.inc:
PS43:
Missing license header?
Done
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/bootblock.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 37: HSI
That's what the schematics read. […]
Done
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/bootblock.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 1: /* SPDX-License-Identifier: GPL-2.0-only */ : /* This file is part of the coreboot project. */
Maybe: […]
Done
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 11: #include <console/console.h>
please include only what you use
Done
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/dsdt.asl:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 20: Scope (_SB) { : Device (PCI0)
If gives me: […]
Done
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/eeprom.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 23: BIOS_DEBUG
Add a prefix to indicate which signature was found valid. […]
Done
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/mainboard.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 11: static void mb_configure_dp1_pwr(bool enable)
Do we really need this many functions? How about putting the GPIO functions into defines? […]
Added a FIXME. Will be cleaned up in the following weeks once the major bugs are fixed
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 76: if (0) {
Dead code
Added a FIXME. Will be resolved in the following weeks once the major bugs are fixed.
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/memory.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 1: /* SPDX-License-Identifier: GPL-2.0-only */ : /* This file is part of the coreboot project. */
Maybe: […]
Done
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 4: <
include "..... […]
?
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 5: include <variant/gpio.h>
maybe not used ?
Done
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/ramstage.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 4: #include <bootstate.h> : #include <soc/ramstage.h> : #include <variant/gpio.h> : #include <device/pci_ops.h> : #include <soc/pci_devs.h> : #include <console/console.h> : #include <device/smbus_host.h> : #include <string.h> : #include <lib.h> : #include "variants/baseboard/include/eeprom.h"
Please include only what you use […]
Done
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/romstage.c:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 15: paras
typo: para*m*s […]
Done
HAOUAS Elyes has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 50:
(9 comments)
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/dsdt.asl:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 1: /* SPDX-License-Identifier: GPL-2.0-only */ Please remove
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/eeprom.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 6: #include <device/smbus_host.h> maybe not used?
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 8: #include <lib.h> not used?
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/mainboard.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 3: #include <device/device.h> : #include <device/smbus_host.h> : #include <soc/intel/common/block/smbus/smbuslib.h> : #include <lib.h> : : #include "gpio.h" please include only what you use
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/ramstage.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: : #include <bootstate.h> : #include <soc/ramstage.h> : #include <variant/gpio.h> : #include <device/pci_ops.h> : #include <lib.h> : #include "variants/baseboard/include/eeprom.h" please include only what you use
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/romstage.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: : #include <soc/cnl_memcfg_init.h> : #include <soc/romstage.h> : #include <variant/variants.h> : #include <device/pci_ops.h> : #include <soc/pci_devs.h> : #include <console/console.h> : #include <device/smbus_host.h> : #include <string.h> : #include <lib.h> : #include "variants/baseboard/include/eeprom.h" please include only what you use
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/gpio.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: /* This file is part of the coreboot project. */ please remove
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: /* This file is part of the coreboot project. */ please remove
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: /* This file is part of the coreboot project. */ please remove
Christian Walter has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 50:
(9 comments)
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/dsdt.asl:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 1: /* SPDX-License-Identifier: GPL-2.0-only */
Please remove
Ack
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/eeprom.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 6: #include <device/smbus_host.h>
maybe not used?
smbus_process_call is defined there.
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 8: #include <lib.h>
not used?
Ack
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/mainboard.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 3: #include <device/device.h> : #include <device/smbus_host.h> : #include <soc/intel/common/block/smbus/smbuslib.h> : #include <lib.h> : : #include "gpio.h"
please include only what you use
Ack
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/ramstage.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: : #include <bootstate.h> : #include <soc/ramstage.h> : #include <variant/gpio.h> : #include <device/pci_ops.h> : #include <lib.h> : #include "variants/baseboard/include/eeprom.h"
please include only what you use
Ack
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/romstage.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: : #include <soc/cnl_memcfg_init.h> : #include <soc/romstage.h> : #include <variant/variants.h> : #include <device/pci_ops.h> : #include <soc/pci_devs.h> : #include <console/console.h> : #include <device/smbus_host.h> : #include <string.h> : #include <lib.h> : #include "variants/baseboard/include/eeprom.h"
please include only what you use
Ack
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/gpio.c:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: /* This file is part of the coreboot project. */
please remove
Ack
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: /* This file is part of the coreboot project. */
please remove
Ack
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h:
https://review.coreboot.org/c/coreboot/+/38303/50/src/mainboard/prodrive/her... PS50, Line 2: /* This file is part of the coreboot project. */
please remove
Ack
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#51).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,354 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/51
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#52).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,351 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/52
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#54).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,343 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/54
Hello Felix Singer, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, build bot (Jenkins), Guido Beyer @ Prodrive Technologies, Justin van Son, Patrick Georgi, Martin Roth, Patrick Rudolph, Patrick Rudolph, Stef van Os,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#56).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested withi CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,360 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/56
HAOUAS Elyes has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 56: Code-Review+1
Christian Walter has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 56:
(2 comments)
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig.name:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 1: BOARD_PRODRIVE_HERMES_BASEBOARD
Shouldn't this be the other way around? The baseboard is usually for the "common" settings
What do you mean here? Switching this to PRODRIVE_BASEBOARD_HERMES? As we only ahve one variant yet - not sure how to handle this.
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/memory.c:
https://review.coreboot.org/c/coreboot/+/38303/47/src/mainboard/prodrive/her... PS47, Line 4: <
?
Resolved for now?
Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 56:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig.name:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 1: BOARD_PRODRIVE_HERMES_BASEBOARD
What do you mean here? Switching this to PRODRIVE_BASEBOARD_HERMES? As we only ahve one variant yet […]
This, plus the corresponding changes in Kconfig:
config BOARD_PRODRIVE_HERMES bool "Hermes" select BOARD_PRODRIVE_HERMES_BASEBOARD
Paul Menzel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 56:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/56//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/56//COMMIT_MSG@11 PS56, Line 11: withi with
Christian Walter has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 56:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/56//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/38303/56//COMMIT_MSG@11 PS56, Line 11: withi
with
Ack
Hello Felix Singer, build bot (Jenkins), Patrick Georgi, Patrick Rudolph, Patrick Rudolph, Stef van Os, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, Guido Beyer @ Prodrive Technologies, Justin van Son, Martin Roth, HAOUAS Elyes,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#57).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested with CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,360 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/57
Hello Felix Singer, build bot (Jenkins), Patrick Georgi, Patrick Rudolph, Patrick Rudolph, Stef van Os, Philipp Deppenwiese, wouter.eckhardt@prodrive-technologies.com, Guido Beyer @ Prodrive Technologies, Justin van Son, Martin Roth, HAOUAS Elyes,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/38303
to look at the new patch set (#58).
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested with CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com Signed-off-by: Christian Walter christian.walter@9elements.com --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,360 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/38303/58
Christian Walter has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 57:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig.name:
https://review.coreboot.org/c/coreboot/+/38303/43/src/mainboard/prodrive/her... PS43, Line 1: BOARD_PRODRIVE_HERMES_BASEBOARD
This, plus the corresponding changes in Kconfig: […]
Ack
Patrick Rudolph has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 58: Code-Review+2
Philipp Deppenwiese has submitted this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
mb/prodrive/hermes: Add new mainboard port
This patch adds support for the Prodrive Hermes mainboard.
Tested with CoffeeLakeFspBinPkg FSP 7.0.68.41.
Untested: * CNVi * Intel Graphics
Tested: * CPU Intel Xeon E2288G * CPU Intel Core i3-9100F * CPU Intel Core i7 9700KF * CPU Intel Core i7 9700E * CPU Intel Core i7 9700F * CPU Intel Core i5 9600K * CPU Intel Pentium Gold G5400 * PCIe Link Width x8 on Slot6 by changing PCIe mux * All four DDR4 slots in different configurations * USB2.0 HDR1 * USB2.0 HDR2 * USB3.0 HDR * Slot1 * Slot2 * Slot3 * Slot4 * Slot6 * M2.M NVMEe * Ethernet PHYs 0-4 * Aspeed BMC PCIe * Aspeed BMC USB * Aspeed Graphics init * USB3 backplane all working * I801 SMBUS
Not Working: * Intel HDA
Change-Id: Id7d051d3fa6823618691d5572087c9ae589c2862 Signed-off-by: Christian Walter christian.walter@9elements.com Signed-off-by: Patrick Rudolph patrick.rudolph@9elements.com Signed-off-by: Christian Walter christian.walter@9elements.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/38303 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Patrick Rudolph siro@das-labor.org --- M Documentation/mainboard/index.md A Documentation/mainboard/prodrive/hermes.md A src/mainboard/prodrive/Kconfig A src/mainboard/prodrive/Kconfig.name A src/mainboard/prodrive/hermes/Kconfig A src/mainboard/prodrive/hermes/Kconfig.name A src/mainboard/prodrive/hermes/Makefile.inc A src/mainboard/prodrive/hermes/board_info.txt A src/mainboard/prodrive/hermes/bootblock.c A src/mainboard/prodrive/hermes/devicetree.cb A src/mainboard/prodrive/hermes/dsdt.asl A src/mainboard/prodrive/hermes/eeprom.c A src/mainboard/prodrive/hermes/hda_verb.c A src/mainboard/prodrive/hermes/mainboard.c A src/mainboard/prodrive/hermes/memory.c A src/mainboard/prodrive/hermes/ramstage.c A src/mainboard/prodrive/hermes/romstage.c A src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc A src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt A src/mainboard/prodrive/hermes/variants/baseboard/data.vbt A src/mainboard/prodrive/hermes/variants/baseboard/gpio.c A src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h A src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h A src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb 25 files changed, 1,360 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Patrick Rudolph: Looks good to me, approved
diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md index 584deb4..a31148c 100644 --- a/Documentation/mainboard/index.md +++ b/Documentation/mainboard/index.md @@ -130,6 +130,10 @@
- [PQ7-M107](portwell/pq7-m107.md)
+## Prodrive + +- [Hermes](prodrive/hermes.md) + ## Protectli
- [FW2B / FW4B](protectli/fw2b_fw4b.md) diff --git a/Documentation/mainboard/prodrive/hermes.md b/Documentation/mainboard/prodrive/hermes.md new file mode 100644 index 0000000..6a12c3a --- /dev/null +++ b/Documentation/mainboard/prodrive/hermes.md @@ -0,0 +1,54 @@ +# Hermes + +Hermes is a regular ATX board designed for workstation PCs. + +The board features: +* 5 PCIe 16x Gen3 slots +* 4 ECC capable DDR4 DIMMs +* 5 dedicated Ethernet ports +* 1 BMC Ethernet port +* VGA +* COM port +* 2 COM port headers +* 4 SATA ports, +* NVMe M2 slot +* CNVi M2 slot +* 3 optional DisplayPort outputs +* optional TPM2 + +## Required proprietary blobs + +- [Intel FSP2.0] +- Intel SPS + +## Flashing coreboot + +* The BIOS flash can be updated over the BMC, but the update file has a proprietary format +* For development a dediprog compatible pinheader is present which allows to use an EM100 + +## Known issues + +- MRC caching does not work on cold boot with Intel SPS (see [Intel FSP2.0]) + +## Technology + +```eval_rst ++------------------+--------------------------------------------------+ +| CPU | CoffeeLake + CoffeeLake R (Core + Xeon) | ++------------------+--------------------------------------------------+ +| PCH | Intel C246 | ++------------------+--------------------------------------------------+ +| Coprocessor | Intel SPS (server version of the ME) | ++------------------+--------------------------------------------------+ +| Super I/O | none | ++------------------+--------------------------------------------------+ +| BMC | Aspeed AST2500 | ++------------------+--------------------------------------------------+ +``` + +## Extra links + +[flashrom]: https://flashrom.org/Flashrom +[flashing tutorial]: ../../../../flash_tutorial/ext_power.md +[Intel FSP2.0]: ../../../../soc/intel/fsp/index.md +[AST2500]: https://www.aspeedtech.com/products.php?fPath=20&rId=440 diff --git a/src/mainboard/prodrive/Kconfig b/src/mainboard/prodrive/Kconfig new file mode 100644 index 0000000..0847425 --- /dev/null +++ b/src/mainboard/prodrive/Kconfig @@ -0,0 +1,16 @@ +if VENDOR_PRODRIVE + +choice + prompt "Mainboard model" + +source "src/mainboard/prodrive/*/Kconfig.name" + +endchoice + +source "src/mainboard/prodrive/*/Kconfig" + +config MAINBOARD_VENDOR + string + default "Prodrive" + +endif # VENDOR_PRODRIVE diff --git a/src/mainboard/prodrive/Kconfig.name b/src/mainboard/prodrive/Kconfig.name new file mode 100644 index 0000000..b516ef1 --- /dev/null +++ b/src/mainboard/prodrive/Kconfig.name @@ -0,0 +1,2 @@ +config VENDOR_PRODRIVE + bool "Prodrive" diff --git a/src/mainboard/prodrive/hermes/Kconfig b/src/mainboard/prodrive/hermes/Kconfig new file mode 100644 index 0000000..83178df --- /dev/null +++ b/src/mainboard/prodrive/hermes/Kconfig @@ -0,0 +1,64 @@ +config BOARD_PRODRIVE_HERMES_BASEBOARD + def_bool n + select SOC_INTEL_COFFEELAKE + select BOARD_ROMSIZE_KB_32768 + select GENERIC_SPD_BIN + select HAVE_ACPI_TABLES + select SOC_INTEL_CANNONLAKE_PCH_H + select SUPERIO_ASPEED_COMMON_PRE_RAM + select SUPERIO_ASPEED_AST2400 + select DRIVERS_ASPEED_AST_COMMON + select DRIVERS_ASPEED_AST2050 + select SOC_INTEL_COMMON_BLOCK_GPIO_LEGACY_MACROS + select INTEL_LPSS_UART_FOR_CONSOLE + select MAINBOARD_HAS_TPM2 + select MAINBOARD_HAS_LPC_TPM + select INTEL_GMA_HAVE_VBT + select SOC_INTEL_COMMON_BLOCK_HDA_VERB + select AZALIA_PLUGIN_SUPPORT + select ONBOARD_VGA_IS_PRIMARY + select DISABLE_ACPI_HIBERNATE + +if BOARD_PRODRIVE_HERMES_BASEBOARD + +config MAINBOARD_FAMILY + string + default "PRODRIVE_HERMES_SERIES" + +config MAINBOARD_PART_NUMBER + string + default "Hermes CFL" + +config MAINBOARD_DIR + string + default "prodrive/hermes" + +config VARIANT_DIR + string + default "baseboard" if BOARD_PRODRIVE_HERMES_BASEBOARD + +config MAX_CPUS + int + default 16 + +config OVERRIDE_DEVICETREE + string + default "variants/$(CONFIG_VARIANT_DIR)/overridetree.cb" + +config DIMM_SPD_SIZE + int + default 512 + +config CONSOLE_POST + bool + default y + +config POST_IO + bool + default n + +config CBFS_SIZE + hex + default 0x900000 + +endif # BOARD_PRODRIVE_HERMES_BASEBOARD diff --git a/src/mainboard/prodrive/hermes/Kconfig.name b/src/mainboard/prodrive/hermes/Kconfig.name new file mode 100644 index 0000000..10dd9ba --- /dev/null +++ b/src/mainboard/prodrive/hermes/Kconfig.name @@ -0,0 +1,3 @@ +config BOARD_PRODRIVE_HERMES + bool "Hermes" + select BOARD_PRODRIVE_HERMES_BASEBOARD diff --git a/src/mainboard/prodrive/hermes/Makefile.inc b/src/mainboard/prodrive/hermes/Makefile.inc new file mode 100644 index 0000000..2dba6da --- /dev/null +++ b/src/mainboard/prodrive/hermes/Makefile.inc @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +subdirs-y += variants/$(VARIANT_DIR) +CPPFLAGS_common += -I$(src)/mainboard/prodrive/hermes/variants/$(VARIANT_DIR)/include + +bootblock-y += bootblock.c +romstage-y += memory.c +romstage-y += eeprom.c + +ramstage-y += ramstage.c +ramstage-y += mainboard.c +ramstage-y += eeprom.c diff --git a/src/mainboard/prodrive/hermes/board_info.txt b/src/mainboard/prodrive/hermes/board_info.txt new file mode 100644 index 0000000..72bcfa9 --- /dev/null +++ b/src/mainboard/prodrive/hermes/board_info.txt @@ -0,0 +1,7 @@ +Category: server +Vendor name: Prodrive +ROM package: SOIC-8 +ROM protocol: SPI +ROM socketed: n +Flashrom support: y +Release year: 2020 diff --git a/src/mainboard/prodrive/hermes/bootblock.c b/src/mainboard/prodrive/hermes/bootblock.c new file mode 100644 index 0000000..1426a55 --- /dev/null +++ b/src/mainboard/prodrive/hermes/bootblock.c @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <bootblock_common.h> +#include <console/console.h> +#include <soc/gpio.h> +#include <variant/gpio.h> +#include "gpio.h" + +static void early_config_gpio(void) +{ + /* This is a hack for FSP because it does things in MemoryInit() + * which it shouldn't do. We have to prepare certain gpios here + * because of the brokenness in FSP. */ + size_t num = 0; + const struct pad_config *early_gpio_table = get_early_gpio_table(&num); + + gpio_configure_pads(early_gpio_table, num); +} + +void bootblock_mainboard_early_init(void) +{ + early_config_gpio(); +} + +void bootblock_mainboard_init(void) +{ + u8 bmc_hsi = (gpio_get(GPP_K13) << 3) | + (gpio_get(GPP_K12) << 2) | + (gpio_get(GPP_K14) << 1) | + (gpio_get(GPP_K16) << 0); + + printk(BIOS_INFO, "BMC HSI 0x%x\n", bmc_hsi); +} diff --git a/src/mainboard/prodrive/hermes/devicetree.cb b/src/mainboard/prodrive/hermes/devicetree.cb new file mode 100644 index 0000000..45bd422 --- /dev/null +++ b/src/mainboard/prodrive/hermes/devicetree.cb @@ -0,0 +1,48 @@ +chip soc/intel/cannonlake + register "common_soc_config.chipset_lockdown" = CHIPSET_LOCKDOWN_COREBOOT + + device cpu_cluster 0 on + device lapic 0 on end + end + + device domain 0 on + device pci 00.0 on end # Host Bridge + device pci 01.0 on # PEG x8 / Slot 2 + smbios_slot_desc "SlotTypePciExpressGen3X16" "SlotLengthOther" "SLOT2" "SlotDataBusWidth8X" + end + device pci 01.1 on # PEG x4 or x8 / Slot 6 + smbios_slot_desc "SlotTypePciExpressGen3X16" "SlotLengthOther" "SLOT6" "SlotDataBusWidth4X" + end + device pci 01.2 on # PEG x4 or disabled / Slot 4 + smbios_slot_desc "SlotTypePciExpressGen3X16" "SlotLengthOther" "SLOT4" "SlotDataBusWidth4X" + end + device pci 04.0 on end # SA Thermal device + device pci 04.0 on end # Intel Xeon E3 + device pci 08.0 on end # Gaussian Mixture + device pci 12.0 on end # Thermal Subsystem + device pci 14.0 on end # USB xHCI + device pci 14.1 on end # USB xDCI (OTG) + device pci 14.2 on end # RAM controller + device pci 14.5 off end # SDCard + + device pci 16.0 on end # Management Engine Interface + device pci 16.1 on end # Management Engine Interface + device pci 16.4 on end # Management Engine Interface + device pci 17.0 on end # SATA + device pci 1d.6 on + device pci 00.0 on # Aspeed PCI Bridge + device pci 00.0 on end # Aspeed 2500 VGA + end + end # PCIe + device pci 1f.0 on # LPC Interface + chip drivers/pc80/tpm + device pnp 0c31.0 on end + end + # AST2500, but not enabled to decode LPC cycles + end + device pci 1f.3 on end + device pci 1f.4 on end # SMBus + device pci 1f.5 on end # PCH SPI + end + +end diff --git a/src/mainboard/prodrive/hermes/dsdt.asl b/src/mainboard/prodrive/hermes/dsdt.asl new file mode 100644 index 0000000..4d8d170 --- /dev/null +++ b/src/mainboard/prodrive/hermes/dsdt.asl @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <acpi/acpi.h> +DefinitionBlock( + "dsdt.aml", + "DSDT", + 0x02, // DSDT revision: ACPI v2.0 and up + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20110725 // OEM revision +) +{ + #include <soc/intel/cannonlake/acpi/platform.asl> + + // global NVS and variables + #include <soc/intel/common/block/acpi/acpi/globalnvs.asl> + + Scope (_SB) { + Device (PCI0) { + #include <soc/intel/common/block/acpi/acpi/northbridge.asl> + #include <soc/intel/cannonlake/acpi/southbridge.asl> + } + } + + #include <southbridge/intel/common/acpi/sleepstates.asl> + +} diff --git a/src/mainboard/prodrive/hermes/eeprom.c b/src/mainboard/prodrive/hermes/eeprom.c new file mode 100644 index 0000000..bd5db5c --- /dev/null +++ b/src/mainboard/prodrive/hermes/eeprom.c @@ -0,0 +1,67 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <device/pci_ops.h> +#include <console/console.h> +#include <device/smbus_host.h> +#include "variants/baseboard/include/eeprom.h" + +/* + * Check Signature in EEPROM (M24C32-FMN6TP) + * If signature is there we assume that that the content is valid + */ +int check_signature(u8 addr) +{ + u8 blob[8] = {0}; + + if (!read_write_config(addr, blob, EEPROM_OFFSET_FSP_SIGNATURE, 0, ARRAY_SIZE(blob))) { + // Check Signature + if (*(uint64_t *)blob == FSP_UPD_SIGNATURE) { + printk(BIOS_DEBUG, "CFG EEPROM: Signature valid.\n"); + return 1; + } + printk(BIOS_DEBUG, "CFG EEPROM: Signature invalid - skipping option write.\n"); + return 0; + } + return 0; +} + +// Read data from offset and write it to offset in UPD +bool read_write_config(u8 addr, void *blob, size_t read_offset, size_t write_offset, + size_t size) +{ + int ret = 0; + +#if ENV_ROMSTAGE + pci_devfn_t dev = PCI_DEV(0, PCH_DEV_SLOT_LPC, 4); +#else + const struct device *dev = pcidev_on_root(PCH_DEV_SLOT_LPC, 4); +#endif + + u32 smb_ctrl_reg = pci_read_config32(dev, HOSTC); + pci_write_config32(dev, HOSTC, smb_ctrl_reg | HOSTC_I2C_EN); + + printk(BIOS_SPEW, "%s\tOffset: %04zx\tSize: %02zx\n", __func__, + read_offset, size); + + /* We can always read two bytes at a time */ + for (size_t i = 0; i < size; i = i + 2) { + u8 tmp[2] = {0}; + + ret = do_smbus_process_call(SMBUS_IO_BASE, addr, 0, + swab16(read_offset + i), (uint16_t *)&tmp[0]); + if (ret < 0) + break; + + // Write to UPD + uint8_t *writePointer = (uint8_t *)blob + write_offset + i; + if (size > 1 && (size % 2 == 0)) + memcpy(writePointer, tmp, 2); + else + *writePointer = tmp[0]; + } + + /* Restore I2C_EN bit */ + pci_write_config32(dev, HOSTC, smb_ctrl_reg); + + return ret; +} diff --git a/src/mainboard/prodrive/hermes/hda_verb.c b/src/mainboard/prodrive/hermes/hda_verb.c new file mode 100644 index 0000000..59b8aa6 --- /dev/null +++ b/src/mainboard/prodrive/hermes/hda_verb.c @@ -0,0 +1,170 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <device/azalia_device.h> + +const u32 cim_verb_data[] = { + 0x10ec0888, /* Codec Vendor / Device ID: Realtek ALC888 */ + 0x10ec0888, /* Subsystem ID */ + 10, /* Number of 4 dword sets */ + AZALIA_SUBVENDOR(0, 0x10ec0888), + + /* Port A: Front, Audio Header #1 */ + AZALIA_PIN_CFG(0, 0x14, AZALIA_PIN_DESC( + INTEGRATED, + INTERNAL, + SPECIAL7, + LINE_OUT, + OTHER_ANALOG, + COLOR_UNKNOWN, + false, + 0xf, + 0 + )), + /* Port B: Mic1, Line input (pink) */ + AZALIA_PIN_CFG(0, 0x15, AZALIA_PIN_DESC( + JACK, + EXTERNAL_PRIMARY_CHASSIS, + REAR, //FIXME + LINE_IN, + STEREO_MONO_1_8, + PINK, + false, + 0xf, + 0 + )), + /* Port C: Line, Speaker (only L) */ + AZALIA_PIN_CFG(0, 0x16, AZALIA_PIN_DESC( + INTEGRATED, + INTERNAL, + NA, + SPEAKER, + TYPE_UNKNOWN, + COLOR_UNKNOWN, + false, + 0xf, + 0 + )), + /* Port D: Sidesurr, Line out (green) */ + AZALIA_PIN_CFG(0, 0x17, AZALIA_PIN_DESC( + //JACK, + LINE_OUT, + EXTERNAL_PRIMARY_CHASSIS, + REAR, //FIXME + LINE_OUT, + STEREO_MONO_1_8, + GREEN, + false, + 0xf, + 0 + )), + /* Port E: Line2, Line input (blue) */ + AZALIA_PIN_CFG(0, 0x18, AZALIA_PIN_DESC( + JACK, + EXTERNAL_PRIMARY_CHASSIS, + REAR, //FIXME + LINE_IN, + STEREO_MONO_1_8, + BLUE, + false, + 0xf, + 0 + )), + /* Port F: Mic2, Audio Header #2 */ + AZALIA_PIN_CFG(0, 0x19, AZALIA_PIN_DESC( + INTEGRATED, + INTERNAL, + SPECIAL7, + LINE_IN, + OTHER_ANALOG, + COLOR_UNKNOWN, + false, + 0xf, + 0 + )), + /* Port G: Not connected */ + AZALIA_PIN_CFG(0, 0x1a, AZALIA_PIN_DESC( + NC, + LOCATION_OTHER, + NA, + DEVICE_OTHER, + TYPE_OTHER, + COLOR_OTHER, + true, + 0, + 0 + )), + /* Port H: Not connected */ + AZALIA_PIN_CFG(0, 0x1b, AZALIA_PIN_DESC( + NC, + LOCATION_OTHER, + NA, + DEVICE_OTHER, + TYPE_OTHER, + COLOR_OTHER, + true, + 0, + 0 + )), + + /* S/PDIF-OUT */ + AZALIA_PIN_CFG(0, 0x1e, AZALIA_PIN_DESC( + INTEGRATED, + INTERNAL, + NA, + SPDIF_OUT, + OTHER_DIGITAL, + COLOR_UNKNOWN, + true, + 0xf, + 0 + )), + /* S/PDIF-IN */ + AZALIA_PIN_CFG(0, 0x1f, AZALIA_PIN_DESC( + INTEGRATED, + INTERNAL, + NA, + SPDIF_IN, + OTHER_DIGITAL, + COLOR_UNKNOWN, + true, + 0xf, + 0 + )), + + //FIXME COdec ID + /* + * VerbTable: CFL Display Audio Codec + * Revision ID = 0xFF + * Codec Vendor: 0x8086280B + */ + + 0x8086280B, + 0xFFFFFFFF, + 5, /* Number of 4 dword sets */ + + /* + * Display Audio Verb Table + * For GEN9, the Vendor Node ID is 08h + * Port to be exposed to the inbox driver in the vanilla mode + * PORT C - BIT[7:6] = 01b + */ + 0x00878140, + 0x00878140, + 0x00878140, + 0x00878140, + /* Pin Widget 5 - PORT B - Configuration Default: 0x18560010 */ + AZALIA_PIN_CFG(2, 0x05, 0x18560010), + /* Pin Widget 6 - PORT C - Configuration Default: 0x18560020 */ + AZALIA_PIN_CFG(2, 0x06, 0x18560020), + /* Pin Widget 7 - PORT D - Configuration Default: 0x18560030 */ + AZALIA_PIN_CFG(2, 0x07, 0x18560030), + /* Disable the third converter and third Pin (NID 08h) */ + 0x00878140, + 0x00878140, + 0x00878140, + 0x00878140, +}; + +const u32 pc_beep_verbs[0] = {}; + +AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/prodrive/hermes/mainboard.c b/src/mainboard/prodrive/hermes/mainboard.c new file mode 100644 index 0000000..b24dd56 --- /dev/null +++ b/src/mainboard/prodrive/hermes/mainboard.c @@ -0,0 +1,89 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <device/device.h> +#include "gpio.h" + +/* FIXME: Example code below */ + +static void mb_configure_dp1_pwr(bool enable) +{ + gpio_output(GPP_K3, enable); +} + +static void mb_configure_dp2_pwr(bool enable) +{ + gpio_output(GPP_K4, enable); +} + +static void mb_configure_dp3_pwr(bool enable) +{ + gpio_output(GPP_K5, enable); +} + +static void mb_pcie_reset_pch_slots(bool enable) +{ + gpio_output(GPP_K0, enable); +} + +static void mb_pcie_reset_cpu_slots(bool enable) +{ + gpio_output(GPP_K1, enable); +} + +static void mb_pcie_reset_cnvi_slot(bool enable) +{ + gpio_output(GPP_K2, enable); +} + +static void mb_hda_amp_enable(bool enable) +{ + gpio_output(GPP_C19, enable); +} + +static void mb_usb31_rp1_pwr_enable(bool enable) +{ + gpio_output(GPP_G0, enable); +} + +static void mb_usb31_rp2_pwr_enable(bool enable) +{ + gpio_output(GPP_G1, enable); +} + +static void mb_usb31_fp_pwr_enable(bool enable) +{ + gpio_output(GPP_G2, enable); +} + +static void mb_usb2_fp1_pwr_enable(bool enable) +{ + gpio_output(GPP_G3, enable); +} + +static void mb_usb2_fp2_pwr_enable(bool enable) +{ + gpio_output(GPP_G4, enable); +} + +static void mainboard_enable(struct device *dev) +{ + /* FIXME: Do runtime configuration once the board is production ready */ + mb_configure_dp1_pwr(1); + mb_configure_dp2_pwr(1); + mb_configure_dp3_pwr(1); + if (0) { + mb_pcie_reset_pch_slots(1); + mb_pcie_reset_cpu_slots(0); + mb_pcie_reset_cnvi_slot(0); + } + mb_hda_amp_enable(1); + mb_usb31_rp1_pwr_enable(1); + mb_usb31_rp2_pwr_enable(1); + mb_usb31_fp_pwr_enable(1); + mb_usb2_fp1_pwr_enable(1); + mb_usb2_fp2_pwr_enable(1); +} + +struct chip_operations mainboard_ops = { + .enable_dev = mainboard_enable, +}; diff --git a/src/mainboard/prodrive/hermes/memory.c b/src/mainboard/prodrive/hermes/memory.c new file mode 100644 index 0000000..0ff21c4 --- /dev/null +++ b/src/mainboard/prodrive/hermes/memory.c @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <variant/variants.h> +#include <soc/cnl_memcfg_init.h> + +static const struct cnl_mb_cfg baseboard_memcfg_cfg = { + /* Access memory info through SMBUS. */ + .spd[0] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xA0} + }, + .spd[1] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xA2} + }, + .spd[2] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xA4} + }, + .spd[3] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xA6} + }, + + /* Baseboard uses 121, 81 and 100 rcomp resistors */ + .rcomp_resistor = {121, 81, 100}, + + /* Baseboard Rcomp target values. */ + .rcomp_targets = {100, 40, 20, 20, 26}, + + /* Baseboard is an interleaved design */ + .dq_pins_interleaved = 1, + + /* Baseboard is using config 2 for vref_ca */ + .vref_ca_config = 2, + + /* Disable Early Command Training */ + .ect = 0, +}; + +const struct cnl_mb_cfg *variant_memcfg_config(void) +{ + return &baseboard_memcfg_cfg; +} diff --git a/src/mainboard/prodrive/hermes/ramstage.c b/src/mainboard/prodrive/hermes/ramstage.c new file mode 100644 index 0000000..18fc915 --- /dev/null +++ b/src/mainboard/prodrive/hermes/ramstage.c @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <soc/ramstage.h> +#include <variant/gpio.h> +#include "variants/baseboard/include/eeprom.h" + +static fsp_params parmas_list[] = { + // FIXME: Fill with additional options +}; + +void mainboard_silicon_init_params(FSP_S_CONFIG *params) +{ + size_t num = 0; + const struct pad_config *gpio_table = get_gpio_table(&num); + + /* Configure pads prior to SiliconInit() in case there's any + dependencies during hardware initialization. */ + gpio_configure_pads(gpio_table, num); + + params->SataLedEnable = 1; + + // Overwrite params + if (!check_signature(I2C_ADDR_EEPROM)) + return; + + for (u8 i = 0; i <= ARRAY_SIZE(parmas_list); i++) { + if (ARRAY_SIZE(parmas_list) == 0) + break; + read_write_config(I2C_ADDR_EEPROM, params, EEPROM_OFFSET_FSP_CONFIG + + parmas_list[i].offset, + EEPROM_OFFSET_FSP_CONFIG + parmas_list[i].offset, + parmas_list[i].size); + } +} diff --git a/src/mainboard/prodrive/hermes/romstage.c b/src/mainboard/prodrive/hermes/romstage.c new file mode 100644 index 0000000..a25c43a --- /dev/null +++ b/src/mainboard/prodrive/hermes/romstage.c @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <soc/cnl_memcfg_init.h> +#include <soc/romstage.h> +#include <variant/variants.h> +#include "variants/baseboard/include/eeprom.h" + +static fsp_params parmas_list[] = { + GET_VALUE(RMT), + GET_VALUE(HyperThreading), + GET_VALUE(BootFrequency) +}; + +void mainboard_memory_init_params(FSPM_UPD *memupd) +{ + memupd->FspmConfig.UserBd = 7; + memupd->FspmTestConfig.SmbusSpdWriteDisable = 0; + memupd->FspmConfig.IedSize = 0x400000; + cannonlake_memcfg_init(&memupd->FspmConfig, variant_memcfg_config()); + + // Overwrite memupd + if (!check_signature(I2C_ADDR_EEPROM)) + return; + + for (size_t i = 0; i < ARRAY_SIZE(parmas_list); i++) { + read_write_config(I2C_ADDR_EEPROM, memupd, EEPROM_OFFSET_FSP_CONFIG + + parmas_list[i].offset, + EEPROM_OFFSET_FSP_CONFIG + parmas_list[i].offset, + parmas_list[i].size); + } +} diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc b/src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc new file mode 100644 index 0000000..cc5cdc1 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/Makefile.inc @@ -0,0 +1,4 @@ +## SPDX-License-Identifier: GPL-2.0-or-later + +bootblock-y += gpio.c +ramstage-y += gpio.c diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt b/src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt new file mode 100644 index 0000000..80dba95 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/board_info.txt @@ -0,0 +1,7 @@ +Category: server +Vendor name: Prodrive +Board name: Hermes +Board URL: TBD +ROM protocol: SPI +ROM socketed: n +Flashrom support: y diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/data.vbt b/src/mainboard/prodrive/hermes/variants/baseboard/data.vbt new file mode 100644 index 0000000..64bc4fe --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/data.vbt Binary files differ diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c b/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c new file mode 100644 index 0000000..9c01d24 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/gpio.c @@ -0,0 +1,402 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include "include/variant/gpio.h" +#include <commonlib/helpers.h> + +/* Pad configuration in ramstage */ +static const struct pad_config gpio_table[] = { + /* ------- GPIO Group GPP_A ------- */ + + /* ISH */ + PAD_NC(GPP_A17, NONE), + PAD_NC(GPP_A18, NONE), + PAD_NC(GPP_A19, NONE), + PAD_NC(GPP_A20, NONE), + PAD_NC(GPP_A21, NONE), + PAD_NC(GPP_A22, NONE), + PAD_NC(GPP_A23, NONE), + + /* ------- GPIO Group GPP_B ------- */ + PAD_NC(GPP_B0, NONE), + PAD_NC(GPP_B1, NONE), + + /* GPP_B2 - M2_E_BT_UART_WAKE_n */ + PAD_CFG_GPI_INT(GPP_B2, NONE, DEEP, OFF), + + /* GPP_B3 - PCH_M2_E_BT_KILL_n : handled at runtime */ + /* GPP_B4 - PCH_M2_E_WLAN_KILL_n : handled at runtime */ + + /* SRCCLKREQ0# - SRCCLKREQ5# */ + PAD_NC(GPP_B5, NONE), + PAD_NC(GPP_B6, NONE), + PAD_NC(GPP_B7, NONE), + PAD_NC(GPP_B8, NONE), + PAD_CFG_NF(GPP_B9, NONE, DEEP, NF1), /* M2_M_CLK_REQ_n */ + PAD_CFG_NF(GPP_B10, NONE, DEEP, NF1), /* M2_E_CLK_REQ_n */ + + PAD_NC(GPP_B11, NONE), + + /* GPP_B12 - SLP_S0_n */ + PAD_CFG_NF(GPP_B12, NONE, DEEP, NF1), + /* GPP_B13 - PLTRST_n */ + PAD_CFG_NF(GPP_B13, NONE, DEEP, NF1), + + /* GPP_B14 - SPKR */ + PAD_CFG_NF(GPP_B14, NONE, DEEP, NF1), + + /* GSPI0 */ + PAD_CFG_NF(GPP_B15, NONE, DEEP, NF1), /* SPI0_CS */ + PAD_CFG_NF(GPP_B16, NONE, DEEP, NF1), /* SPI0_CLK */ + PAD_CFG_NF(GPP_B17, NONE, DEEP, NF1), /* SPI0_MISO */ + PAD_CFG_NF(GPP_B18, NONE, DEEP, NF1), /* SPI0_MOSI */ + + /* GSPI1 */ + PAD_NC(GPP_B19, NONE), + PAD_NC(GPP_B20, NONE), + PAD_NC(GPP_B21, NONE), + PAD_NC(GPP_B22, NONE), + + PAD_CFG_NF(GPP_B23, NONE, DEEP, NF1), /* PCH_SML1_ALERT_n */ + + /* ------- GPIO Group GPP_C ------- */ + /* SML0 - Used by CSME */ + PAD_CFG_NF(GPP_C3, NONE, DEEP, NF1), /* PCH_SML0_CLK */ + PAD_CFG_NF(GPP_C4, NONE, DEEP, NF1), /* PCH_SML0_DATA */ + PAD_CFG_NF(GPP_C5, NONE, DEEP, NF1), /* PCH_SML0_ALERT_N */ + + /* SML1 - Used by CSME */ + PAD_CFG_NF(GPP_C6, NONE, DEEP, NF1), /* PCH_SML1_CLK */ + PAD_CFG_NF(GPP_C7, NONE, DEEP, NF1), /* PCH_SML1_DATA */ + + /* UART0 */ + PAD_CFG_NF(GPP_C8, NONE, DEEP, NF1), /* UART0_RXD */ + PAD_CFG_NF(GPP_C9, NONE, DEEP, NF1), /* UART0_TXD */ + PAD_CFG_NF(GPP_C10, NONE, DEEP, NF1), /* UART0_RTS_N */ + PAD_CFG_NF(GPP_C11, NONE, DEEP, NF1), /* UART0_CTS_N */ + + /* UART1 */ + PAD_CFG_NF(GPP_C12, NONE, DEEP, NF1), /* UART1_RXD */ + PAD_CFG_NF(GPP_C13, NONE, DEEP, NF1), /* UART1_TXD */ + PAD_CFG_NF(GPP_C14, NONE, DEEP, NF1), /* UART1_RTS_N */ + PAD_CFG_NF(GPP_C15, NONE, DEEP, NF1), /* UART1_CTS_N */ + + PAD_NC(GPP_C17, NONE), + + PAD_CFG_GPI_INT(GPP_C18, NONE, PLTRST, OFF), /* AUD_FPA_PRSNT_n */ + /* GPP_C19 - AUD_AMP_EN : configured at runtime */ + + /* UART2 */ + PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), /* UART2_RXD */ + PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), /* UART2_TXD */ + PAD_CFG_NF(GPP_C22, NONE, DEEP, NF1), /* UART2_RTS_N */ + PAD_CFG_NF(GPP_C23, NONE, DEEP, NF1), /* UART2_CTS_N */ + + /* ------- GPIO Group GPP_D ------- */ + /* SPI1 */ + PAD_NC(GPP_D0, NONE), + PAD_NC(GPP_D1, NONE), + PAD_NC(GPP_D2, NONE), + PAD_NC(GPP_D3, NONE), + + PAD_NC(GPP_D4, NONE), + + /* I2S2 */ + PAD_CFG_NF(GPP_D5, NONE, DEEP, NF1), /* M2_E_BT_PCMFRM_CRF_RST_n */ + PAD_CFG_NF(GPP_D6, NONE, DEEP, NF1), /* M2_E_BT_PCMOUT_CLKREQ0 */ + PAD_CFG_NF(GPP_D7, NONE, DEEP, NF1), /* M2_E_BT_PCMIN */ + PAD_CFG_NF(GPP_D8, NONE, DEEP, NF1), /* M2_E_BT_PCMCLK */ + + /* ISH SPI */ + PAD_NC(GPP_D9, NONE), + PAD_NC(GPP_D10, NONE), + PAD_NC(GPP_D11, NONE), + PAD_NC(GPP_D12, NONE), + + /* ISH UART */ + PAD_NC(GPP_D13, NONE), + PAD_NC(GPP_D14, NONE), + PAD_NC(GPP_D15, NONE), + PAD_NC(GPP_D16, NONE), + + /* DMIC */ + PAD_NC(GPP_D17, NONE), + PAD_NC(GPP_D18, NONE), + PAD_NC(GPP_D19, NONE), + PAD_NC(GPP_D20, NONE), + + PAD_NC(GPP_D21, NONE), + PAD_NC(GPP_D22, NONE), + PAD_NC(GPP_D23, NONE), + + /* ------- GPIO Group GPP_G ------- */ + /* GPP_G0 - USB31_RP1_PWR_EN : configured at runtime */ + /* GPP_G1 - USB31_RP2_PWR_EN : configured at runtime */ + /* GPP_G2 - USB31_FP_PWR_EN : configured at runtime */ + /* GPP_G3 - USB2_FP1_PWR_EN : configured at runtime */ + /* GPP_G4 - USB2_FP2_PWR_EN : configured at runtime */ + + PAD_NC(GPP_G5, NONE), + PAD_NC(GPP_G6, NONE), + PAD_NC(GPP_G7, NONE), + + /* ------- GPIO Group GPD ------- */ + /* GPD0 - BATLOW */ + PAD_CFG_NF(GPD0, NONE, DEEP, NF1), + /* GPD1 - ACPRESENT */ + PAD_CFG_NF(GPD1, NONE, DEEP, NF1), + /* GPD2 - LAN_WAKE# */ + PAD_CFG_NF(GPD2, NONE, DEEP, NF1), + /* GPD3 - PRWBTN# */ + PAD_CFG_NF(GPD3, NONE, DEEP, NF1), + /* GPD4 - SLP_S3# */ + PAD_CFG_NF(GPD4, NONE, DEEP, NF1), + /* GPD5 - SLP_S4# */ + PAD_CFG_NF(GPD5, NONE, DEEP, NF1), + /* GPD6 - SLP_A# */ + PAD_CFG_NF(GPD6, NONE, DEEP, NF1), + /* GPD7 - GPIO */ + PAD_NC(GPD7, NONE), + /* GPD8 - SUSCLK */ + PAD_CFG_NF(GPD8, NONE, DEEP, NF1), + /* GPD9 - SLP_WLAN */ + PAD_CFG_NF(GPD9, NONE, DEEP, NF1), + /* GPD10 - SLP_S5# */ + PAD_CFG_NF(GPD10, NONE, DEEP, NF1), + /* GPD11 - LAN_DISABLE_n */ + PAD_CFG_NF(GPD11, NONE, DEEP, NF1), + + /* ------- GPIO Group GPP_K ------- */ + /* GPP_K0 - PERST_PCH_SLOTS_n : configured at runtime */ + /* GPP_K1 - PERST_CPU_SLOTS_n : configured at runtime */ + /* GPP_K2 - PERST_CNVI_SLOTS_n : configured at runtime */ + /* GPP_K3 - DP1_PWR_EN : configured at runtime */ + /* GPP_K4 - DP2_PWR_EN : configured at runtime */ + /* GPP_K5 - DP3_PWR_EN : configured at runtime */ + + PAD_NC(GPP_K6, NONE), + + /* GPP_K7 - EN_3V3_KEYM_PCH : configured at runtime */ + + PAD_NC(GPP_K8, NONE), + PAD_NC(GPP_K9, NONE), + PAD_NC(GPP_K10, NONE), + PAD_NC(GPP_K11, NONE), + + /* K12 - K16 in early GPIO config */ + + PAD_NC(GPP_K17, NONE), + + /* GPP_K18/!NMI - NC */ + PAD_NC(GPP_K18, NONE), + /* GPP_K19/!SMI - NC */ + PAD_NC(GPP_K19, NONE), + + /* GPP_K20 - CPU_CATERR_PCH_n */ + PAD_CFG_GPI(GPP_K20, NONE, DEEP), + /* GPP_K21 - TPM_INT_n */ + PAD_CFG_GPI_INT(GPP_K21, NONE, DEEP, OFF), // Trigger? + /* GPP_K22 - NC */ + PAD_NC(GPP_K22, NONE), + /* GPP_K23 - NC */ + PAD_NC(GPP_K23, NONE), + + /* ------- GPIO Group GPP_H ------- */ + + /* SRCCLKREQ6# - SRCCLKREQ10# not used as CLKREQ, external 10K pullup */ + PAD_CFG_GPI(GPP_H0, NONE, DEEP), /* PCIE_SLOT1_PRSNT_PCH_n */ + PAD_CFG_GPI(GPP_H1, NONE, DEEP), /* PCIE_SLOT2_PRSNT_PCH_n */ + PAD_CFG_GPI(GPP_H2, NONE, DEEP), /* PCIE_SLOT3_PRSNT_PCH_n */ + PAD_CFG_GPI(GPP_H3, NONE, DEEP), /* PCIE_SLOT4_PRSNT_PCH_n */ + PAD_CFG_GPI(GPP_H4, NONE, DEEP), /* PCIE_SLOT6_PRSNT_PCH_n */ + + PAD_CFG_GPI(GPP_H4, NONE, DEEP), /* PCIE_SLOT6_PRSNT_PCH_n */ + + /* GPP_H5 - PCH_HBLED_n configured in early init */ + + /* SRCCLKREQ13# - SRCCLKREQ15# */ + PAD_NC(GPP_H7, NONE), + PAD_NC(GPP_H8, NONE), + PAD_NC(GPP_H9, NONE), + + /* SML2 - Used by CSME */ + PAD_NC(GPP_H10, NONE), + PAD_NC(GPP_H11, NONE), + PAD_NC(GPP_H12, NONE), + + /* SML3 - Used by CSME */ + PAD_NC(GPP_H13, NONE), + PAD_NC(GPP_H14, NONE), + PAD_NC(GPP_H15, NONE), + + /* SML4 - Used by CSME */ + PAD_CFG_NF(GPP_H16, NONE, DEEP, NF1), /* PCIE_SMB_CLK */ + PAD_CFG_NF(GPP_H17, NONE, DEEP, NF1), /* PCIE_SMB_DATA */ + PAD_NC(GPP_H18, NONE), + + /* ISH I2C0 */ + PAD_NC(GPP_H19, NONE), + PAD_NC(GPP_H20, NONE), + + /* ISH I2C1 */ + PAD_NC(GPP_H21, NONE), + PAD_NC(GPP_H22, NONE), + + PAD_NC(GPP_H23, NONE), + + /* ------- GPIO Group GPP_E ------- */ + /* GPP_E0 - NC */ + PAD_NC(GPP_E0, NONE), + /* GPP_E1 - M2_SATA_PCIE_SEL */ + PAD_CFG_NF(GPP_E1, NONE, DEEP, NF1), + /* GPP_E2 - NC */ + PAD_NC(GPP_E2, NONE), + /* GPP_E3 - NC */ + PAD_NC(GPP_E3, NONE), + /* GPP_E4 - NC */ + PAD_NC(GPP_E4, NONE), + + /* GPP_E5 - PCH_M2_SATA_DEVSLP1 */ + PAD_CFG_NF(GPP_E5, NONE, DEEP, NF1), + /* GPP_E6 - NC */ + PAD_NC(GPP_E6, NONE), + /* GPP_E8 - SATALED# */ + PAD_CFG_NF(GPP_E8, NONE, DEEP, NF1), + + /* GPP_E9 - USB31_RP1_OC_N */ + PAD_CFG_NF(GPP_E9, NONE, DEEP, NF1), + /* GPP_E10 - USB31_RP2_OC_N */ + PAD_CFG_NF(GPP_E10, NONE, DEEP, NF1), + /* GPP_E11 - USB31_FP_OC_N */ + PAD_CFG_NF(GPP_E11, NONE, DEEP, NF1), + /* GPP_E12 - USB2_FP1_OC_N */ + PAD_CFG_NF(GPP_E12, NONE, DEEP, NF1), + + /* ------- GPIO Group GPP_F ------- */ + /* SATAGP3-7 */ + PAD_NC(GPP_F0, NONE), + PAD_NC(GPP_F1, NONE), + PAD_NC(GPP_F2, NONE), + PAD_NC(GPP_F3, NONE), + PAD_NC(GPP_F4, NONE), + + /* SATA DEVSLP3-7 */ + PAD_NC(GPP_F5, NONE), + PAD_NC(GPP_F6, NONE), + PAD_NC(GPP_F7, NONE), + PAD_NC(GPP_F8, NONE), + PAD_NC(GPP_F9, NONE), + + /* SGPIO has external 2K pullups */ + /* GPP_F10 - SATA_SCLOCK */ + PAD_CFG_NF(GPP_F10, NONE, DEEP, NF1), + /* GPP_F11 - SATA_SLOAD */ + PAD_CFG_NF(GPP_F11, NONE, DEEP, NF1), + /* GPP_F12 - SATA_SDATAOUT1 */ + PAD_CFG_NF(GPP_F12, NONE, DEEP, NF1), + /* GPP_F13 - SATA_BMC_SDATAOUT0 */ + PAD_CFG_NF(GPP_F13, NONE, DEEP, NF1), + + /* GPP_F14 - PS_ON_PCH_n */ + PAD_CFG_NF(GPP_F14, NONE, DEEP, NF2), + /* GPP_F15 - USB2_FP2_OC_N */ + PAD_CFG_NF(GPP_F15, NONE, DEEP, NF1), + + /* GPP_F16 - NC/PU */ + PAD_NC(GPP_F16, NONE), + /* GPP_F17 - GPIO */ + PAD_NC(GPP_F17, NONE), + /* GPP_F18 - GPIO */ + PAD_NC(GPP_F18, NONE), + /* GPP_F19 - GPIO */ + PAD_NC(GPP_F19, NONE), + /* GPP_F20 - GPIO */ + PAD_NC(GPP_F20, NONE), + /* GPP_F21 - GPIO */ + PAD_NC(GPP_F21, NONE), + /* GPP_F22 - GPIO */ + PAD_NC(GPP_F22, NONE), + /* GPP_F23 - NC */ + PAD_NC(GPP_F23, NONE), + /* GPP_J0 - CNV_GNSS_PA_BLANKING */ + PAD_CFG_NF(GPP_J0, NONE, DEEP, NF1), + /* GPP_J1 - NC */ + PAD_NC(GPP_J1, NONE), + /* GPP_J2 - NC */ + PAD_NC(GPP_J2, NONE), + /* GPP_J3 - NC */ + PAD_NC(GPP_J3, NONE), + + /* CNVi */ + /* GPP_J4 - CNV_BRI_DT*/ + PAD_CFG_NF(GPP_J4, NONE, DEEP, NF1), + /* GPP_J5 - CNV_BRI_RSP */ + PAD_CFG_NF(GPP_J5, UP_20K, DEEP, NF1), + /* GPP_J6 - CNV_RGI_DT */ + PAD_CFG_NF(GPP_J6, NONE, DEEP, NF1), + /* GPP_J7 - CNV_RGI_RSP */ + PAD_CFG_NF(GPP_J7, UP_20K, DEEP, NF1), + /* GPP_J8 - CNV_MFUART2_RXD */ + PAD_CFG_NF(GPP_J8, NONE, DEEP, NF1), + /* GPP_J9 - CNV_MFUART2_TXD */ + PAD_CFG_NF(GPP_J9, NONE, DEEP, NF1), + + PAD_NC(GPP_J10, NONE), + PAD_NC(GPP_J11, NONE), + + /* Display Port */ + PAD_CFG_NF(GPP_I0, NONE, DEEP, NF1), /* DP1_HPD */ + PAD_CFG_NF(GPP_I1, NONE, DEEP, NF1), /* DP2_HPD */ + PAD_CFG_NF(GPP_I2, NONE, DEEP, NF1), /* DP3_HPD */ + PAD_NC(GPP_I3, NONE), + PAD_NC(GPP_I4, NONE), + + PAD_CFG_NF(GPP_I5, NONE, DEEP, NF1), /* DP1_DDC_SCL */ + PAD_CFG_NF(GPP_I6, NONE, DEEP, NF1), /* DP1_DDC_SDA */ + + PAD_CFG_NF(GPP_I7, NONE, DEEP, NF1), /* DP2_DDC_SCL */ + PAD_CFG_NF(GPP_I8, NONE, DEEP, NF1), /* DP2_DDC_SDA */ + + PAD_CFG_NF(GPP_I9, NONE, DEEP, NF1), /* DP3_DDC_SCL */ + PAD_CFG_NF(GPP_I10, NONE, DEEP, NF1), /* DP3_DDC_SDA */ + + PAD_NC(GPP_I11, NONE), + PAD_NC(GPP_I12, NONE), + PAD_NC(GPP_I13, NONE), + PAD_NC(GPP_I14, NONE), + +}; + +/* Early pad configuration in bootblock. */ +const struct pad_config early_gpio_table[] = { + /* Get PCIe out of reset */ + PAD_CFG_GPO(GPP_K0, 1, DEEP), /* PERST_PCH_SLOTS_n */ + PAD_CFG_GPO(GPP_K1, 1, DEEP), /* PERST_CPU_SLOTS_n */ + PAD_CFG_GPO(GPP_K2, 1, DEEP), /* PERST_CNVI_SLOTS_n */ + + /* SMB */ + PAD_CFG_NF(GPP_C0, NONE, DEEP, NF1), /* PCH_SMB_CLK */ + PAD_CFG_NF(GPP_C1, NONE, DEEP, NF1), /* PCH_SMB_DATA */ + PAD_NC(GPP_C2, NONE), + + /* BMC HSI */ + PAD_CFG_GPI(GPP_K12, NONE, DEEP), /* PCH_IO_2 */ + PAD_CFG_GPI(GPP_K13, NONE, DEEP), /* PCH_IO_3 */ + PAD_CFG_GPI(GPP_K14, NONE, DEEP), /* PCH_IO_1 */ + PAD_NC(GPP_K15, NONE), + PAD_CFG_GPI(GPP_K16, NONE, DEEP), /* PCH_IO_0 */ + + /* LED */ + PAD_CFG_GPO(GPP_H5, 0, DEEP), /* PCH_HBLED_n */ +}; + +const struct pad_config *get_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(gpio_table); + return gpio_table; +} + +const struct pad_config *get_early_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(early_gpio_table); + return early_gpio_table; +} diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h b/src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h new file mode 100644 index 0000000..c41ead2 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/include/eeprom.h @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include <soc/ramstage.h> + +#define HOSTC 0x40 +#define SMBUS_IO_BASE 0xefa0 +#define HOSTC_I2C_EN (1 << 2) +#define I2C_ADDR_EEPROM 0x57 + +#if ENV_ROMSTAGE +#define FSP_UPD_SIGNATURE FSPM_UPD_SIGNATURE +#define EEPROM_OFFSET_FSP_SIGNATURE 0 +#define EEPROM_OFFSET_FSP_CONFIG 0 + +#define GET_VALUE(x) {.offset = sizeof(FSP_UPD_HEADER) + sizeof(FSPM_ARCH_UPD) \ + + offsetof(FSP_M_CONFIG, x), .size = member_size(FSP_M_CONFIG, x)} +#else + +#define FSP_UPD_SIGNATURE FSPS_UPD_SIGNATURE +#define EEPROM_OFFSET_FSP_SIGNATURE 0x0600 +#define EEPROM_OFFSET_FSP_CONFIG (EEPROM_OFFSET_FSP_SIGNATURE + sizeof(FSP_UPD_HEADER)) +#define GET_VALUE(x) {.offset = offsetof(FSP_S_CONFIG, x), \ + .size = member_size(FSP_S_CONFIG, x)} +#endif // ENV_ROMSTAGE + +typedef struct { + size_t offset; + size_t size; +} fsp_params; + +bool read_write_config(u8 addr, void *blob, size_t read_offset, size_t write_offset, + size_t size); +int check_signature(u8 addr); diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h new file mode 100644 index 0000000..50d1801 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/gpio.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef PCH_GPIO_H +#define PCH_GPIO_H + +#include <soc/gpio.h> +#include <intelblocks/gpio_defs.h> + +const struct pad_config *get_gpio_table(size_t *num); +const struct pad_config *get_early_gpio_table(size_t *num); + +#endif /* PCH_GPIO_H */ diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h new file mode 100644 index 0000000..83cf232 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/include/variant/variants.h @@ -0,0 +1,4 @@ +#include <soc/cnl_memcfg_init.h> + +/* Return memory configuration structure. */ +const struct cnl_mb_cfg *variant_memcfg_config(void); diff --git a/src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb b/src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb new file mode 100644 index 0000000..3388239 --- /dev/null +++ b/src/mainboard/prodrive/hermes/variants/baseboard/overridetree.cb @@ -0,0 +1,193 @@ +chip soc/intel/cannonlake + + device cpu_cluster 0 on + device lapic 0 on end + end + + # FSP configuration + + register "SataMode" = "0" # AHCI + register "SataSalpSupport" = "0" + register "SataPortsDevSlp[1]" = "1" # PCH_M2_SATA_DEVSLP1 + + register "SataPortsEnable[0]" = "1" + register "SataPortsEnable[1]" = "1" # depends on SATAXPCIE1 + register "SataPortsEnable[2]" = "0" # Not used for SATA + register "SataPortsEnable[3]" = "0" # Not used for SATA + register "SataPortsEnable[4]" = "1" + register "SataPortsEnable[5]" = "1" + register "SataPortsEnable[6]" = "1" + register "SataPortsEnable[7]" = "1" + + register "PchHdaDspEnable" = "0" + register "PchHdaAudioLinkHda" = "1" + + # Enumeration starts at 0 for PCIE1 + # Ports are not hotplugable + register "PcieRpEnable[0]" = "1" # Slot3 x4 + # Set MaxPayload to 256 bytes + register "PcieRpMaxPayload[0]" = "RpMaxPayload_256" + # Enable Latency Tolerance Reporting Mechanism + register "PcieRpLtrEnable[0]" = "1" + # Enable Advanced Error Reporting + register "PcieRpAdvancedErrorReporting[0]" = "1" + # Disable Aspm + register "PcieRpAspm[0]" = "AspmDisabled" + + + register "PcieRpEnable[4]" = "1" # PHY ETH3 + register "PcieRpEnable[5]" = "1" # PHY ETH4 + register "PcieRpEnable[6]" = "1" # PHY ETH2 + register "PcieRpEnable[7]" = "1" # PHY ETH1 + register "PcieRpEnable[8]" = "1" # M2 Slot M x4, depends on SATAXPCIE1 + register "PcieRpEnable[13]" = "1" # PHY ETH0 + register "PcieRpEnable[14]" = "1" # BMC + register "PcieRpEnable[15]" = "1" # M2 Slot E x1 + register "PcieRpEnable[20]" = "1" # Slot 1 x4 + # Set MaxPayload to 256 bytes + register "PcieRpMaxPayload[20]" = "RpMaxPayload_256" + # Enable Latency Tolerance Reporting Mechanism + register "PcieRpLtrEnable[20]" = "1" + # Enable Advanced Error Reporting + register "PcieRpAdvancedErrorReporting[20]" = "1" + # Disable Aspm + register "PcieRpAspm[20]" = "AspmDisabled" + + # Controls the CLKREQ, not the output directly. + # Depends on the CLKREQ to CLK gen mapping below + register "PcieClkSrcUsage[0]" = "PCIE_CLK_FREE" # BMC, PCIe Slot1, Slot2, Slot4, Slot6 + register "PcieClkSrcUsage[1]" = "PCIE_CLK_FREE" # PHY3 + register "PcieClkSrcUsage[2]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[3]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[4]" = "PCIE_CLK_FREE" # RP9 M2 Slot M x4 + register "PcieClkSrcUsage[5]" = "PCIE_CLK_FREE" # RP16 M2 Slot E x1 + register "PcieClkSrcUsage[6]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[7]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[8]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[9]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[10]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[11]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[12]" = "PCIE_CLK_NOTUSED" + register "PcieClkSrcUsage[13]" = "PCIE_CLK_FREE" # PHY 0, PHY 1, PHY 2, PHY 4 + register "PcieClkSrcUsage[14]" = "PCIE_CLK_FREE" # PB + register "PcieClkSrcUsage[15]" = "PCIE_CLK_FREE" # PCIe Slot3 + + # Only map M2 CLKREQ to CLK gen + register "PcieClkSrcClkReq[4]" = "4" # M2_M_CLK_REQ_n + register "PcieClkSrcClkReq[5]" = "5" # M2_E_CLK_REQ_n + + # USB Config 2.0/3.0 + # Enumeration starts at 0 + # USB 3.0 + # USB OC0: RP1 + register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC0)" + register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC0)" + register "usb2_ports[0]" = "USB2_PORT_TYPE_C(OC0)" + register "usb2_ports[1]" = "USB2_PORT_TYPE_C(OC0)" + + # USB OC1: RP2 + register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC1)" + register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC1)" + register "usb2_ports[2]" = "USB2_PORT_TYPE_C(OC1)" + register "usb2_ports[3]" = "USB2_PORT_TYPE_C(OC1)" + + # USB OC2: Internal Header CN_USB3_HDR + register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC2)" + register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC2)" + register "usb2_ports[4]" = "USB2_PORT_TYPE_C(OC2)" + register "usb2_ports[5]" = "USB2_PORT_TYPE_C(OC2)" + + # USB 2.0 + # USB OC3: Internal Header USB2_HDR1 + register "usb2_ports[6]" = "USB2_PORT_MID(OC3)" + register "usb2_ports[7]" = "USB2_PORT_MID(OC3)" + + # USB OC4: Internal Header USB2_HDR2 + register "usb2_ports[8]" = "USB2_PORT_MID(OC4)" + register "usb2_ports[9]" = "USB2_PORT_MID(OC4)" + + # USB OC5-7: not connected + # BMC + register "usb2_ports[10]" = "USB2_PORT_MID(OC_SKIP)" + # unused + register "usb2_ports[11]" = "USB2_PORT_EMPTY" + # piggy-back + register "usb2_ports[12]" = "USB2_PORT_MID(OC_SKIP)" + # M2 key E + register "usb2_ports[13]" = "USB2_PORT_MID(OC_SKIP)" + + # Thermal + register "tcc_offset" = "6" # TCC of 94C + + # Enable "Intel Speed Shift Technology" + register "speed_shift_enable" = "1" + + # HECI + register "HeciEnabled" = "1" + + # Internal GFX + register "InternalGfx" = "1" + + # Disable S0ix + register "s0ix_enable" = "0" + + register "common_soc_config" = "{ + .gspi[0] = { + .speed_mhz = 1, + .early_init = 1, + }, + }" + + # VR Power Delivery Design + register "VrPowerDeliveryDesign" = "0x12" + + register "SerialIoDevMode" = "{ + [PchSerialIoIndexI2C0] = PchSerialIoDisabled, + [PchSerialIoIndexI2C1] = PchSerialIoDisabled, + [PchSerialIoIndexI2C2] = PchSerialIoDisabled, + [PchSerialIoIndexI2C3] = PchSerialIoDisabled, + [PchSerialIoIndexI2C4] = PchSerialIoDisabled, + [PchSerialIoIndexI2C5] = PchSerialIoDisabled, + [PchSerialIoIndexSPI0] = PchSerialIoPci, + [PchSerialIoIndexSPI1] = PchSerialIoDisabled, + [PchSerialIoIndexUART0] = PchSerialIoPci, + [PchSerialIoIndexUART1] = PchSerialIoPci, + [PchSerialIoIndexUART2] = PchSerialIoPci, + }" + + register "DisableHeciRetry" = "1" + + + device domain 0 on + device pci 02.0 on end # Integrated Graphics Device + chip drivers/intel/wifi + register "wake" = "PME_B0_EN_BIT" + device pci 14.3 on end # CNVi wifi + end + + device pci 19.2 on end # UART #2 + + device pci 1b.4 on + smbios_slot_desc "SlotTypePciExpressGen3X16" "SlotLengthOther" "SLOT1" "SlotDataBusWidth4X" + end # PCIe Slot 1 + device pci 1c.0 on + smbios_slot_desc "SlotTypePciExpressGen3X16" "SlotLengthOther" "SLOT3" "SlotDataBusWidth4X" + end # PCIe Slot 3 + device pci 1c.4 on end # PHY 3 + device pci 1c.5 on end # PHY 4 + device pci 1c.6 on end # PHY 2 + device pci 1c.7 on end # PHY 1 + + device pci 1d.0 on + smbios_slot_desc "SlotTypePciExpressGen3X16" "SlotLengthOther" "M2 M" "SlotDataBusWidth4X" + end # M2 M + device pci 1d.5 on end # PHY 0 + device pci 1d.6 on end # BMC + + device pci 1e.0 on end # UART #0 + device pci 1e.1 on end # UART #1 + device pci 1e.2 off end # GSPI #0 + device pci 1e.3 off end # GSPI #1 + + end +end
Paul Menzel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 59:
(1 comment)
https://review.coreboot.org/c/coreboot/+/38303/59/src/mainboard/prodrive/her... File src/mainboard/prodrive/hermes/Kconfig:
https://review.coreboot.org/c/coreboot/+/38303/59/src/mainboard/prodrive/her... PS59, Line 20: select DISABLE_ACPI_HIBERNATE Looking at the diff again, I noticed this. Could you expand the documentation, why this is selected?
9elements QA has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 59:
Automatic boot test returned (PASS/FAIL/TOTAL): 4/0/4 Emulation targets: "QEMU x86 q35/ich9" using payload TianoCore : SUCCESS : https://lava.9esec.io/r/4956 "QEMU x86 q35/ich9" using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/4955 "QEMU x86 i440fx/piix4" using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/4954 "QEMU AArch64" using payload LinuxBoot_u-root_kexec : SUCCESS : https://lava.9esec.io/r/4953
Please note: This test is under development and might not be accurate at all!
HAOUAS Elyes has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/38303 )
Change subject: mb/prodrive/hermes: Add new mainboard port ......................................................................
Patch Set 59:
$ ./util/lint/lint-008-kconfig gives : #!!!!! Warning: Unused symbol 'BOARD_PRODRIVE_HERMES' referenced at src/mainboard/prodrive/hermes/Kconfig.name:1.