Angel Pons has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: [WIP] mb/hp/280_g2: Add new mainboard ......................................................................
[WIP] mb/hp/280_g2: Add new mainboard
Boots fine and most things work, but still needs some work. S3 resume is not working for some reason, though...
Change-Id: Iadf11c187307a24b15039a5a716737d9d74944e6 Signed-off-by: Angel Pons th3fanbus@gmail.com --- A src/mainboard/hp/280_g2/Kconfig A src/mainboard/hp/280_g2/Kconfig.name A src/mainboard/hp/280_g2/Makefile.inc A src/mainboard/hp/280_g2/acpi/ec.asl A src/mainboard/hp/280_g2/acpi/superio.asl A src/mainboard/hp/280_g2/board_info.txt A src/mainboard/hp/280_g2/devicetree.cb A src/mainboard/hp/280_g2/dsdt.asl A src/mainboard/hp/280_g2/gma-mainboard.ads A src/mainboard/hp/280_g2/gpio.c A src/mainboard/hp/280_g2/gpio.h A src/mainboard/hp/280_g2/ramstage.c A src/mainboard/hp/280_g2/romstage.c 13 files changed, 551 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/86/48386/1
diff --git a/src/mainboard/hp/280_g2/Kconfig b/src/mainboard/hp/280_g2/Kconfig new file mode 100644 index 0000000..6696fc6 --- /dev/null +++ b/src/mainboard/hp/280_g2/Kconfig @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: GPL-2.0-only + +if BOARD_HP_280_G2 + +config BOARD_SPECIFIC_OPTIONS + def_bool y + select BOARD_ROMSIZE_KB_8192 + select HAVE_ACPI_RESUME + select HAVE_ACPI_TABLES + select INTEL_LPSS_UART_FOR_CONSOLE + select MAINBOARD_HAS_LIBGFXINIT + select SOC_INTEL_KABYLAKE + select SPD_READ_BY_WORD + select SKYLAKE_SOC_PCH_H + +config MAINBOARD_DIR + string + default "hp/280_g2" + +config MAINBOARD_PART_NUMBER + string + default "280 G2" + +config MAX_CPUS + int + default 8 + +config DIMM_MAX + int + default 2 + +config DIMM_SPD_SIZE + int + default 512 + +config UART_FOR_CONSOLE + int + default 2 + +config UART_PCI_ADDR + default 0x00190000 + +config USE_LEGACY_8254_TIMER + default y + +endif diff --git a/src/mainboard/hp/280_g2/Kconfig.name b/src/mainboard/hp/280_g2/Kconfig.name new file mode 100644 index 0000000..74ddaf4 --- /dev/null +++ b/src/mainboard/hp/280_g2/Kconfig.name @@ -0,0 +1,2 @@ +config BOARD_HP_280_G2 + bool "280 G2" diff --git a/src/mainboard/hp/280_g2/Makefile.inc b/src/mainboard/hp/280_g2/Makefile.inc new file mode 100644 index 0000000..9cb1c93 --- /dev/null +++ b/src/mainboard/hp/280_g2/Makefile.inc @@ -0,0 +1,5 @@ +## SPDX-License-Identifier: GPL-2.0-only + +ramstage-y += gpio.c +ramstage-y += ramstage.c +ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads diff --git a/src/mainboard/hp/280_g2/acpi/ec.asl b/src/mainboard/hp/280_g2/acpi/ec.asl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/mainboard/hp/280_g2/acpi/ec.asl diff --git a/src/mainboard/hp/280_g2/acpi/superio.asl b/src/mainboard/hp/280_g2/acpi/superio.asl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/mainboard/hp/280_g2/acpi/superio.asl diff --git a/src/mainboard/hp/280_g2/board_info.txt b/src/mainboard/hp/280_g2/board_info.txt new file mode 100644 index 0000000..2495346 --- /dev/null +++ b/src/mainboard/hp/280_g2/board_info.txt @@ -0,0 +1,6 @@ +Vendor name: HP +Board name: 280 G2 +Category: desktop +ROM protocol: SPI +ROM socketed: n +Flashrom support: y diff --git a/src/mainboard/hp/280_g2/devicetree.cb b/src/mainboard/hp/280_g2/devicetree.cb new file mode 100644 index 0000000..77b5028 --- /dev/null +++ b/src/mainboard/hp/280_g2/devicetree.cb @@ -0,0 +1,141 @@ +# SPDX-License-Identifier: GPL-2.0-only + +chip soc/intel/skylake + register "common_soc_config" = "{ + .chipset_lockdown = CHIPSET_LOCKDOWN_COREBOOT, + }" + + register "PmConfigSlpS3MinAssert" = "SLP_S3_MIN_ASSERT_50MS" + register "PmConfigSlpS4MinAssert" = "SLP_S4_MIN_ASSERT_4S" + register "PmConfigSlpSusMinAssert" = "SLP_SUS_MIN_ASSERT_4S" + register "PmConfigSlpAMinAssert" = "SLP_A_MIN_ASSERT_2S" + register "PmConfigPciClockRun" = "1" + register "PmConfigPwrCycDur" = "RESET_POWER_CYCLE_4S" + + register "eist_enable" = "1" + + register "SerialIoDevMode" = "{ + [PchSerialIoIndexUart2] = PchSerialIoSkipInit, /* Routed to debug header */ + }" + + 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 # PCIe graphics + device pci 02.0 on end # iGPU + device pci 08.0 on end # GMM + device pci 14.0 on # xHCI + register "usb2_ports[0]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[1]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[2]" = "USB2_PORT_MID(OC4)" + register "usb2_ports[3]" = "USB2_PORT_MID(OC4)" + register "usb2_ports[4]" = "USB2_PORT_MID(OC2)" + register "usb2_ports[5]" = "USB2_PORT_MID(OC2)" + register "usb2_ports[6]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[7]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[8]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[9]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[10]" = "USB2_PORT_MID(OC1)" + register "usb2_ports[11]" = "USB2_PORT_MID(OC1)" + register "usb2_ports[12]" = "USB2_PORT_MID(OC_SKIP)" + register "usb2_ports[13]" = "USB2_PORT_MID(OC_SKIP)" + + register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC0)" + register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC0)" + register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC3)" + register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC3)" + register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC1)" + register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC1)" + register "usb3_ports[6]" = "USB3_PORT_DEFAULT(OC_SKIP)" + register "usb3_ports[7]" = "USB3_PORT_DEFAULT(OC_SKIP)" + register "usb3_ports[8]" = "USB3_PORT_DEFAULT(OC_SKIP)" + register "usb3_ports[9]" = "USB3_PORT_DEFAULT(OC_SKIP)" + end + device pci 14.1 off end # xDCI + device pci 14.2 on end # Thermal + device pci 15.0 off end # I2C #0 + device pci 15.1 off end # I2C #1 + device pci 15.2 off end # I2C #2 + device pci 15.3 off end # I2C #3 + device pci 16.0 on end # MEI #1 + device pci 16.1 off end # MEI #2 + device pci 16.2 off end # ME IDE-R + device pci 16.3 off end # ME KT + device pci 16.4 off end # MEI #3 + device pci 17.0 on # SATA + register "SataMode" = "KBLFSP_SATA_MODE_AHCI" + register "SataSalpSupport" = "1" + register "SataPortsEnable" = "{ + [0] = 1, + [1] = 1, + [2] = 1, + [3] = 1, + }" + register "SataPortsHotPlug" = "{ + [0] = 1, + [1] = 1, + [2] = 1, + [3] = 1, + }" + # SataPortsDevSlp not supported + + # Enable test mode to allow SATA margining + register "SataTestMode" = "1" + end + device pci 19.0 on end # UART #2 + device pci 1c.0 off end # RP #1 + device pci 1c.1 off end # RP #2 + device pci 1c.2 off end # RP #3 + device pci 1c.3 off end # RP #4 + device pci 1c.4 on # RP #5: IT8893E PCI Bridge + register "PcieRpEnable[4]" = "1" + register "PcieRpLtrEnable[4]" = "1" + register "PcieRpAdvancedErrorReporting[4]" = "1" + register "PcieRpClkSrcNumber[4]" = "11" + end + device pci 1c.5 on # RP #6: PCIe x1 slot + register "PcieRpEnable[5]" = "1" + register "PcieRpHotPlug[5]" = "1" + register "PcieRpLtrEnable[5]" = "1" + register "PcieRpAdvancedErrorReporting[5]" = "1" + register "PcieRpClkSrcNumber[5]" = "6" + end + device pci 1c.6 on # RP #7: RTL8111 GbE NIC + register "PcieRpEnable[6]" = "1" + register "PcieRpLtrEnable[6]" = "1" + register "PcieRpAdvancedErrorReporting[6]" = "1" + register "PcieRpClkSrcNumber[6]" = "10" + end + device pci 1c.7 on # RP #8: M.2 2230 slot + register "PcieRpEnable[7]" = "1" + register "PcieRpHotPlug[7]" = "1" + register "PcieRpLtrEnable[7]" = "1" + register "PcieRpAdvancedErrorReporting[7]" = "1" + register "PcieRpClkReqSupport[7]" = "1" + register "PcieRpClkReqNumber[7]" = "6" + register "PcieRpClkSrcNumber[7]" = "12" + end + device pci 1d.0 off end # RP #9 + device pci 1d.1 off end # RP #10 + device pci 1d.2 off end # RP #11 + device pci 1d.3 off end # RP #12 + device pci 1e.0 off end # UART #0 + device pci 1e.1 off end # UART #1 + device pci 1e.2 off end # GSPI #0 + device pci 1e.3 off end # GSPI #1 + device pci 1f.0 on # LPC bridge + register "serirq_mode" = "SERIRQ_CONTINUOUS" + + # FIXME: Missing Super I/O config + # register "gen1_dec" = "0x000c0291" + end + device pci 1f.1 on end # P2SB + device pci 1f.2 on end # PMC + device pci 1f.3 on end # Intel HDA + device pci 1f.4 on end # SMBus + device pci 1f.5 on end # SPI + device pci 1f.6 off end # Intel GbE + end +end diff --git a/src/mainboard/hp/280_g2/dsdt.asl b/src/mainboard/hp/280_g2/dsdt.asl new file mode 100644 index 0000000..b5e5a68 --- /dev/null +++ b/src/mainboard/hp/280_g2/dsdt.asl @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <acpi/acpi.h> + +DefinitionBlock( + "dsdt.aml", + "DSDT", + ACPI_DSDT_REV_2, + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20110725 +) +{ + #include <cpu/intel/common/acpi/cpu.asl> + #include <soc/intel/common/block/acpi/acpi/platform.asl> + #include <soc/intel/skylake/acpi/globalnvs.asl> + + Device (_SB.PCI0) { + #include <soc/intel/skylake/acpi/systemagent.asl> + #include <soc/intel/skylake/acpi/pch.asl> + } + + #include <southbridge/intel/common/acpi/sleepstates.asl> +} diff --git a/src/mainboard/hp/280_g2/gma-mainboard.ads b/src/mainboard/hp/280_g2/gma-mainboard.ads new file mode 100644 index 0000000..0cf02cd --- /dev/null +++ b/src/mainboard/hp/280_g2/gma-mainboard.ads @@ -0,0 +1,21 @@ +-- SPDX-License-Identifier: GPL-2.0-or-later + +with HW.GFX.GMA; +with HW.GFX.GMA.Display_Probing; + +use HW.GFX.GMA; +use HW.GFX.GMA.Display_Probing; + +private package GMA.Mainboard is + + ports : constant Port_List := + (DP1, + DP2, + DP3, + HDMI1, + HDMI2, + HDMI3, + eDP, + others => Disabled); + +end GMA.Mainboard; diff --git a/src/mainboard/hp/280_g2/gpio.c b/src/mainboard/hp/280_g2/gpio.c new file mode 100644 index 0000000..9c293d7 --- /dev/null +++ b/src/mainboard/hp/280_g2/gpio.c @@ -0,0 +1,246 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <soc/gpe.h> +#include <soc/gpio.h> +#include "gpio.h" + +/* Pad configuration was generated automatically using intelp2m utility */ +static const struct pad_config gpio_table[] = { + + /* ------- GPIO Community 0 ------- */ + + /* ------- GPIO Group GPP_A ------- */ + _PAD_CFG_STRUCT(GPP_A0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), + _PAD_CFG_STRUCT(GPP_A2, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), + _PAD_CFG_STRUCT(GPP_A3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), + _PAD_CFG_STRUCT(GPP_A4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), + _PAD_CFG_STRUCT(GPP_A5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_A6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF), 0), + _PAD_CFG_STRUCT(GPP_A7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_A9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), + _PAD_CFG_STRUCT(GPP_A10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), + _PAD_CFG_STRUCT(GPP_A11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A13, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_A14, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_A15, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), + _PAD_CFG_STRUCT(GPP_A16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A22, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_A23, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + + /* ------- GPIO Group GPP_B ------- */ + _PAD_CFG_STRUCT(GPP_B0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_B1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_B2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPO(GPP_B3, 1, DEEP), + _PAD_CFG_STRUCT(GPP_B4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPO(GPP_B5, 0, PLTRST), + PAD_NC(GPP_B6, NONE), + _PAD_CFG_STRUCT(GPP_B7, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_RX_DISABLE) | (1 << 1), 0), + PAD_NC(GPP_B8, NONE), + PAD_NC(GPP_B9, NONE), + PAD_NC(GPP_B10, NONE), + _PAD_CFG_STRUCT(GPP_B11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_B12, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_B13, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_B14, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), + _PAD_CFG_STRUCT(GPP_B15, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_B16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPO(GPP_B17, 1, DEEP), + _PAD_CFG_STRUCT(GPP_B18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_B19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_B20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_B21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_B22, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_B23, PAD_FUNC(NF2) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE) | 1, PAD_PULL(DN_20K)), + + /* ------- GPIO Community 1 ------- */ + + /* ------- GPIO Group GPP_C ------- */ + _PAD_CFG_STRUCT(GPP_C0, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C1, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPO(GPP_C2, 1, DEEP), + _PAD_CFG_STRUCT(GPP_C3, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C4, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_C5, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_C6, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_C7, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_C10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_C11, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C15, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_C16, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_C17, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_C18, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_C19, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_C20, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_C21, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_C22, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_C23, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + + /* ------- GPIO Group GPP_D ------- */ + _PAD_CFG_STRUCT(GPP_D0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D3, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_D7, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_D11, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_D12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_D13, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_D14, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_D15, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_D16, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_D17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_D22, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_D23, NONE, PLTRST, OFF, ACPI), + + /* ------- GPIO Group GPP_E ------- */ + _PAD_CFG_STRUCT(GPP_E0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), + _PAD_CFG_STRUCT(GPP_E1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), + _PAD_CFG_STRUCT(GPP_E2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_E3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_E4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_E5, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_E6, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_E7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_E8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_E9, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_E10, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_E11, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_E12, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + + /* ------- GPIO Group GPP_F ------- */ + _PAD_CFG_STRUCT(GPP_F0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), + PAD_CFG_GPI_TRIG_OWN(GPP_F2, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_F3, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_F4, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_F5, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(EDGE_SINGLE) | PAD_IRQ_ROUTE(SCI) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_F7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_F11, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_F12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F14, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_IRQ_ROUTE(IOAPIC) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F15, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F16, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F17, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_F20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_F21, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPO(GPP_F22, 1, PLTRST), + PAD_CFG_GPO(GPP_F23, 1, DEEP), + + /* ------- GPIO Group GPP_G ------- */ + PAD_CFG_GPO(GPP_G0, 1, PLTRST), + _PAD_CFG_STRUCT(GPP_G1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPO(GPP_G2, 0, PLTRST), + PAD_CFG_GPO(GPP_G3, 0, PLTRST), + _PAD_CFG_STRUCT(GPP_G4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G5, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_G6, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPO(GPP_G7, 1, DEEP), + _PAD_CFG_STRUCT(GPP_G8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPO(GPP_G15, 0, PLTRST), + _PAD_CFG_STRUCT(GPP_G16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G19, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_G20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_G21, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(EDGE_SINGLE) | PAD_IRQ_ROUTE(SCI) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPO(GPP_G22, 1, PLTRST), + PAD_CFG_GPO(GPP_G23, 1, PLTRST), + + /* ------- GPIO Group GPP_H ------- */ + PAD_NC(GPP_H0, NONE), + PAD_NC(GPP_H1, NONE), + PAD_NC(GPP_H2, NONE), + PAD_NC(GPP_H3, NONE), + _PAD_CFG_STRUCT(GPP_H4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_H5, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_H6, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_H7, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_H8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_H9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_H10, PAD_FUNC(GPIO) | PAD_RESET(RSMRST) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_H11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_H12, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_H13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_H14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_H15, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_H16, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_H17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_H18, NONE, RSMRST, LEVEL, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_H19, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPI_TRIG_OWN(GPP_H20, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_H21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_H22, NONE, PLTRST, OFF, ACPI), + PAD_CFG_GPO(GPP_H23, 0, DEEP), + + /* ------- GPIO Community 2 ------- */ + + /* -------- GPIO Group GPD -------- */ + _PAD_CFG_STRUCT(GPD0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + PAD_CFG_GPO(GPD1, 0, PWROK), + _PAD_CFG_STRUCT(GPD2, PAD_FUNC(NF1) | PAD_IRQ_ROUTE(SCI) | PAD_BUF(RX_DISABLE) | (1 << 1), PAD_PULL(NATIVE)), + _PAD_CFG_STRUCT(GPD3, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), + _PAD_CFG_STRUCT(GPD4, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPD5, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPD6, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + PAD_CFG_GPO(GPD7, 1, PWROK), + _PAD_CFG_STRUCT(GPD8, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPD9, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + _PAD_CFG_STRUCT(GPD10, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), + PAD_CFG_GPO(GPD11, 0, PWROK), + + /* ------- GPIO Community 3 ------- */ + + /* ------- GPIO Group GPP_I ------- */ + _PAD_CFG_STRUCT(GPP_I0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_I1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_I2, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), + _PAD_CFG_STRUCT(GPP_I3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + PAD_CFG_GPI_TRIG_OWN(GPP_I4, NONE, PLTRST, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_I5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_I6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), + PAD_CFG_GPI_TRIG_OWN(GPP_I7, NONE, DEEP, OFF, ACPI), + _PAD_CFG_STRUCT(GPP_I8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), + _PAD_CFG_STRUCT(GPP_I9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), + _PAD_CFG_STRUCT(GPP_I10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), +}; + +void mainboard_configure_gpios(void) +{ + gpio_configure_pads(gpio_table, ARRAY_SIZE(gpio_table)); +} diff --git a/src/mainboard/hp/280_g2/gpio.h b/src/mainboard/hp/280_g2/gpio.h new file mode 100644 index 0000000..c3ab23c --- /dev/null +++ b/src/mainboard/hp/280_g2/gpio.h @@ -0,0 +1,3 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +void mainboard_configure_gpios(void); diff --git a/src/mainboard/hp/280_g2/ramstage.c b/src/mainboard/hp/280_g2/ramstage.c new file mode 100644 index 0000000..ccfd6a7 --- /dev/null +++ b/src/mainboard/hp/280_g2/ramstage.c @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <soc/ramstage.h> +#include "gpio.h" + +void mainboard_silicon_init_params(FSP_SIL_UPD *params) +{ + /* Configure pads prior to SiliconInit() in case there's any + dependencies during hardware initialization. */ + mainboard_configure_gpios(); +} diff --git a/src/mainboard/hp/280_g2/romstage.c b/src/mainboard/hp/280_g2/romstage.c new file mode 100644 index 0000000..94991a6 --- /dev/null +++ b/src/mainboard/hp/280_g2/romstage.c @@ -0,0 +1,46 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <stdint.h> +#include <string.h> +#include <assert.h> +#include <spd_bin.h> +#include <soc/romstage.h> +#include <fsp/soc_binding.h> + +/* Rcomp resistors are located on the CPU package */ +static const u16 rcomp_resistors[3] = { 121, 75, 100 }; + +/* Rcomp targets for RdOdt, WrDS, WrDSCmd, WrDSCtl, WrDSClk */ +static const u16 rcomp_targets[5] = { 50, 26, 20, 20, 26 }; + +void mainboard_memory_init_params(FSPM_UPD *mupd) +{ + FSP_M_CONFIG *const mem_cfg = &mupd->FspmConfig; + + struct spd_block blk = { + .addr_map = { 0x51, 0x50 }, + }; + + get_spd_smbus(&blk); + + assert(sizeof(mem_cfg->RcompResistor) == sizeof(rcomp_resistors)); + assert(sizeof(mem_cfg->RcompTarget) == sizeof(rcomp_targets)); + + mem_cfg->DqPinsInterleaved = true; + + mem_cfg->MemorySpdDataLen = blk.len; + mem_cfg->MemorySpdPtr00 = (u32)blk.spd_array[0]; + mem_cfg->MemorySpdPtr10 = (u32)blk.spd_array[1]; + + memcpy(mem_cfg->RcompResistor, rcomp_resistors, sizeof(mem_cfg->RcompResistor)); + memcpy(mem_cfg->RcompTarget, rcomp_targets, sizeof(mem_cfg->RcompTarget)); + + /* These settings are most likely useless if using a release build of FSP */ + mem_cfg->PcdDebugInterfaceFlags = 2; /* Enable UART */ + mem_cfg->PcdSerialIoUartNumber = 2; /* Use UART #2 */ + mem_cfg->PcdSerialDebugBaudRate = 7; /* 115200 baud */ + mem_cfg->PcdSerialDebugLevel = 3; /* Log <= Info */ + + /* Allow changing memory timings after MRC is done */ + mem_cfg->RealtimeMemoryTiming = 1; +}
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: [WIP] mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 1:
(142 comments)
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... File src/mainboard/hp/280_g2/gpio.c:
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 13: _PAD_CFG_STRUCT(GPP_A0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 14: _PAD_CFG_STRUCT(GPP_A1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 15: _PAD_CFG_STRUCT(GPP_A2, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 16: _PAD_CFG_STRUCT(GPP_A3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 17: _PAD_CFG_STRUCT(GPP_A4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 18: _PAD_CFG_STRUCT(GPP_A5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 20: _PAD_CFG_STRUCT(GPP_A7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 21: _PAD_CFG_STRUCT(GPP_A8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 22: _PAD_CFG_STRUCT(GPP_A9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 23: _PAD_CFG_STRUCT(GPP_A10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 24: _PAD_CFG_STRUCT(GPP_A11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 25: _PAD_CFG_STRUCT(GPP_A12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 26: _PAD_CFG_STRUCT(GPP_A13, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 27: _PAD_CFG_STRUCT(GPP_A14, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 28: _PAD_CFG_STRUCT(GPP_A15, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 29: _PAD_CFG_STRUCT(GPP_A16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 30: _PAD_CFG_STRUCT(GPP_A17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 31: _PAD_CFG_STRUCT(GPP_A18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 32: _PAD_CFG_STRUCT(GPP_A19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 33: _PAD_CFG_STRUCT(GPP_A20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 34: _PAD_CFG_STRUCT(GPP_A21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 35: _PAD_CFG_STRUCT(GPP_A22, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 36: _PAD_CFG_STRUCT(GPP_A23, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 39: _PAD_CFG_STRUCT(GPP_B0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 40: _PAD_CFG_STRUCT(GPP_B1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 41: _PAD_CFG_STRUCT(GPP_B2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 43: _PAD_CFG_STRUCT(GPP_B4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 46: _PAD_CFG_STRUCT(GPP_B7, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_RX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 50: _PAD_CFG_STRUCT(GPP_B11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 51: _PAD_CFG_STRUCT(GPP_B12, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 52: _PAD_CFG_STRUCT(GPP_B13, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 53: _PAD_CFG_STRUCT(GPP_B14, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 54: _PAD_CFG_STRUCT(GPP_B15, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 55: _PAD_CFG_STRUCT(GPP_B16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 57: _PAD_CFG_STRUCT(GPP_B18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 58: _PAD_CFG_STRUCT(GPP_B19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 59: _PAD_CFG_STRUCT(GPP_B20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 60: _PAD_CFG_STRUCT(GPP_B21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 62: _PAD_CFG_STRUCT(GPP_B23, PAD_FUNC(NF2) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE) | 1, PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 67: _PAD_CFG_STRUCT(GPP_C0, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 68: _PAD_CFG_STRUCT(GPP_C1, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 70: _PAD_CFG_STRUCT(GPP_C3, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 71: _PAD_CFG_STRUCT(GPP_C4, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 73: _PAD_CFG_STRUCT(GPP_C6, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 74: _PAD_CFG_STRUCT(GPP_C7, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 75: _PAD_CFG_STRUCT(GPP_C8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 76: _PAD_CFG_STRUCT(GPP_C9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 77: _PAD_CFG_STRUCT(GPP_C10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 78: _PAD_CFG_STRUCT(GPP_C11, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 79: _PAD_CFG_STRUCT(GPP_C12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 80: _PAD_CFG_STRUCT(GPP_C13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 81: _PAD_CFG_STRUCT(GPP_C14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 82: _PAD_CFG_STRUCT(GPP_C15, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 87: _PAD_CFG_STRUCT(GPP_C20, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 88: _PAD_CFG_STRUCT(GPP_C21, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 89: _PAD_CFG_STRUCT(GPP_C22, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 90: _PAD_CFG_STRUCT(GPP_C23, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 93: _PAD_CFG_STRUCT(GPP_D0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 94: _PAD_CFG_STRUCT(GPP_D1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 95: _PAD_CFG_STRUCT(GPP_D2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 96: _PAD_CFG_STRUCT(GPP_D3, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 97: _PAD_CFG_STRUCT(GPP_D4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 98: _PAD_CFG_STRUCT(GPP_D5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 99: _PAD_CFG_STRUCT(GPP_D6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 100: _PAD_CFG_STRUCT(GPP_D7, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 101: _PAD_CFG_STRUCT(GPP_D8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 102: _PAD_CFG_STRUCT(GPP_D9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 103: _PAD_CFG_STRUCT(GPP_D10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 105: _PAD_CFG_STRUCT(GPP_D12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 110: _PAD_CFG_STRUCT(GPP_D17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 111: _PAD_CFG_STRUCT(GPP_D18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 112: _PAD_CFG_STRUCT(GPP_D19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 113: _PAD_CFG_STRUCT(GPP_D20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 114: _PAD_CFG_STRUCT(GPP_D21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 115: _PAD_CFG_STRUCT(GPP_D22, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 119: _PAD_CFG_STRUCT(GPP_E0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 120: _PAD_CFG_STRUCT(GPP_E1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 121: _PAD_CFG_STRUCT(GPP_E2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 122: _PAD_CFG_STRUCT(GPP_E3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 123: _PAD_CFG_STRUCT(GPP_E4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 126: _PAD_CFG_STRUCT(GPP_E7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 127: _PAD_CFG_STRUCT(GPP_E8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 128: _PAD_CFG_STRUCT(GPP_E9, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 129: _PAD_CFG_STRUCT(GPP_E10, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 130: _PAD_CFG_STRUCT(GPP_E11, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 131: _PAD_CFG_STRUCT(GPP_E12, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 134: _PAD_CFG_STRUCT(GPP_F0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 135: _PAD_CFG_STRUCT(GPP_F1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 139: _PAD_CFG_STRUCT(GPP_F5, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(EDGE_SINGLE) | PAD_IRQ_ROUTE(SCI) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 140: _PAD_CFG_STRUCT(GPP_F6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 141: _PAD_CFG_STRUCT(GPP_F7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 142: _PAD_CFG_STRUCT(GPP_F8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 143: _PAD_CFG_STRUCT(GPP_F9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 144: _PAD_CFG_STRUCT(GPP_F10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 146: _PAD_CFG_STRUCT(GPP_F12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 147: _PAD_CFG_STRUCT(GPP_F13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 148: _PAD_CFG_STRUCT(GPP_F14, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_IRQ_ROUTE(IOAPIC) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 149: _PAD_CFG_STRUCT(GPP_F15, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 150: _PAD_CFG_STRUCT(GPP_F16, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 151: _PAD_CFG_STRUCT(GPP_F17, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 152: _PAD_CFG_STRUCT(GPP_F18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 153: _PAD_CFG_STRUCT(GPP_F19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 154: _PAD_CFG_STRUCT(GPP_F20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 161: _PAD_CFG_STRUCT(GPP_G1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 164: _PAD_CFG_STRUCT(GPP_G4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 165: _PAD_CFG_STRUCT(GPP_G5, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 168: _PAD_CFG_STRUCT(GPP_G8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 169: _PAD_CFG_STRUCT(GPP_G9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 170: _PAD_CFG_STRUCT(GPP_G10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 171: _PAD_CFG_STRUCT(GPP_G11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 172: _PAD_CFG_STRUCT(GPP_G12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 173: _PAD_CFG_STRUCT(GPP_G13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 174: _PAD_CFG_STRUCT(GPP_G14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 176: _PAD_CFG_STRUCT(GPP_G16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 177: _PAD_CFG_STRUCT(GPP_G17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 178: _PAD_CFG_STRUCT(GPP_G18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 179: _PAD_CFG_STRUCT(GPP_G19, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 180: _PAD_CFG_STRUCT(GPP_G20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 181: _PAD_CFG_STRUCT(GPP_G21, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(EDGE_SINGLE) | PAD_IRQ_ROUTE(SCI) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 190: _PAD_CFG_STRUCT(GPP_H4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 191: _PAD_CFG_STRUCT(GPP_H5, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 194: _PAD_CFG_STRUCT(GPP_H8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 195: _PAD_CFG_STRUCT(GPP_H9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 196: _PAD_CFG_STRUCT(GPP_H10, PAD_FUNC(GPIO) | PAD_RESET(RSMRST) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 197: _PAD_CFG_STRUCT(GPP_H11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 199: _PAD_CFG_STRUCT(GPP_H13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 200: _PAD_CFG_STRUCT(GPP_H14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 203: _PAD_CFG_STRUCT(GPP_H17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 207: _PAD_CFG_STRUCT(GPP_H21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 214: _PAD_CFG_STRUCT(GPD0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 216: _PAD_CFG_STRUCT(GPD2, PAD_FUNC(NF1) | PAD_IRQ_ROUTE(SCI) | PAD_BUF(RX_DISABLE) | (1 << 1), PAD_PULL(NATIVE)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 217: _PAD_CFG_STRUCT(GPD3, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 230: _PAD_CFG_STRUCT(GPP_I0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 231: _PAD_CFG_STRUCT(GPP_I1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 232: _PAD_CFG_STRUCT(GPP_I2, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 233: _PAD_CFG_STRUCT(GPP_I3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 235: _PAD_CFG_STRUCT(GPP_I5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 236: _PAD_CFG_STRUCT(GPP_I6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 238: _PAD_CFG_STRUCT(GPP_I8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 239: _PAD_CFG_STRUCT(GPP_I9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/gpi... PS1, Line 240: _PAD_CFG_STRUCT(GPP_I10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/rom... File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/1/src/mainboard/hp/280_g2/rom... PS1, Line 18: FSP_M_CONFIG *const mem_cfg = &mupd->FspmConfig; need consistent spacing around '*' (ctx:WxV)
Hello build bot (Jenkins), Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/48386
to look at the new patch set (#2).
Change subject: [WIP] mb/hp/280_g2: Add new mainboard ......................................................................
[WIP] mb/hp/280_g2: Add new mainboard
Boots fine and most things work, but still needs some work. S3 resume is not working for some reason, though...
Change-Id: Iadf11c187307a24b15039a5a716737d9d74944e6 Signed-off-by: Angel Pons th3fanbus@gmail.com --- A src/mainboard/hp/280_g2/Kconfig A src/mainboard/hp/280_g2/Kconfig.name A src/mainboard/hp/280_g2/Makefile.inc A src/mainboard/hp/280_g2/acpi/ec.asl A src/mainboard/hp/280_g2/acpi/superio.asl A src/mainboard/hp/280_g2/board_info.txt A src/mainboard/hp/280_g2/devicetree.cb A src/mainboard/hp/280_g2/dsdt.asl A src/mainboard/hp/280_g2/gma-mainboard.ads A src/mainboard/hp/280_g2/gpio.c A src/mainboard/hp/280_g2/gpio.h A src/mainboard/hp/280_g2/ramstage.c A src/mainboard/hp/280_g2/romstage.c 13 files changed, 552 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/86/48386/2
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: [WIP] mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 2:
(142 comments)
File src/mainboard/hp/280_g2/gpio.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/b059c0ce_02a3bcf6 PS2, Line 13: _PAD_CFG_STRUCT(GPP_A0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/a42ca3a1_d1c37bbc PS2, Line 14: _PAD_CFG_STRUCT(GPP_A1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/b7934500_ffb13197 PS2, Line 15: _PAD_CFG_STRUCT(GPP_A2, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/92a05444_9608d41f PS2, Line 16: _PAD_CFG_STRUCT(GPP_A3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/5d2717fd_453a450c PS2, Line 17: _PAD_CFG_STRUCT(GPP_A4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/c8912deb_fe5aa2a5 PS2, Line 18: _PAD_CFG_STRUCT(GPP_A5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/6034a84c_b87996b5 PS2, Line 20: _PAD_CFG_STRUCT(GPP_A7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/3de07137_951fe343 PS2, Line 21: _PAD_CFG_STRUCT(GPP_A8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/2739d055_6d0fb46b PS2, Line 22: _PAD_CFG_STRUCT(GPP_A9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/86309601_7cb8cafa PS2, Line 23: _PAD_CFG_STRUCT(GPP_A10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/8ff68571_520ca3ec PS2, Line 24: _PAD_CFG_STRUCT(GPP_A11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/89f15da7_a3f120f1 PS2, Line 25: _PAD_CFG_STRUCT(GPP_A12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/d23c96d4_846140a6 PS2, Line 26: _PAD_CFG_STRUCT(GPP_A13, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/f6785a46_0234b628 PS2, Line 27: _PAD_CFG_STRUCT(GPP_A14, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/9bb207f5_6a09395d PS2, Line 28: _PAD_CFG_STRUCT(GPP_A15, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/68f57cd4_dc4fe0e0 PS2, Line 29: _PAD_CFG_STRUCT(GPP_A16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/42fc34ae_316b2fb0 PS2, Line 30: _PAD_CFG_STRUCT(GPP_A17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/99755b34_34d574f7 PS2, Line 31: _PAD_CFG_STRUCT(GPP_A18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/1044d48c_c36ec6f9 PS2, Line 32: _PAD_CFG_STRUCT(GPP_A19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/acffae39_9a0c076e PS2, Line 33: _PAD_CFG_STRUCT(GPP_A20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/b68032b0_90f5378a PS2, Line 34: _PAD_CFG_STRUCT(GPP_A21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/3e33f5c9_71372a5e PS2, Line 35: _PAD_CFG_STRUCT(GPP_A22, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/876e7d1b_aa3a490f PS2, Line 36: _PAD_CFG_STRUCT(GPP_A23, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/fbca2cce_3780fce0 PS2, Line 39: _PAD_CFG_STRUCT(GPP_B0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/8762b229_c88e6caf PS2, Line 40: _PAD_CFG_STRUCT(GPP_B1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/cddc2973_1276a14f PS2, Line 41: _PAD_CFG_STRUCT(GPP_B2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/e5275919_75b80de1 PS2, Line 43: _PAD_CFG_STRUCT(GPP_B4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/2ff1b765_1655bd86 PS2, Line 46: _PAD_CFG_STRUCT(GPP_B7, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_RX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/ed4f5d8b_4947818e PS2, Line 50: _PAD_CFG_STRUCT(GPP_B11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/2caccdae_02694dc5 PS2, Line 51: _PAD_CFG_STRUCT(GPP_B12, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/d072c21f_0319bbbf PS2, Line 52: _PAD_CFG_STRUCT(GPP_B13, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/624c46f9_cb2beee6 PS2, Line 53: _PAD_CFG_STRUCT(GPP_B14, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/52af8348_2a8e21a2 PS2, Line 54: _PAD_CFG_STRUCT(GPP_B15, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/a6ecaeda_0364e63a PS2, Line 55: _PAD_CFG_STRUCT(GPP_B16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/a047506e_488c2195 PS2, Line 57: _PAD_CFG_STRUCT(GPP_B18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/298db769_569ec01d PS2, Line 58: _PAD_CFG_STRUCT(GPP_B19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/b4b1cdef_56fe4c91 PS2, Line 59: _PAD_CFG_STRUCT(GPP_B20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/238de40e_04b568ef PS2, Line 60: _PAD_CFG_STRUCT(GPP_B21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/19d7bb98_e3feed5a PS2, Line 62: _PAD_CFG_STRUCT(GPP_B23, PAD_FUNC(NF2) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE) | 1, PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/65f68bf2_c2cb00ad PS2, Line 67: _PAD_CFG_STRUCT(GPP_C0, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/7c5f909f_32885001 PS2, Line 68: _PAD_CFG_STRUCT(GPP_C1, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/0f4f1fbb_8e11095c PS2, Line 70: _PAD_CFG_STRUCT(GPP_C3, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/499b7f95_45cd8400 PS2, Line 71: _PAD_CFG_STRUCT(GPP_C4, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/435c54ff_96f5c77b PS2, Line 73: _PAD_CFG_STRUCT(GPP_C6, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/ee29d384_2e03d094 PS2, Line 74: _PAD_CFG_STRUCT(GPP_C7, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/1dac064d_797c37ac PS2, Line 75: _PAD_CFG_STRUCT(GPP_C8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/b6f2dd61_88e17f9a PS2, Line 76: _PAD_CFG_STRUCT(GPP_C9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/d2e0395f_6c6d279e PS2, Line 77: _PAD_CFG_STRUCT(GPP_C10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/396e43f0_8d07e2aa PS2, Line 78: _PAD_CFG_STRUCT(GPP_C11, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/87da7853_1be01715 PS2, Line 79: _PAD_CFG_STRUCT(GPP_C12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/272c0801_f3d5a865 PS2, Line 80: _PAD_CFG_STRUCT(GPP_C13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/c49db6c3_5b7c82fb PS2, Line 81: _PAD_CFG_STRUCT(GPP_C14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/cf1cde32_6e1bfb18 PS2, Line 82: _PAD_CFG_STRUCT(GPP_C15, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/dd242d3a_f62cd488 PS2, Line 87: _PAD_CFG_STRUCT(GPP_C20, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/c214516d_3fc28339 PS2, Line 88: _PAD_CFG_STRUCT(GPP_C21, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/671c4f6f_a8516e88 PS2, Line 89: _PAD_CFG_STRUCT(GPP_C22, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/556308b9_a80a8c5e PS2, Line 90: _PAD_CFG_STRUCT(GPP_C23, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/34dfb66b_f093d0ec PS2, Line 93: _PAD_CFG_STRUCT(GPP_D0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/ee3b7723_cf6da70b PS2, Line 94: _PAD_CFG_STRUCT(GPP_D1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/5225115a_1574fd92 PS2, Line 95: _PAD_CFG_STRUCT(GPP_D2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/f28e5729_d8330809 PS2, Line 96: _PAD_CFG_STRUCT(GPP_D3, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/41fc3e16_4a226174 PS2, Line 97: _PAD_CFG_STRUCT(GPP_D4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/e051b4bc_5c2ace28 PS2, Line 98: _PAD_CFG_STRUCT(GPP_D5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/523d6a57_ee1d1196 PS2, Line 99: _PAD_CFG_STRUCT(GPP_D6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/0efc2c74_00da3b28 PS2, Line 100: _PAD_CFG_STRUCT(GPP_D7, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/e3f9f3d3_4945e84b PS2, Line 101: _PAD_CFG_STRUCT(GPP_D8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/1d5836c8_d895936c PS2, Line 102: _PAD_CFG_STRUCT(GPP_D9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/43361a29_9b8cff1f PS2, Line 103: _PAD_CFG_STRUCT(GPP_D10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/a8855f66_e962d21e PS2, Line 105: _PAD_CFG_STRUCT(GPP_D12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/fbb0ad54_3a101eb6 PS2, Line 110: _PAD_CFG_STRUCT(GPP_D17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/f4a2d853_92c4ece2 PS2, Line 111: _PAD_CFG_STRUCT(GPP_D18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/7c146e6b_ae4cfbed PS2, Line 112: _PAD_CFG_STRUCT(GPP_D19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/40cb28d5_a225a690 PS2, Line 113: _PAD_CFG_STRUCT(GPP_D20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/0680bbb7_c4b83a3f PS2, Line 114: _PAD_CFG_STRUCT(GPP_D21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/14c4dbaf_c13ec6c0 PS2, Line 115: _PAD_CFG_STRUCT(GPP_D22, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/c2ce44f7_2fffc841 PS2, Line 119: _PAD_CFG_STRUCT(GPP_E0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/a0b7caf8_1af8cb26 PS2, Line 120: _PAD_CFG_STRUCT(GPP_E1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/c067f15f_a29a5dfb PS2, Line 121: _PAD_CFG_STRUCT(GPP_E2, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/311833aa_6a2984ac PS2, Line 122: _PAD_CFG_STRUCT(GPP_E3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/9ece1471_b7e69826 PS2, Line 123: _PAD_CFG_STRUCT(GPP_E4, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/403f08e2_d557a950 PS2, Line 126: _PAD_CFG_STRUCT(GPP_E7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/f3087f80_898a11d5 PS2, Line 127: _PAD_CFG_STRUCT(GPP_E8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/6f1f1018_679f2c0d PS2, Line 128: _PAD_CFG_STRUCT(GPP_E9, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/15157177_a5773a26 PS2, Line 129: _PAD_CFG_STRUCT(GPP_E10, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/df132248_1e462c7a PS2, Line 130: _PAD_CFG_STRUCT(GPP_E11, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/d90e5654_fa91493d PS2, Line 131: _PAD_CFG_STRUCT(GPP_E12, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/4fa03c2b_0df9f468 PS2, Line 134: _PAD_CFG_STRUCT(GPP_F0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/658f0f53_b5a10931 PS2, Line 135: _PAD_CFG_STRUCT(GPP_F1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/f3ffe1f8_3cba0cf6 PS2, Line 139: _PAD_CFG_STRUCT(GPP_F5, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(EDGE_SINGLE) | PAD_IRQ_ROUTE(SCI) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/4edd2387_24e8e587 PS2, Line 140: _PAD_CFG_STRUCT(GPP_F6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(RX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/841a5d00_734e529c PS2, Line 141: _PAD_CFG_STRUCT(GPP_F7, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/12ff6fd7_ae358471 PS2, Line 142: _PAD_CFG_STRUCT(GPP_F8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/6b52780d_401c0855 PS2, Line 143: _PAD_CFG_STRUCT(GPP_F9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/6c541e06_c767d48b PS2, Line 144: _PAD_CFG_STRUCT(GPP_F10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/f3f57424_1b095f84 PS2, Line 146: _PAD_CFG_STRUCT(GPP_F12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/4e91cff3_5eb87704 PS2, Line 147: _PAD_CFG_STRUCT(GPP_F13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/99c72373_ee0d2e6d PS2, Line 148: _PAD_CFG_STRUCT(GPP_F14, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_IRQ_ROUTE(IOAPIC) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/5bbdb3f9_9c000783 PS2, Line 149: _PAD_CFG_STRUCT(GPP_F15, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/834acb94_6257072c PS2, Line 150: _PAD_CFG_STRUCT(GPP_F16, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/692f2169_7b07c7e2 PS2, Line 151: _PAD_CFG_STRUCT(GPP_F17, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/dc924b35_f0eb38f6 PS2, Line 152: _PAD_CFG_STRUCT(GPP_F18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/c932f058_3f24cc5b PS2, Line 153: _PAD_CFG_STRUCT(GPP_F19, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/add2b052_5a257259 PS2, Line 154: _PAD_CFG_STRUCT(GPP_F20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/b6d97337_9b05d59d PS2, Line 161: _PAD_CFG_STRUCT(GPP_G1, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/e65b6a36_9a684f73 PS2, Line 164: _PAD_CFG_STRUCT(GPP_G4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/779556b1_abea3d15 PS2, Line 165: _PAD_CFG_STRUCT(GPP_G5, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/4c59a636_f72df5f3 PS2, Line 168: _PAD_CFG_STRUCT(GPP_G8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/1065174f_40233790 PS2, Line 169: _PAD_CFG_STRUCT(GPP_G9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/21ed3641_e5b6c52a PS2, Line 170: _PAD_CFG_STRUCT(GPP_G10, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/6d1669a7_c8395326 PS2, Line 171: _PAD_CFG_STRUCT(GPP_G11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/7010ef4d_eb46d31a PS2, Line 172: _PAD_CFG_STRUCT(GPP_G12, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/96e04f34_c84c95ce PS2, Line 173: _PAD_CFG_STRUCT(GPP_G13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/974b6150_ad03b3c9 PS2, Line 174: _PAD_CFG_STRUCT(GPP_G14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/7fc5d18c_8679920c PS2, Line 176: _PAD_CFG_STRUCT(GPP_G16, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/ab67a61e_729d1a3c PS2, Line 177: _PAD_CFG_STRUCT(GPP_G17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/a1264d7f_ad9053a5 PS2, Line 178: _PAD_CFG_STRUCT(GPP_G18, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/e4e52df7_5b3d2b84 PS2, Line 179: _PAD_CFG_STRUCT(GPP_G19, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/b1cf4746_5dd2112f PS2, Line 180: _PAD_CFG_STRUCT(GPP_G20, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/3e511599_879b2e3a PS2, Line 181: _PAD_CFG_STRUCT(GPP_G21, PAD_FUNC(GPIO) | PAD_RESET(DEEP) | PAD_TRIG(EDGE_SINGLE) | PAD_IRQ_ROUTE(SCI) | PAD_RX_POL(INVERT) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/2329718a_6c48e6d5 PS2, Line 190: _PAD_CFG_STRUCT(GPP_H4, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/275ef1bd_6e7c35d2 PS2, Line 191: _PAD_CFG_STRUCT(GPP_H5, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/423f91c2_24fb829f PS2, Line 194: _PAD_CFG_STRUCT(GPP_H8, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/6a76ecf0_3741d7d0 PS2, Line 195: _PAD_CFG_STRUCT(GPP_H9, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/364eb26b_39a648f8 PS2, Line 196: _PAD_CFG_STRUCT(GPP_H10, PAD_FUNC(GPIO) | PAD_RESET(RSMRST) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/e9579f55_0ce7c581 PS2, Line 197: _PAD_CFG_STRUCT(GPP_H11, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/f8b2816b_0596cdb1 PS2, Line 199: _PAD_CFG_STRUCT(GPP_H13, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/d70cb42e_481a4d3f PS2, Line 200: _PAD_CFG_STRUCT(GPP_H14, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_IRQ_ROUTE(IOAPIC) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/8bdcab6a_8a22e4ca PS2, Line 203: _PAD_CFG_STRUCT(GPP_H17, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/cc58c3b1_98eae72e PS2, Line 207: _PAD_CFG_STRUCT(GPP_H21, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/86e9ce03_57c80d8a PS2, Line 214: _PAD_CFG_STRUCT(GPD0, PAD_FUNC(GPIO) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/d278e537_7e8d6ce7 PS2, Line 216: _PAD_CFG_STRUCT(GPD2, PAD_FUNC(NF1) | PAD_IRQ_ROUTE(SCI) | PAD_BUF(RX_DISABLE) | (1 << 1), PAD_PULL(NATIVE)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/7eceb777_dccd7f23 PS2, Line 217: _PAD_CFG_STRUCT(GPD3, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), PAD_PULL(UP_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/896844f5_3711c80e PS2, Line 230: _PAD_CFG_STRUCT(GPP_I0, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/eff1bf71_332472cb PS2, Line 231: _PAD_CFG_STRUCT(GPP_I1, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/0fd8f365_d0df1160 PS2, Line 232: _PAD_CFG_STRUCT(GPP_I2, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE) | (1 << 1), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/8156f110_989bc932 PS2, Line 233: _PAD_CFG_STRUCT(GPP_I3, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/9e056cd5_9bbfcc00 PS2, Line 235: _PAD_CFG_STRUCT(GPP_I5, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/c92afeab_66723a51 PS2, Line 236: _PAD_CFG_STRUCT(GPP_I6, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/b3935c2b_fd8d26db PS2, Line 238: _PAD_CFG_STRUCT(GPP_I8, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/e937f8e4_09cc1d9e PS2, Line 239: _PAD_CFG_STRUCT(GPP_I9, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), 0), line over 96 characters
https://review.coreboot.org/c/coreboot/+/48386/comment/45e15799_0bc48697 PS2, Line 240: _PAD_CFG_STRUCT(GPP_I10, PAD_FUNC(NF1) | PAD_RESET(PLTRST) | PAD_TRIG(OFF) | PAD_BUF(TX_DISABLE), PAD_PULL(DN_20K)), line over 96 characters
File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/56eb4ade_fa92008c PS2, Line 18: FSP_M_CONFIG *const mem_cfg = &mupd->FspmConfig; need consistent spacing around '*' (ctx:WxV)
Hello build bot (Jenkins), Patrick Georgi, Martin Roth,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/48386
to look at the new patch set (#3).
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
mb/hp/280_g2: Add new mainboard
This is a µATX mainboard with a LGA1151 socket and two DDR4 DIMM slots.
There are two possible BOM configurations: Sid has no legacy devices, whereas Manny provides two serial ports, a parallel port, a PCI slot and PS/2 keyboard/mouse connectors. These boards also have different Super I/O models: Manny uses an ITE IT8625E, whereas legacy-free Sid comes with an ITE IT8656E instead.
This coreboot port has been done using a Sid board, thus support for Manny-specific features is missing. Booting should still be possible, though: none of these legacy features is essential.
The board has an unpopulated 6-pin header, wired to PCH UART 2. This can be used to retrieve coreboot logs.
Working: - Both DIMM slots - PCH SerialIO UART 2 to get coreboot logs - Rear USB ports - Realtek RTL8111 GbE NIC - Integrated graphics on DVI with libgfxinit - At least one SATA port - Flashing internally with flashrom - S3 suspend/resume - SeaBIOS and TianoCore to boot Arch Linux - VBT
Untested: - Audio - VGA - Front USB headers - Non-Linux OSes - PCI slot - IT8625E peripherals: serial, parallel and PS/2 ports
Change-Id: Iadf11c187307a24b15039a5a716737d9d74944e6 Signed-off-by: Angel Pons th3fanbus@gmail.com --- A src/mainboard/hp/280_g2/Kconfig A src/mainboard/hp/280_g2/Kconfig.name A src/mainboard/hp/280_g2/Makefile.inc A src/mainboard/hp/280_g2/acpi/ec.asl A src/mainboard/hp/280_g2/acpi/superio.asl A src/mainboard/hp/280_g2/board_info.txt A src/mainboard/hp/280_g2/bootblock.c A src/mainboard/hp/280_g2/data.vbt A src/mainboard/hp/280_g2/devicetree.cb A src/mainboard/hp/280_g2/dsdt.asl A src/mainboard/hp/280_g2/gma-mainboard.ads A src/mainboard/hp/280_g2/hda_verb.c A src/mainboard/hp/280_g2/romstage.c 13 files changed, 422 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/86/48386/3
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 3:
(1 comment)
File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/1bfc7eb2_c8525c6c PS3, Line 18: FSP_M_CONFIG *const mem_cfg = &mupd->FspmConfig; need consistent spacing around '*' (ctx:WxV)
Attention is currently required from: Nico Huber, Angel Pons, Arthur Heymans, Patrick Rudolph. Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 3:
(8 comments)
File src/mainboard/hp/280_g2/Kconfig:
https://review.coreboot.org/c/coreboot/+/48386/comment/067c91a5_300ff5bb PS3, Line 18: for serial via superio, you'd need `select DRIVERS_UART_8250IO`
https://review.coreboot.org/c/coreboot/+/48386/comment/1ee9dd17_5a244990 PS3, Line 41: add a decent default for CBFS_SIZE?
File src/mainboard/hp/280_g2/Makefile.inc:
https://review.coreboot.org/c/coreboot/+/48386/comment/5e680930_acb529df PS3, Line 1: ## nit: one is enough
File src/mainboard/hp/280_g2/board_info.txt:
https://review.coreboot.org/c/coreboot/+/48386/comment/70dbd831_5621dfbf PS3, Line 7: maybe add vendor url?
File src/mainboard/hp/280_g2/bootblock.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/a158addb_bda71a29 PS3, Line 18: PAD_CFG_NF(GPP_E9, NONE, DEEP, NF1), /* USB_OC_LAN# */ : PAD_CFG_NF(GPP_E10, NONE, DEEP, NF1), /* USB3.0_OC_BACK# */ : PAD_CFG_NF(GPP_E11, NONE, DEEP, NF1), /* USB_OC_REAR2# */ : PAD_CFG_NF(GPP_E12, NONE, DEEP, NF1), /* USB_OC_FRONT1# */ : PAD_CFG_NF(GPP_F15, NONE, DEEP, NF1), /* USB_OC_FRONT2# */ : PAD_CFG_GPI(GPP_G1, NONE, PLTRST), /* LPT_DET# */ : PAD_CFG_GPO(GPP_G2, 0, PLTRST), /* AUD_AMP_ON# */ : are they needed in bootblock?
File src/mainboard/hp/280_g2/devicetree.cb:
https://review.coreboot.org/c/coreboot/+/48386/comment/d28b8d2f_dc75f761 PS3, Line 8: register "PmConfigSlpS3MinAssert" = "SLP_S3_MIN_ASSERT_50MS" : register "PmConfigSlpS4MinAssert" = "SLP_S4_MIN_ASSERT_4S" : register "PmConfigSlpSusMinAssert" = "SLP_SUS_MIN_ASSERT_4S" : register "PmConfigSlpAMinAssert" = "SLP_A_MIN_ASSERT_2S" : register "PmConfigPwrCycDur" = "RESET_POWER_CYCLE_4S" : could be moved to pmc
File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/d4a99456_3dc84093 PS3, Line 40: /* These settings are most likely useless if using a release build of FSP */ : mem_cfg->PcdDebugInterfaceFlags = 2; /* Enable UART */ : mem_cfg->PcdSerialIoUartNumber = 2; /* Use UART #2 */ : mem_cfg->PcdSerialDebugBaudRate = 7; /* 115200 baud */ : mem_cfg->PcdSerialDebugLevel = 3; /* Log <= Info */ : nit: these match KBL fsp defaults
https://review.coreboot.org/c/coreboot/+/48386/comment/50a535ce_d4f3e095 PS3, Line 50: RealtimeMemoryTiming only effective when SaOcSupport=1
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 3:
(7 comments)
File src/mainboard/hp/280_g2/Kconfig:
https://review.coreboot.org/c/coreboot/+/48386/comment/0fdd638d_50035728 PS3, Line 18:
for serial via superio, you'd need `select DRIVERS_UART_8250IO`
Yeah, and also initialise the Super I/O UARTs in bootblock, and with a proper Super I/O driver. The Super I/O on my board doesn't have any UARTs, though, so I can't test.
https://review.coreboot.org/c/coreboot/+/48386/comment/70ac752b_3626c1fd PS3, Line 41:
add a decent default for CBFS_SIZE?
The default value (2 MiB) is decent enough. Reflashing the whole BIOS region on this board takes a while
File src/mainboard/hp/280_g2/board_info.txt:
https://review.coreboot.org/c/coreboot/+/48386/comment/217c856c_779fb1a4 PS3, Line 7:
maybe add vendor url?
https://support.hp.com/us-en/document/c04955444
(will add later)
File src/mainboard/hp/280_g2/bootblock.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/6f790f16_f2b3aae4 PS3, Line 18: PAD_CFG_NF(GPP_E9, NONE, DEEP, NF1), /* USB_OC_LAN# */ : PAD_CFG_NF(GPP_E10, NONE, DEEP, NF1), /* USB3.0_OC_BACK# */ : PAD_CFG_NF(GPP_E11, NONE, DEEP, NF1), /* USB_OC_REAR2# */ : PAD_CFG_NF(GPP_E12, NONE, DEEP, NF1), /* USB_OC_FRONT1# */ : PAD_CFG_NF(GPP_F15, NONE, DEEP, NF1), /* USB_OC_FRONT2# */ : PAD_CFG_GPI(GPP_G1, NONE, PLTRST), /* LPT_DET# */ : PAD_CFG_GPO(GPP_G2, 0, PLTRST), /* AUD_AMP_ON# */ :
are they needed in bootblock?
They're not required in bootblock, but I prefer to configure all GPIOs in one go. Did you notice that there isn't any ramstage GPIO table? 😄
File src/mainboard/hp/280_g2/devicetree.cb:
https://review.coreboot.org/c/coreboot/+/48386/comment/2f125396_0f5e47a9 PS3, Line 8: register "PmConfigSlpS3MinAssert" = "SLP_S3_MIN_ASSERT_50MS" : register "PmConfigSlpS4MinAssert" = "SLP_S4_MIN_ASSERT_4S" : register "PmConfigSlpSusMinAssert" = "SLP_SUS_MIN_ASSERT_4S" : register "PmConfigSlpAMinAssert" = "SLP_A_MIN_ASSERT_2S" : register "PmConfigPwrCycDur" = "RESET_POWER_CYCLE_4S" :
could be moved to pmc
Reminds me I should check if these need to be adjusted
File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/b9204ce8_e0b5adc8 PS3, Line 40: /* These settings are most likely useless if using a release build of FSP */ : mem_cfg->PcdDebugInterfaceFlags = 2; /* Enable UART */ : mem_cfg->PcdSerialIoUartNumber = 2; /* Use UART #2 */ : mem_cfg->PcdSerialDebugBaudRate = 7; /* 115200 baud */ : mem_cfg->PcdSerialDebugLevel = 3; /* Log <= Info */ :
nit: these match KBL fsp defaults
I don't like relying on FSP defaults
https://review.coreboot.org/c/coreboot/+/48386/comment/86fa00f8_410b209d PS3, Line 50: RealtimeMemoryTiming
only effective when SaOcSupport=1
Hmm, good point. I'll revise
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Hello build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth, Arthur Heymans, Michael Niewöhner, Patrick Rudolph,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/48386
to look at the new patch set (#4).
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
mb/hp/280_g2: Add new mainboard
This is a µATX mainboard with a LGA1151 socket and two DDR4 DIMM slots.
There are two possible BOM configurations: Sid has no legacy devices, whereas Manny provides two serial ports, a parallel port, a PCI slot and PS/2 keyboard/mouse connectors. These boards also have different Super I/O models: Manny uses an ITE IT8625E, whereas legacy-free Sid comes with an ITE IT8656E instead.
This coreboot port has been done using a Sid board, thus support for Manny-specific features is missing. Booting should still be possible, though: none of these legacy features is essential.
The board has an unpopulated 6-pin header, wired to PCH UART 2. This can be used to retrieve coreboot logs.
Working: - Both DIMM slots - PCH SerialIO UART 2 to get coreboot logs - Rear USB ports - Realtek RTL8111 GbE NIC - Integrated graphics on DVI with libgfxinit - At least one SATA port - Flashing internally with flashrom - S3 suspend/resume - SeaBIOS and TianoCore to boot Arch Linux - VBT
Untested: - Audio - VGA - Front USB headers - Non-Linux OSes - PCI slot - IT8625E peripherals: serial, parallel and PS/2 ports
Change-Id: Iadf11c187307a24b15039a5a716737d9d74944e6 Signed-off-by: Angel Pons th3fanbus@gmail.com --- A src/mainboard/hp/280_g2/Kconfig A src/mainboard/hp/280_g2/Kconfig.name A src/mainboard/hp/280_g2/Makefile.inc A src/mainboard/hp/280_g2/acpi/ec.asl A src/mainboard/hp/280_g2/acpi/superio.asl A src/mainboard/hp/280_g2/board_info.txt A src/mainboard/hp/280_g2/bootblock.c A src/mainboard/hp/280_g2/data.vbt A src/mainboard/hp/280_g2/devicetree.cb A src/mainboard/hp/280_g2/dsdt.asl A src/mainboard/hp/280_g2/gma-mainboard.ads A src/mainboard/hp/280_g2/hda_verb.c A src/mainboard/hp/280_g2/romstage.c 13 files changed, 425 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/86/48386/4
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 3:
(3 comments)
File src/mainboard/hp/280_g2/board_info.txt:
https://review.coreboot.org/c/coreboot/+/48386/comment/cb08c7fa_26696181 PS3, Line 7:
Done
File src/mainboard/hp/280_g2/devicetree.cb:
https://review.coreboot.org/c/coreboot/+/48386/comment/019080be_6728e879 PS3, Line 8: register "PmConfigSlpS3MinAssert" = "SLP_S3_MIN_ASSERT_50MS" : register "PmConfigSlpS4MinAssert" = "SLP_S4_MIN_ASSERT_4S" : register "PmConfigSlpSusMinAssert" = "SLP_SUS_MIN_ASSERT_4S" : register "PmConfigSlpAMinAssert" = "SLP_A_MIN_ASSERT_2S" : register "PmConfigPwrCycDur" = "RESET_POWER_CYCLE_4S" :
Reminds me I should check if these need to be adjusted
Done
File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/87133c44_7e26c0c1 PS3, Line 50: RealtimeMemoryTiming
Hmm, good point. […]
Done
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 4:
(1 comment)
File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/89d5e2c4_4237b840 PS4, Line 18: FSP_M_CONFIG *const mem_cfg = &mupd->FspmConfig; need consistent spacing around '*' (ctx:WxV)
Attention is currently required from: Nico Huber, Angel Pons, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Paul Menzel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 4:
(3 comments)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/2db41264_da054a90 PS4, Line 25: - Both DIMM slots It’d be great if you documented the exact part number of the used modules.
https://review.coreboot.org/c/coreboot/+/48386/comment/b7f466d4_2456c18b PS4, Line 33: - SeaBIOS and TianoCore to boot Arch Linux Could you please add the versions?
Patchset:
PS4: Very nice Intel Skylake system. Thank you for making the port.
Attention is currently required from: Nico Huber, Angel Pons, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Paul Menzel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 4: Code-Review+1
Attention is currently required from: Nico Huber, Angel Pons, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Hello build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth, Paul Menzel, Arthur Heymans, Michael Niewöhner, Patrick Rudolph,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/48386
to look at the new patch set (#5).
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
mb/hp/280_g2: Add new mainboard
This is a µATX mainboard with a LGA1151 socket and two DDR4 DIMM slots.
There are two possible BOM configurations: Sid has no legacy devices, whereas Manny provides two serial ports, a parallel port, a PCI slot and PS/2 keyboard/mouse connectors. These boards also have different Super I/O models: Manny uses an ITE IT8625E, whereas legacy-free Sid comes with an ITE IT8656E instead.
This coreboot port has been done using a Sid board, thus support for Manny-specific features is missing. Booting should still be possible, though: none of these legacy features is essential.
The board has an unpopulated 6-pin header, wired to PCH UART 2. This can be used to retrieve coreboot logs.
Working: - Both DIMM slots (Micron CT4G4DFS8213.8FA11, Hynix HMA851U6AFR6N-UH) - PCH SerialIO UART 2 to get coreboot logs - Rear USB ports - Realtek RTL8111 GbE NIC - Integrated graphics on DVI with libgfxinit - At least one SATA port - Flashing internally with flashrom - S3 suspend/resume - VBT - SeaBIOS 1.14 to boot Arch Linux (kernel linux-5.10.15.arch1-1)
Untested: - Audio - VGA: Linux complains about DDI E not having any lanes, need to check - Front USB headers - Non-Linux OSes - PCI slot - IT8625E peripherals: serial, parallel and PS/2 ports
Change-Id: Iadf11c187307a24b15039a5a716737d9d74944e6 Signed-off-by: Angel Pons th3fanbus@gmail.com --- A src/mainboard/hp/280_g2/Kconfig A src/mainboard/hp/280_g2/Kconfig.name A src/mainboard/hp/280_g2/Makefile.inc A src/mainboard/hp/280_g2/acpi/ec.asl A src/mainboard/hp/280_g2/acpi/superio.asl A src/mainboard/hp/280_g2/board_info.txt A src/mainboard/hp/280_g2/bootblock.c A src/mainboard/hp/280_g2/data.vbt A src/mainboard/hp/280_g2/devicetree.cb A src/mainboard/hp/280_g2/dsdt.asl A src/mainboard/hp/280_g2/gma-mainboard.ads A src/mainboard/hp/280_g2/hda_verb.c A src/mainboard/hp/280_g2/romstage.c 13 files changed, 425 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/86/48386/5
Attention is currently required from: Nico Huber, Paul Menzel, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 4:
(2 comments)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/341b11f4_a6aa7b07 PS4, Line 25: - Both DIMM slots
It’d be great if you documented the exact part number of the used modules.
Done
https://review.coreboot.org/c/coreboot/+/48386/comment/06bc1d2a_494c2f21 PS4, Line 33: - SeaBIOS and TianoCore to boot Arch Linux
Could you please add the versions?
Done
Attention is currently required from: Nico Huber, Paul Menzel, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 5:
(1 comment)
File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/93d93793_088a7920 PS5, Line 18: FSP_M_CONFIG *const mem_cfg = &mupd->FspmConfig; need consistent spacing around '*' (ctx:WxV)
Attention is currently required from: Nico Huber, Paul Menzel, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 5:
(1 comment)
File src/mainboard/hp/280_g2/Kconfig:
https://review.coreboot.org/c/coreboot/+/48386/comment/0017c3c5_38ff4200 PS3, Line 41:
The default value (2 MiB) is decent enough. […]
Ack
Attention is currently required from: Nico Huber, Paul Menzel, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 6:
(1 comment)
File src/mainboard/hp/280_g2/romstage.c:
https://review.coreboot.org/c/coreboot/+/48386/comment/d67f3c16_426ac37e PS6, Line 18: FSP_M_CONFIG *const mem_cfg = &mupd->FspmConfig; need consistent spacing around '*' (ctx:WxV)
Attention is currently required from: Nico Huber, Angel Pons, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Paul Menzel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 6: Code-Review+1
Attention is currently required from: Nico Huber, Angel Pons, Arthur Heymans, Patrick Rudolph. Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 6: Code-Review+2
Attention is currently required from: Nico Huber, Angel Pons, Arthur Heymans, Patrick Rudolph. Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 6:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/2c1c4c5b_bbccc520 PS6, Line 38: - VGA: Linux complains about DDI E not having any lanes, need to check sounds like displayport, not vga. can you provide the full error message, please?
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 6:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/0669173c_e102bbbc PS6, Line 38: - VGA: Linux complains about DDI E not having any lanes, need to check
sounds like displayport, not vga. […]
VGA is wired to an active converter chip. Let me try something.
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 6:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/586e4cdb_f08a23fd PS6, Line 38: - VGA: Linux complains about DDI E not having any lanes, need to check
VGA is wired to an active converter chip. Let me try something.
libgfxinit detects the display, but there's no video output
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 6:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/2bb8d037_78b92bc5 PS6, Line 38: - VGA: Linux complains about DDI E not having any lanes, need to check
libgfxinit detects the display, but there's no video output
[ 2.594127] ------------[ cut here ]------------ [ 2.594128] i915 0000:00:02.0: Not enough lanes (0) for DP on [ENCODER:82:DDI E] [ 2.594191] WARNING: CPU: 1 PID: 219 at drivers/gpu/drm/i915/display/intel_dp.c:7764 intel_dp_init_connector+0xc9b/0xf30 [i915] [ 2.594201] Modules linked in: i915(+) x86_pkg_temp_thermal intel_powerclamp snd_hda_intel snd_intel_dspcfg soundwire_intel soundwire_generic_allocation kvm_intel soundwire_cadence rfkill snd_hda_codec kvm snd_hda_core snd_hwdep soundwire_bus snd_soc_core snd_compress irqbypass crct10dif_pclmul iTCO_wdt crc32_pclmul ghash_clmulni_intel ac97_bus joydev coretemp intel_pmc_bxt snd_pcm_dmaengine video mei_hdcp iTCO_vendor_support i2c_algo_bit ee1004 nls_iso8859_1 drm_kms_helper aesni_intel vfat crypto_simd fat r8169 snd_pcm cryptd intel_rapl_msr glue_helper psmouse rapl realtek intel_cstate mdio_devres intel_uncore snd_timer snd intel_th_gth i2c_i801 intel_th_pci mei_me usbhid libphy cec serio_raw intel_th soundcore i2c_smbus pcspkr processor_thermal_device intel_gtt mac_hid coreboot_table intel_rapl_common syscopyarea sysfillrect mei sysimgblt int340x_thermal_zone intel_pch_thermal fb_sys_fops intel_soc_dts_iosf drm fuse agpgart bpf_preload ip_tables x_tables ext4 crc32c_generic crc16 mbcache [ 2.594240] jbd2 crc32c_intel xhci_pci xhci_pci_renesas lz4hc lz4hc_compress [ 2.594247] CPU: 1 PID: 219 Comm: systemd-udevd Not tainted 5.10.15-arch1-1 #1 [ 2.594248] Hardware name: HP 280 G2/280 G2, BIOS 4.13-2091-g979070c018-dirty 02/15/2021 [ 2.594291] RIP: 0010:intel_dp_init_connector+0xc9b/0xf30 [i915] [ 2.594293] Code: 8b 67 50 4d 85 e4 75 03 4c 8b 27 e8 8f 52 1d d8 4d 89 f1 41 89 e8 31 c9 48 89 c6 4c 89 e2 48 c7 c7 d0 62 d6 c0 e8 e7 f0 54 d8 <0f> 0b 45 31 e4 e9 26 f9 ff ff 41 bf ff ff ff ff e9 88 fd ff ff 48 [ 2.594294] RSP: 0018:ffffb27ec03df890 EFLAGS: 00010286 [ 2.594295] RAX: 0000000000000000 RBX: ffff9087cc0d0000 RCX: ffff908936d18bb8 [ 2.594296] RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ffff908936d18bb0 [ 2.594296] RBP: 0000000000000052 R08: 0000000000000000 R09: ffffb27ec03df6c8 [ 2.594297] R10: ffffb27ec03df6c0 R11: ffffffff9a2cb228 R12: ffff9087c0cfc410 [ 2.594298] R13: ffff9087cc859000 R14: ffff9087c9da1ac8 R15: ffff9087cc0d0000 [ 2.594299] FS: 00007f3921055ec0(0000) GS:ffff908936d00000(0000) knlGS:0000000000000000 [ 2.594299] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2.594300] CR2: 00007f427b3fcf10 CR3: 0000000103710004 CR4: 00000000002706e0 [ 2.594301] Call Trace: [ 2.594345] ? intel_connector_alloc+0x3b/0x60 [i915] [ 2.594348] ? kmem_cache_alloc_trace+0x15a/0x290 [ 2.594390] intel_ddi_init+0x599/0x870 [i915] [ 2.594433] intel_modeset_init_nogem+0x160b/0x1d60 [i915] [ 2.594467] ? fwtable_write32+0x4c/0x240 [i915] [ 2.594498] ? intel_irq_postinstall+0x373/0x640 [i915] [ 2.594529] i915_driver_probe+0x5ca/0xca0 [i915] [ 2.594561] i915_pci_probe+0x52/0x150 [i915] [ 2.594564] local_pci_probe+0x42/0x80 [ 2.594566] ? pci_match_device+0xd7/0x100 [ 2.594567] pci_device_probe+0xfa/0x1b0 [ 2.594569] really_probe+0xf2/0x440 [ 2.594571] driver_probe_device+0xe1/0x150 [ 2.594572] device_driver_attach+0xa1/0xb0 [ 2.594574] __driver_attach+0x8a/0x150 [ 2.594575] ? device_driver_attach+0xb0/0xb0 [ 2.594576] ? device_driver_attach+0xb0/0xb0 [ 2.594577] bus_for_each_dev+0x89/0xd0 [ 2.594578] bus_add_driver+0x12b/0x1e0 [ 2.594580] driver_register+0x8b/0xe0 [ 2.594581] ? 0xffffffffc0e5c000 [ 2.594616] i915_init+0x5d/0x70 [i915] [ 2.594619] do_one_initcall+0x57/0x220 [ 2.594622] do_init_module+0x5c/0x260 [ 2.594624] load_module+0x22df/0x24a0 [ 2.594627] __do_sys_init_module+0x136/0x1b0 [ 2.594630] do_syscall_64+0x33/0x40 [ 2.594632] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 2.594633] RIP: 0033:0x7f392195fefe [ 2.594635] Code: 48 8b 0d 75 0f 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 42 0f 0c 00 f7 d8 64 89 01 48 [ 2.594636] RSP: 002b:00007ffda23f4fb8 EFLAGS: 00000246 ORIG_RAX: 00000000000000af [ 2.594637] RAX: ffffffffffffffda RBX: 0000564c186a46b0 RCX: 00007f392195fefe [ 2.594637] RDX: 0000564c18697bc0 RSI: 0000000000509f11 RDI: 0000564c18f6c8a0 [ 2.594638] RBP: 0000564c18f6c8a0 R08: 0000564c18634300 R09: 6f4d7ea902000000 [ 2.594639] R10: 000056497ca2c914 R11: 0000000000000246 R12: 0000564c18697bc0 [ 2.594639] R13: 000000000000000b R14: 0000564c186988d0 R15: 0000564c186a46b0 [ 2.594641] ---[ end trace 90b94a6b4b9f313d ]---
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 6:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/9c1c27de_09d709bf PS6, Line 38: - VGA: Linux complains about DDI E not having any lanes, need to check
[ 2.594127] ------------[ cut here ]------------ […]
Looks like the lane wiring is cursed: https://imgur.com/austW3O.png
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Hello build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth, Paul Menzel, Arthur Heymans, Michael Niewöhner, Patrick Rudolph,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/48386
to look at the new patch set (#7).
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
mb/hp/280_g2: Add new mainboard
This is a µATX mainboard with a LGA1151 socket and two DDR4 DIMM slots.
There are two possible BOM configurations: Sid has no legacy devices, whereas Manny provides two serial ports, a parallel port, a PCI slot and PS/2 keyboard/mouse connectors. These boards also have different Super I/O models: Manny uses an ITE IT8625E, whereas legacy-free Sid comes with an ITE IT8656E instead.
This coreboot port has been done using a Sid board, thus support for Manny-specific features is missing. Booting should still be possible, though: none of these legacy features is essential.
The board has an unpopulated 6-pin header, wired to PCH UART 2. This can be used to retrieve coreboot logs.
Working: - Both DIMM slots (Micron CT4G4DFS8213.8FA11, Hynix HMA851U6AFR6N-UH) - PCH SerialIO UART 2 to get coreboot logs - Rear USB ports - Realtek RTL8111 GbE NIC - Integrated graphics on DVI with libgfxinit - At least one SATA port - Flashing internally with flashrom - S3 suspend/resume - VBT - SeaBIOS 1.14 to boot Arch Linux (kernel linux-5.10.15.arch1-1)
Untested: - Audio - VGA: DP2VGA chip uses DDI E, and libgfxinit doesn't support DDI E yet - Front USB headers - Non-Linux OSes - PCI slot - IT8625E peripherals: serial, parallel and PS/2 ports
Change-Id: Iadf11c187307a24b15039a5a716737d9d74944e6 Signed-off-by: Angel Pons th3fanbus@gmail.com --- A src/mainboard/hp/280_g2/Kconfig A src/mainboard/hp/280_g2/Kconfig.name A src/mainboard/hp/280_g2/Makefile.inc A src/mainboard/hp/280_g2/acpi/ec.asl A src/mainboard/hp/280_g2/acpi/superio.asl A src/mainboard/hp/280_g2/board_info.txt A src/mainboard/hp/280_g2/bootblock.c A src/mainboard/hp/280_g2/data.vbt A src/mainboard/hp/280_g2/devicetree.cb A src/mainboard/hp/280_g2/dsdt.asl A src/mainboard/hp/280_g2/gma-mainboard.ads A src/mainboard/hp/280_g2/hda_verb.c A src/mainboard/hp/280_g2/romstage.c 13 files changed, 425 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/86/48386/7
Attention is currently required from: Nico Huber, Arthur Heymans, Michael Niewöhner, Patrick Rudolph. Angel Pons has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 7:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/7f13a96e_72a6f911 PS6, Line 38: - VGA: Linux complains about DDI E not having any lanes, need to check
Looks like the lane wiring is cursed: https://imgur.com/austW3O. […]
After talking with Nico about it, looks like libgfxinit doesn't support DDI E. Yet. Since this issue doesn't preclude booting, I'd rather get this port in and fix it later. I've updated the commit message to indicate it's about missing support in libgfxinit.
Attention is currently required from: Nico Huber, Angel Pons, Arthur Heymans, Patrick Rudolph. Michael Niewöhner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
Patch Set 7:
(1 comment)
Commit Message:
https://review.coreboot.org/c/coreboot/+/48386/comment/49585e2e_6ee1f9ca PS6, Line 38: - VGA: Linux complains about DDI E not having any lanes, need to check
After talking with Nico about it, looks like libgfxinit doesn't support DDI E. Yet. […]
sorry for my late response; sounds good to me
Angel Pons has submitted this change. ( https://review.coreboot.org/c/coreboot/+/48386 )
Change subject: mb/hp/280_g2: Add new mainboard ......................................................................
mb/hp/280_g2: Add new mainboard
This is a µATX mainboard with a LGA1151 socket and two DDR4 DIMM slots.
There are two possible BOM configurations: Sid has no legacy devices, whereas Manny provides two serial ports, a parallel port, a PCI slot and PS/2 keyboard/mouse connectors. These boards also have different Super I/O models: Manny uses an ITE IT8625E, whereas legacy-free Sid comes with an ITE IT8656E instead.
This coreboot port has been done using a Sid board, thus support for Manny-specific features is missing. Booting should still be possible, though: none of these legacy features is essential.
The board has an unpopulated 6-pin header, wired to PCH UART 2. This can be used to retrieve coreboot logs.
Working: - Both DIMM slots (Micron CT4G4DFS8213.8FA11, Hynix HMA851U6AFR6N-UH) - PCH SerialIO UART 2 to get coreboot logs - Rear USB ports - Realtek RTL8111 GbE NIC - Integrated graphics on DVI with libgfxinit - At least one SATA port - Flashing internally with flashrom - S3 suspend/resume - VBT - SeaBIOS 1.14 to boot Arch Linux (kernel linux-5.10.15.arch1-1)
Untested: - Audio - VGA: DP2VGA chip uses DDI E, and libgfxinit doesn't support DDI E yet - Front USB headers - Non-Linux OSes - PCI slot - IT8625E peripherals: serial, parallel and PS/2 ports
Change-Id: Iadf11c187307a24b15039a5a716737d9d74944e6 Signed-off-by: Angel Pons th3fanbus@gmail.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/48386 Reviewed-by: Paul Menzel paulepanter@users.sourceforge.net Reviewed-by: Michael Niewöhner foss@mniewoehner.de Tested-by: build bot (Jenkins) no-reply@coreboot.org --- A src/mainboard/hp/280_g2/Kconfig A src/mainboard/hp/280_g2/Kconfig.name A src/mainboard/hp/280_g2/Makefile.inc A src/mainboard/hp/280_g2/acpi/ec.asl A src/mainboard/hp/280_g2/acpi/superio.asl A src/mainboard/hp/280_g2/board_info.txt A src/mainboard/hp/280_g2/bootblock.c A src/mainboard/hp/280_g2/data.vbt A src/mainboard/hp/280_g2/devicetree.cb A src/mainboard/hp/280_g2/dsdt.asl A src/mainboard/hp/280_g2/gma-mainboard.ads A src/mainboard/hp/280_g2/hda_verb.c A src/mainboard/hp/280_g2/romstage.c 13 files changed, 425 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Paul Menzel: Looks good to me, but someone else must approve Michael Niewöhner: Looks good to me, approved
diff --git a/src/mainboard/hp/280_g2/Kconfig b/src/mainboard/hp/280_g2/Kconfig new file mode 100644 index 0000000..10f6828 --- /dev/null +++ b/src/mainboard/hp/280_g2/Kconfig @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: GPL-2.0-only + +if BOARD_HP_280_G2 + +config BOARD_SPECIFIC_OPTIONS + def_bool y + select BOARD_ROMSIZE_KB_8192 + select HAVE_ACPI_RESUME + select HAVE_ACPI_TABLES + select INTEL_GMA_HAVE_VBT + select INTEL_LPSS_UART_FOR_CONSOLE + select MAINBOARD_HAS_LIBGFXINIT + select SKYLAKE_SOC_PCH_H + select SOC_INTEL_COMMON_BLOCK_HDA_VERB + select SOC_INTEL_KABYLAKE + select SPD_READ_BY_WORD + select SUPERIO_ITE_COMMON_PRE_RAM + +config MAINBOARD_DIR + string + default "hp/280_g2" + +config MAINBOARD_PART_NUMBER + string + default "280 G2" + +config DIMM_MAX + int + default 2 + +config DIMM_SPD_SIZE + int + default 512 + +config UART_FOR_CONSOLE + int + default 2 + +config USE_LEGACY_8254_TIMER + default y + +endif diff --git a/src/mainboard/hp/280_g2/Kconfig.name b/src/mainboard/hp/280_g2/Kconfig.name new file mode 100644 index 0000000..74ddaf4 --- /dev/null +++ b/src/mainboard/hp/280_g2/Kconfig.name @@ -0,0 +1,2 @@ +config BOARD_HP_280_G2 + bool "280 G2" diff --git a/src/mainboard/hp/280_g2/Makefile.inc b/src/mainboard/hp/280_g2/Makefile.inc new file mode 100644 index 0000000..3c2a7c4 --- /dev/null +++ b/src/mainboard/hp/280_g2/Makefile.inc @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0-only + +bootblock-y += bootblock.c + +ramstage-y += hda_verb.c + +ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads diff --git a/src/mainboard/hp/280_g2/acpi/ec.asl b/src/mainboard/hp/280_g2/acpi/ec.asl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/mainboard/hp/280_g2/acpi/ec.asl diff --git a/src/mainboard/hp/280_g2/acpi/superio.asl b/src/mainboard/hp/280_g2/acpi/superio.asl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/mainboard/hp/280_g2/acpi/superio.asl diff --git a/src/mainboard/hp/280_g2/board_info.txt b/src/mainboard/hp/280_g2/board_info.txt new file mode 100644 index 0000000..b0e71e5 --- /dev/null +++ b/src/mainboard/hp/280_g2/board_info.txt @@ -0,0 +1,8 @@ +Vendor name: HP +Board name: 280 G2 +Category: desktop +Board URL: https://support.hp.com/us-en/document/c04955444 +ROM package: SOIC-8 +ROM protocol: SPI +ROM socketed: n +Flashrom support: y diff --git a/src/mainboard/hp/280_g2/bootblock.c b/src/mainboard/hp/280_g2/bootblock.c new file mode 100644 index 0000000..f42c3f2 --- /dev/null +++ b/src/mainboard/hp/280_g2/bootblock.c @@ -0,0 +1,103 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <bootblock_common.h> +#include <console/console.h> +#include <device/pnp_ops.h> +#include <gpio.h> +#include <soc/gpio.h> +#include <superio/ite/common/ite.h> +#include <types.h> + +static const struct pad_config gpio_table[] = { + PAD_CFG_NF(GPP_B14, DN_20K, PLTRST, NF1), /* SPKR */ + PAD_CFG_NF(GPP_C20, UP_20K, PLTRST, NF1), /* PCH_UART2_RXD */ + PAD_CFG_NF(GPP_C21, UP_20K, PLTRST, NF1), /* PCH_UART2_TXD */ + PAD_NC(GPP_C22, NONE), + PAD_CFG_GPI(GPP_C23, NONE, PLTRST), /* TODO: SIO PME# */ + PAD_CFG_NF(GPP_E8, NONE, DEEP, NF1), /* SATA_LED# */ + PAD_CFG_NF(GPP_E9, NONE, DEEP, NF1), /* USB_OC_LAN# */ + PAD_CFG_NF(GPP_E10, NONE, DEEP, NF1), /* USB3.0_OC_BACK# */ + PAD_CFG_NF(GPP_E11, NONE, DEEP, NF1), /* USB_OC_REAR2# */ + PAD_CFG_NF(GPP_E12, NONE, DEEP, NF1), /* USB_OC_FRONT1# */ + PAD_CFG_NF(GPP_F15, NONE, DEEP, NF1), /* USB_OC_FRONT2# */ + PAD_CFG_GPI(GPP_G1, NONE, PLTRST), /* LPT_DET# */ + PAD_CFG_GPO(GPP_G2, 0, PLTRST), /* AUD_AMP_ON# */ + PAD_CFG_GPO(GPP_G3, 0, PLTRST), /* W_DISABLE2# */ + PAD_CFG_GPI(GPP_G4, NONE, PLTRST), /* CLR_CMOS# */ + PAD_CFG_GPI(GPP_G5, NONE, PLTRST), /* CLR_PSWD# */ + PAD_CFG_GPI(GPP_G6, NONE, PLTRST), /* BOOT_BLOCK_EN# */ + PAD_CFG_GPI(GPP_G9, NONE, PLTRST), /* HOOD_SW_DET# */ + PAD_CFG_GPI(GPP_G12, NONE, PLTRST), /* FRONT_USB_DET1# */ + PAD_CFG_GPI(GPP_G13, NONE, PLTRST), /* FRONT_USB_DET2# */ + PAD_CFG_GPI(GPP_G14, NONE, PLTRST), /* FRONT_USB_DET3# */ + PAD_CFG_GPI(GPP_G16, NONE, PLTRST), /* F_AUDIO_DET# */ + PAD_CFG_GPI(GPP_G17, NONE, PLTRST), /* COMM_B_DET# */ + PAD_CFG_GPI_SCI(GPP_G21, NONE, DEEP, EDGE_SINGLE, INVERT), /* SPI_TPM_PIRQ# */ + PAD_CFG_GPI(GPP_H10, NONE, PLTRST), /* S_GPI_SKU0 */ + PAD_CFG_GPI(GPP_H15, NONE, PLTRST), /* BRD_REV0 */ + PAD_CFG_GPI(GPP_H16, NONE, PLTRST), /* BRD_REV1 */ + PAD_CFG_GPI(GPP_H17, NONE, PLTRST), /* BRD_REV2 */ + PAD_CFG_GPI(GPP_H18, NONE, PLTRST), /* S_GPI_SKU1 */ + PAD_CFG_NF(GPP_I2, NONE, PLTRST, NF1), /* DPD_HPD_R */ + PAD_CFG_NF(GPP_I3, NONE, PLTRST, NF1), /* DPE_HPD_R */ + PAD_CFG_NF(GPP_I9, NONE, PLTRST, NF1), /* DDPD_CTRLCLK */ + PAD_CFG_NF(GPP_I10, DN_20K, PLTRST, NF1), /* DDPD_CTRLDATA */ +}; + +static void mainboard_configure_super_io(void) +{ + const pnp_devfn_t dev = PNP_DEV(0x2e, 7); + + pnp_enter_conf_state(dev); + pnp_set_logical_device(dev); + + pnp_write_config(dev, 0x23, 0x59); + pnp_write_config(dev, 0x25, 0x10); + pnp_write_config(dev, 0x26, 0x04); + pnp_write_config(dev, 0x28, 0x08); + pnp_write_config(dev, 0x2a, 0x81); + pnp_write_config(dev, 0x71, 0x08); + pnp_write_config(dev, 0xc0, 0x00); + pnp_write_config(dev, 0xc1, 0x04); + pnp_write_config(dev, 0xc8, 0x00); + pnp_write_config(dev, 0xc9, 0x04); + pnp_write_config(dev, 0xcb, 0x08); + pnp_write_config(dev, 0xd5, 0x07); + pnp_write_config(dev, 0xf8, 0x12); + pnp_write_config(dev, 0xf9, 0x01); + + pnp_exit_conf_state(dev); +} + +void bootblock_mainboard_early_init(void) +{ + gpio_configure_pads(gpio_table, ARRAY_SIZE(gpio_table)); + + mainboard_configure_super_io(); +} + +void bootblock_mainboard_init(void) +{ + const gpio_t rev_gpios[] = { + GPP_H15, + GPP_H16, + GPP_H17, + }; + + const char *const rev_table[8] = { + [0] = "DB", + [1] = "Pre-SI", + [2] = "SI", + [3] = "PV", + [4] = "1.00 (SMVB)", + [5] = "1.10 (ECN1)", + [6] = "1.20 (ECN1)", + [7] = "1.30 (ECN1)", + }; + + const char *const brd_str = gpio_get(GPP_H10) ? "Sid" : "Manny"; + + const uint32_t brd_rev = gpio_base2_value(rev_gpios, ARRAY_SIZE(rev_gpios)); + + printk(BIOS_DEBUG, "Mainboard: %s rev %s\n", brd_str, rev_table[brd_rev]); +} diff --git a/src/mainboard/hp/280_g2/data.vbt b/src/mainboard/hp/280_g2/data.vbt new file mode 100644 index 0000000..d444f09 --- /dev/null +++ b/src/mainboard/hp/280_g2/data.vbt Binary files differ diff --git a/src/mainboard/hp/280_g2/devicetree.cb b/src/mainboard/hp/280_g2/devicetree.cb new file mode 100644 index 0000000..8784080 --- /dev/null +++ b/src/mainboard/hp/280_g2/devicetree.cb @@ -0,0 +1,144 @@ +# SPDX-License-Identifier: GPL-2.0-only + +chip soc/intel/skylake + register "common_soc_config" = "{ + .chipset_lockdown = CHIPSET_LOCKDOWN_COREBOOT, + }" + + register "SerialIoDevMode" = "{ + [PchSerialIoIndexUart2] = PchSerialIoSkipInit, /* Routed to debug header */ + }" + + register "eist_enable" = "1" + + device cpu_cluster 0 on + device lapic 0 on end + end + device domain 0 on + subsystemid 0x103c 0x2b5e inherit + device pci 00.0 on end # Host bridge + device pci 01.0 on end # PCIe graphics + device pci 02.0 on end # iGPU + device pci 04.0 on end # CPU Thermal + device pci 08.0 on end # GMM + device pci 14.0 on # xHCI + register "usb2_ports[0]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[1]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[2]" = "USB2_PORT_MID(OC4)" + register "usb2_ports[3]" = "USB2_PORT_MID(OC4)" + register "usb2_ports[4]" = "USB2_PORT_MID(OC2)" + register "usb2_ports[5]" = "USB2_PORT_MID(OC2)" + register "usb2_ports[6]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[7]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[8]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[9]" = "USB2_PORT_MID(OC0)" + register "usb2_ports[10]" = "USB2_PORT_MID(OC1)" + register "usb2_ports[11]" = "USB2_PORT_MID(OC1)" + register "usb2_ports[12]" = "USB2_PORT_MID(OC_SKIP)" + register "usb2_ports[13]" = "USB2_PORT_MID(OC_SKIP)" + + register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC0)" + register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC0)" + register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC3)" + register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC3)" + register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC1)" + register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC1)" + register "usb3_ports[6]" = "USB3_PORT_DEFAULT(OC_SKIP)" + register "usb3_ports[7]" = "USB3_PORT_DEFAULT(OC_SKIP)" + register "usb3_ports[8]" = "USB3_PORT_DEFAULT(OC_SKIP)" + register "usb3_ports[9]" = "USB3_PORT_DEFAULT(OC_SKIP)" + end + device pci 14.1 off end # USB OTG + device pci 14.2 on end # PCH Thermal + device pci 15.0 off end # I2C #0 + device pci 15.1 off end # I2C #1 + device pci 15.2 off end # I2C #2 + device pci 15.3 off end # I2C #3 + device pci 16.0 on end # MEI #1 + device pci 16.1 off end # MEI #2 + device pci 16.2 off end # ME IDE-R + device pci 16.3 off end # ME KT + device pci 16.4 off end # MEI #3 + device pci 17.0 on # SATA + register "SataMode" = "SATA_AHCI" + register "SataSalpSupport" = "1" + register "SataPortsEnable" = "{ + [0] = 1, + [1] = 1, + [2] = 1, + [3] = 1, + }" + register "SataPortsHotPlug" = "{ + [0] = 1, + [1] = 1, + [2] = 1, + [3] = 1, + }" + # DevSlp not supported + + # Enable test mode for SATA margining + register "SataTestMode" = "1" + end + device pci 19.0 on end # UART #2 + device pci 1c.0 off end # RP #1 + device pci 1c.1 off end # RP #2 + device pci 1c.2 off end # RP #3 + device pci 1c.3 off end # RP #4 + device pci 1c.4 on # RP #5: IT8893E PCI Bridge + register "PcieRpEnable[4]" = "1" + register "PcieRpLtrEnable[4]" = "1" + register "PcieRpAdvancedErrorReporting[4]" = "1" + register "PcieRpClkSrcNumber[4]" = "11" + end + device pci 1c.5 on # RP #6: PCIe x1 slot + register "PcieRpEnable[5]" = "1" + register "PcieRpHotPlug[5]" = "1" + register "PcieRpLtrEnable[5]" = "1" + register "PcieRpAdvancedErrorReporting[5]" = "1" + register "PcieRpClkSrcNumber[5]" = "6" + end + device pci 1c.6 on # RP #7: RTL8111 GbE NIC + register "PcieRpEnable[6]" = "1" + register "PcieRpLtrEnable[6]" = "1" + register "PcieRpAdvancedErrorReporting[6]" = "1" + register "PcieRpClkSrcNumber[6]" = "10" + end + device pci 1c.7 on # RP #8: M.2 2230 slot + register "PcieRpEnable[7]" = "1" + register "PcieRpHotPlug[7]" = "1" + register "PcieRpLtrEnable[7]" = "1" + register "PcieRpAdvancedErrorReporting[7]" = "1" + register "PcieRpClkSrcNumber[7]" = "12" + end + device pci 1d.0 off end # RP #9 + device pci 1d.1 off end # RP #10 + device pci 1d.2 off end # RP #11 + device pci 1d.3 off end # RP #12 + device pci 1e.0 off end # UART #0 + device pci 1e.1 off end # UART #1 + device pci 1e.2 off end # GSPI #0 + device pci 1e.3 off end # GSPI #1 + device pci 1f.0 on # LPC bridge + register "serirq_mode" = "SERIRQ_CONTINUOUS" + + # FIXME: Missing Super I/O HWM config + register "gen1_dec" = "0x000c0291" + end + device pci 1f.1 on end # P2SB + device pci 1f.2 on # PMC + register "PmConfigSlpS3MinAssert" = "SLP_S3_MIN_ASSERT_50MS" + register "PmConfigSlpS4MinAssert" = "SLP_S4_MIN_ASSERT_4S" + register "PmConfigSlpSusMinAssert" = "SLP_SUS_MIN_ASSERT_4S" + register "PmConfigSlpAMinAssert" = "SLP_A_MIN_ASSERT_2S" + register "PmConfigPwrCycDur" = "RESET_POWER_CYCLE_4S" + end + device pci 1f.3 on end # Intel HDA + device pci 1f.4 on end # SMBus + device pci 1f.5 on end # SPI + device pci 1f.6 off end # Intel GbE + device pci 1f.7 on # Trace Hub + register "TraceHubMemReg0Size" = "2" + register "TraceHubMemReg1Size" = "2" + end + end +end diff --git a/src/mainboard/hp/280_g2/dsdt.asl b/src/mainboard/hp/280_g2/dsdt.asl new file mode 100644 index 0000000..26ebbe0 --- /dev/null +++ b/src/mainboard/hp/280_g2/dsdt.asl @@ -0,0 +1,26 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <acpi/acpi.h> + +DefinitionBlock( + "dsdt.aml", + "DSDT", + ACPI_DSDT_REV_2, + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20110725 +) +{ + #include <acpi/dsdt_top.asl> + + #include <cpu/intel/common/acpi/cpu.asl> + #include <soc/intel/common/block/acpi/acpi/platform.asl> + #include <soc/intel/skylake/acpi/globalnvs.asl> + + Device (_SB.PCI0) { + #include <soc/intel/skylake/acpi/systemagent.asl> + #include <soc/intel/skylake/acpi/pch.asl> + } + + #include <southbridge/intel/common/acpi/sleepstates.asl> +} diff --git a/src/mainboard/hp/280_g2/gma-mainboard.ads b/src/mainboard/hp/280_g2/gma-mainboard.ads new file mode 100644 index 0000000..735fe26 --- /dev/null +++ b/src/mainboard/hp/280_g2/gma-mainboard.ads @@ -0,0 +1,16 @@ +-- SPDX-License-Identifier: GPL-2.0-or-later + +with HW.GFX.GMA; +with HW.GFX.GMA.Display_Probing; + +use HW.GFX.GMA; +use HW.GFX.GMA.Display_Probing; + +private package GMA.Mainboard is + + ports : constant Port_List := + (HDMI3, -- DVI-I + eDP, -- VGA + others => Disabled); + +end GMA.Mainboard; diff --git a/src/mainboard/hp/280_g2/hda_verb.c b/src/mainboard/hp/280_g2/hda_verb.c new file mode 100644 index 0000000..3ed214f --- /dev/null +++ b/src/mainboard/hp/280_g2/hda_verb.c @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <device/azalia_device.h> + +const u32 cim_verb_data[] = { + /* coreboot specific header */ + 0x10ec0221, /* Codec Vendor / Device ID: Realtek ALC221 */ + 0x103c2b5e, /* Subsystem ID */ + 11, /* Number of jacks */ + AZALIA_SUBVENDOR(0, 0x103c2b5e), + AZALIA_PIN_CFG(0, 0x12, 0x40000000), + AZALIA_PIN_CFG(0, 0x14, 0x01014010), + AZALIA_PIN_CFG(0, 0x17, 0x90170120), + AZALIA_PIN_CFG(0, 0x18, 0x411111f0), + AZALIA_PIN_CFG(0, 0x19, 0x411111f0), + AZALIA_PIN_CFG(0, 0x1a, 0x01813030), + AZALIA_PIN_CFG(0, 0x1b, 0x411111f0), + AZALIA_PIN_CFG(0, 0x1d, 0x4044c301), + AZALIA_PIN_CFG(0, 0x1e, 0x411111f0), + AZALIA_PIN_CFG(0, 0x21, 0x0221101f), +}; + +const u32 pc_beep_verbs[] = {}; + +AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/hp/280_g2/romstage.c b/src/mainboard/hp/280_g2/romstage.c new file mode 100644 index 0000000..8f32d24 --- /dev/null +++ b/src/mainboard/hp/280_g2/romstage.c @@ -0,0 +1,52 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <assert.h> +#include <fsp/soc_binding.h> +#include <soc/romstage.h> +#include <spd_bin.h> +#include <string.h> +#include <types.h> + +/* Rcomp resistors are located on the CPU package */ +static const u16 rcomp_resistors[3] = { 121, 75, 100 }; + +/* Rcomp targets for RdOdt, WrDS, WrDSCmd, WrDSCtl, WrDSClk */ +static const u16 rcomp_targets[5] = { 50, 26, 20, 20, 26 }; + +void mainboard_memory_init_params(FSPM_UPD *mupd) +{ + FSP_M_CONFIG *const mem_cfg = &mupd->FspmConfig; + + struct spd_block blk = { + .addr_map = { 0x51, 0x50 }, + }; + + get_spd_smbus(&blk); + + mem_cfg->DqPinsInterleaved = true; + + mem_cfg->UserBd = BOARD_TYPE_DESKTOP; + + mem_cfg->MemorySpdDataLen = blk.len; + mem_cfg->MemorySpdPtr00 = (u32)blk.spd_array[0]; + mem_cfg->MemorySpdPtr10 = (u32)blk.spd_array[1]; + + assert(sizeof(mem_cfg->RcompResistor) == sizeof(rcomp_resistors)); + assert(sizeof(mem_cfg->RcompTarget) == sizeof(rcomp_targets)); + + memcpy(mem_cfg->RcompResistor, rcomp_resistors, sizeof(mem_cfg->RcompResistor)); + memcpy(mem_cfg->RcompTarget, rcomp_targets, sizeof(mem_cfg->RcompTarget)); + + /* These settings are most likely useless if using a release build of FSP */ + mem_cfg->PcdDebugInterfaceFlags = 2; /* Enable UART */ + mem_cfg->PcdSerialIoUartNumber = 2; /* Use UART #2 */ + mem_cfg->PcdSerialDebugBaudRate = 7; /* 115200 baud */ + mem_cfg->PcdSerialDebugLevel = 3; /* Log <= Info */ + + /* Trace Hub */ + mem_cfg->PcdDebugInterfaceFlags |= 1 << 5; + + /* Allow changing memory timings after MRC is done */ + mem_cfg->RealtimeMemoryTiming = 1; + mem_cfg->SaOcSupport = 1; +}