From d8eadffc7b1792efeab5cac714fd369c558734a7 Mon Sep 17 00:00:00 2001 From: Angel Pons Date: Fri, 14 Dec 2018 19:24:44 +0100 Subject: [PATCH 01/46] superiotool: add IT8772F register dump Values as per "IT8772E Preliminary Specification V0.4 (For F Version)". Some values are unclear on this document, but is the only one I have. Change-Id: I6d74984f453c47d6ec71963a7dcab961a22a5964 Signed-off-by: Angel Pons Reviewed-on: https://review.coreboot.org/c/coreboot/+/30224 Tested-by: build bot (Jenkins) Reviewed-by: Felix Held --- util/superiotool/ite.c | 43 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/util/superiotool/ite.c b/util/superiotool/ite.c index 2e21e80f4a..4e82845b39 100644 --- a/util/superiotool/ite.c +++ b/util/superiotool/ite.c @@ -942,6 +942,49 @@ static const struct superio_registers reg_table[] = { {0x8761, "IT8761E", { {EOT}}}, {0x8772, "IT8772F", { + {NOLDN, NULL, + {0x20,0x21,0x22,0x23,0x24,0x2e,0x2f,EOT}, + {0x87,0x72,0x02,0x00,0x00,0x00,0x00,EOT}}, + {0x1, "COM1", + {0x30,0x60,0x61,0x70,0xf0,0xf1,EOT}, + {0x00,0x03,0xf8,0x04,0x00,0x50,EOT}}, + {0x4, "Environment controller", + {0x30,0x60,0x61,0x62,0x63,0x70,0xf0,0xf1,0xf2, + 0xf3,0xf4,0xf5,0xf6,0xf9,0xfa,0xfb,EOT}, + {0x00,0x02,0x90,0x02,0x30,0x09,0x00,0x00,0x00, + 0x00,0x00,MISC,MISC,MISC,MISC,MISC,EOT}}, + {0x5, "Keyboard", + {0x30,0x60,0x61,0x62,0x63,0x70,0x71,0xf0,EOT}, + {0x01,0x00,0x60,0x00,0x64,0x01,0x02,0x08,EOT}}, + {0x6, "Mouse", + {0x30,0x70,0x71,0xf0,EOT}, + {0x00,0x0c,0x02,0x00,EOT}}, + {0x7, "GPIO", + {0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c, /* 25 .. 2c */ + 0x60,0x61,0x62,0x63, /* 60 .. 64 */ + 0x70,0x71,0x72,0x73,0x74, /* 70 .. 74 */ + 0xb0,0xb1,0xb2,0xb3,0xb4, /* b0 .. b4 */ + 0xb8,0xb9,0xba,0xbb,0xbc,0xbd, /* b8 .. bd */ + 0xc0,0xc1,0xc2,0xc3,0xc4, /* c0 .. c4 */ + 0xc8,0xc9,0xca,0xcb,0xcc,0xcd, /* c8 .. cd */ + 0xe0,0xe1,0xe2,0xe3,0xe4,0xe9, /* e0 .. e9 */ + 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5, /* f0 .. f5 */ + 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb, /* f6 .. fb */ + EOT}, + {0x00,0xf3,0x00,0x00,0x00,0x00,MISC,0x01, /* 25 .. 2c */ + 0x00,0x00,0x00,0x00, /* 60 .. 64 */ + 0x00,0x00,0x20,0x38,0x00, /* 70 .. 74 */ + 0x00,0x00,0x00,0x00,0x00, /* b0 .. b4 */ + 0x20,0x00,0x00,0x00,0x00,0x00, /* b8 .. bd */ + 0x01,0x00,0x00,0x40,0x00, /* c0 .. c4 */ + 0x01,0x00,0x00,0x00,0x00,0x00, /* c8 .. cd */ + 0x00,0x00,0x00,0x00,0x00,MISC, /* e0 .. e9 */ + 0x00,0x00,0x00,0x00,0x00,0x00, /* f0 .. f6 */ + 0x00,0x00,0x00,0x00,0x00,0x00, /* f6 .. fb */ + EOT}}, + {0xa, "Consumer IR", + {0x30,0x60,0x61,0x70,0xf0,EOT}, + {0x00,0x03,0x10,0x0b,0x06,EOT}}, {EOT}}}, {0x8780, "IT8780F", { {EOT}}}, From 27db6c866c38bc28f442d7f226ce6d64a1e4f4c6 Mon Sep 17 00:00:00 2001 From: Tim Wawrzynczak Date: Sun, 12 Jan 2020 13:47:07 -0700 Subject: [PATCH 02/46] mb/google/hatch: Kohaku: Add MKBP to suspend wake events This CL allows MKBP events from the EC to wake the system from suspend states. BUG=b:144122000 BRANCH=firmware-hatch-12672.B TEST=Verify that MKBP events generated from EC will wake the system from S0ix. Change-Id: I8a0d2c7ed89fa1ea937a08c3082cc5d3e782efff Signed-off-by: Tim Wawrzynczak Reviewed-on: https://review.coreboot.org/c/coreboot/+/38496 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/mainboard/google/hatch/variants/kohaku/gpio.c | 2 ++ .../google/hatch/variants/kohaku/include/variant/ec.h | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/mainboard/google/hatch/variants/kohaku/gpio.c b/src/mainboard/google/hatch/variants/kohaku/gpio.c index 921b8dd1e9..91ade86b32 100644 --- a/src/mainboard/google/hatch/variants/kohaku/gpio.c +++ b/src/mainboard/google/hatch/variants/kohaku/gpio.c @@ -45,6 +45,8 @@ static const struct pad_config gpio_table[] = { PAD_CFG_GPI_APIC(GPP_C7, NONE, PLTRST, LEVEL, INVERT), /* C12 : EN_PP3300_TSP_DX */ PAD_CFG_GPO(GPP_C12, 0, DEEP), + /* C13 : EC_PCH_INT_L - needs to wake the system */ + PAD_CFG_GPI_IRQ_WAKE(GPP_C13, NONE, PLTRST, LEVEL, INVERT), /* C15 : EN_PP3300_DIG_DX */ PAD_CFG_GPO(GPP_C15, 0, DEEP), /* C23 : UART2_CTS# ==> NC */ diff --git a/src/mainboard/google/hatch/variants/kohaku/include/variant/ec.h b/src/mainboard/google/hatch/variants/kohaku/include/variant/ec.h index 84e050eacf..a58d41d4c6 100644 --- a/src/mainboard/google/hatch/variants/kohaku/include/variant/ec.h +++ b/src/mainboard/google/hatch/variants/kohaku/include/variant/ec.h @@ -20,4 +20,12 @@ #define EC_ENABLE_MULTIPLE_DPTF_PROFILES -#endif +#undef MAINBOARD_EC_S3_WAKE_EVENTS + +#define MAINBOARD_EC_S3_WAKE_EVENTS \ + (MAINBOARD_EC_S5_WAKE_EVENTS |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_MKBP) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE)) + +#endif /* VARIANT_EC_H */ From ef8258a8306143f150bd1457ba51dd350f1d7921 Mon Sep 17 00:00:00 2001 From: Nick Vaccaro Date: Mon, 9 Dec 2019 22:11:33 -0800 Subject: [PATCH 03/46] soc/intel/tigerlake: enable gpio dual route support Enable SOC_INTEL_COMMON_BLOCK_GPIO_DUAL_ROUTE_SUPPORT for tigerlake. BUG=b:142961277, b:145494156 BRANCH=none TEST=none Change-Id: I1f785f410982f7d7598942f9b12196851e77c240 Signed-off-by: Nick Vaccaro Reviewed-on: https://review.coreboot.org/c/coreboot/+/37629 Reviewed-by: caveh jalali Reviewed-by: Furquan Shaikh Tested-by: build bot (Jenkins) --- src/soc/intel/tigerlake/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/src/soc/intel/tigerlake/Kconfig b/src/soc/intel/tigerlake/Kconfig index 9340f6980c..cef1fd0e33 100644 --- a/src/soc/intel/tigerlake/Kconfig +++ b/src/soc/intel/tigerlake/Kconfig @@ -56,6 +56,7 @@ config CPU_SPECIFIC_OPTIONS select SOC_INTEL_COMMON_BLOCK_CHIP_CONFIG select SOC_INTEL_COMMON_BLOCK_CPU select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT + select SOC_INTEL_COMMON_BLOCK_GPIO_DUAL_ROUTE_SUPPORT select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2 select SOC_INTEL_COMMON_BLOCK_HDA select SOC_INTEL_COMMON_BLOCK_SA From a211298d20d146469398ddba9d2bac39d33837a0 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 21 Jan 2020 13:39:11 -0800 Subject: [PATCH 04/46] Update vboot submodule to upstream master Updating from commit id 2843aa62: 2019-12-12 Julius Werner 2lib: Move firmware body size reporting to separate function to commit id f5367d59: 2020-01-20 Joel Kitching vboot: translate recovery reason info from vboot 2->1 This brings in 27 new commits. Change-Id: I7d33337881fa2d36d6e562b0a390b56227cfad55 Signed-off-by: Julius Werner Reviewed-on: https://review.coreboot.org/c/coreboot/+/38498 Tested-by: build bot (Jenkins) Reviewed-by: Joel Kitching --- 3rdparty/vboot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3rdparty/vboot b/3rdparty/vboot index 2843aa62ba..f5367d598a 160000 --- a/3rdparty/vboot +++ b/3rdparty/vboot @@ -1 +1 @@ -Subproject commit 2843aa62ba7bcaab2abccf16e3f1b8bd7e058fdb +Subproject commit f5367d598a985520a8c935f68ac90d295c7b8d8e From 6476e415124731c9082d92263f4e99645a6f1424 Mon Sep 17 00:00:00 2001 From: Wisley Chen Date: Tue, 31 Dec 2019 13:26:04 +0800 Subject: [PATCH 05/46] mb/google/hatch/var/dratini: Update DPTF parameters 1. Add a TEMP_SENSOR3 2. Update DFPS (fan performance state) table with values received from thermal team 3. Update PL1 override to 15W 4. Update PL2 override to 51W BRANCH=hatch BUG=b:147792204 TEST=build and verify by thermal team Change-Id: I21c17c09a097c963f4dd1b7d5f8212c83a639dc3 Signed-off-by: Wisley Chen Reviewed-on: https://review.coreboot.org/c/coreboot/+/38025 Reviewed-by: Tim Wawrzynczak Reviewed-by: Paul Fagerburg Tested-by: build bot (Jenkins) --- .../dratini/include/variant/acpi/dptf.asl | 35 +++++++++++++------ .../hatch/variants/dratini/overridetree.cb | 2 ++ 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/mainboard/google/hatch/variants/dratini/include/variant/acpi/dptf.asl b/src/mainboard/google/hatch/variants/dratini/include/variant/acpi/dptf.asl index 0281913ee1..21498b9d73 100644 --- a/src/mainboard/google/hatch/variants/dratini/include/variant/acpi/dptf.asl +++ b/src/mainboard/google/hatch/variants/dratini/include/variant/acpi/dptf.asl @@ -38,6 +38,11 @@ #define DPTF_TSR1_ACTIVE_AC5 36 #define DPTF_TSR1_ACTIVE_AC6 33 +#define DPTF_TSR2_SENSOR_ID 2 +#define DPTF_TSR2_SENSOR_NAME "Thermal Sensor - CPU" +#define DPTF_TSR2_PASSIVE 105 +#define DPTF_TSR2_CRITICAL 105 + #define DPTF_ENABLE_CHARGER #define DPTF_ENABLE_FAN_CONTROL @@ -57,15 +62,15 @@ Name (DFPS, Package () { * These are initial reference values. */ /* Control, Trip Point, Speed, NoiseLevel, Power */ - Package () {90, 0xFFFFFFFF, 6700, 220, 2200}, - Package () {80, 0xFFFFFFFF, 5800, 180, 1800}, - Package () {70, 0xFFFFFFFF, 5000, 145, 1450}, - Package () {60, 0xFFFFFFFF, 4900, 115, 1150}, - Package () {50, 0xFFFFFFFF, 3838, 90, 900}, - Package () {40, 0xFFFFFFFF, 2904, 55, 550}, - Package () {30, 0xFFFFFFFF, 2337, 30, 300}, - Package () {20, 0xFFFFFFFF, 1608, 15, 150}, - Package () {10, 0xFFFFFFFF, 800, 10, 100}, + Package () {100, 0xFFFFFFFF, 6700, 220, 2200}, + Package () {90, 0xFFFFFFFF, 5800, 180, 1800}, + Package () {80, 0xFFFFFFFF, 5000, 145, 1450}, + Package () {70, 0xFFFFFFFF, 4900, 115, 1150}, + Package () {63, 0xFFFFFFFF, 3838, 90, 900}, + Package () {58, 0xFFFFFFFF, 2904, 55, 550}, + Package () {54, 0xFFFFFFFF, 2337, 30, 300}, + Package () {50, 0xFFFFFFFF, 1608, 15, 150}, + Package () {45, 0xFFFFFFFF, 800, 10, 100}, Package () {0, 0xFFFFFFFF, 0, 0, 50} }) @@ -84,6 +89,11 @@ Name (DART, Package () { \_SB.DPTF.TFN1, \_SB.DPTF.TSR1, 100, 100, 80, 70, 60, 50, 40, 30, 0, 0, 0 }, + Package () { + \_SB.DPTF.TFN1, \_SB.DPTF.TSR2, 100, 100, 80, 70, 60, 50, 40, 30, + 0, 0, 0 + }, + }) Name (DTRT, Package () { @@ -96,6 +106,9 @@ Name (DTRT, Package () { /* CPU Throttle Effect on CPU (TSR1) */ Package () { \_SB.PCI0.TCPU, \_SB.DPTF.TSR1, 100, 60, 0, 0, 0, 0 }, + /* CPU Throttle Effect on CPU (TSR2) */ + Package () { \_SB.PCI0.TCPU, \_SB.DPTF.TSR2, 100, 60, 0, 0, 0, 0 }, + }) Name (MPPC, Package () @@ -112,8 +125,8 @@ Name (MPPC, Package () Package () { /* Power Limit 2 */ 1, /* PowerLimitIndex, 1 for Power Limit 2 */ 15000, /* PowerLimitMinimum */ - 25000, /* PowerLimitMaximum */ - 28000, /* TimeWindowMinimum */ + 51000, /* PowerLimitMaximum */ + 51000, /* TimeWindowMinimum */ 32000, /* TimeWindowMaximum */ 1000 /* StepSize */ } diff --git a/src/mainboard/google/hatch/variants/dratini/overridetree.cb b/src/mainboard/google/hatch/variants/dratini/overridetree.cb index c6a9ed70e3..f820629198 100644 --- a/src/mainboard/google/hatch/variants/dratini/overridetree.cb +++ b/src/mainboard/google/hatch/variants/dratini/overridetree.cb @@ -1,4 +1,6 @@ chip soc/intel/cannonlake + register "tdp_pl1_override" = "15" + register "tdp_pl2_override" = "51" register "SerialIoDevMode" = "{ [PchSerialIoIndexI2C0] = PchSerialIoPci, From f8d9a13aba3b7a82934914bce3b820c428ff98f3 Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Tue, 21 Jan 2020 14:28:26 +0530 Subject: [PATCH 06/46] soc/intel/common: Update SA bit fields as per EDS This patch updates system agent related registers bit definitions as per EDS. For example: As per CNL/ICL EDS MCHBAR register base is between bit 16-38 but coreboot programming was not aligned with EDS previously. CNL EDS doc number: 566216 Also provide provision to program 64bit values as per SA EDS definitions TEST=Dump MCHBAR in coreboot and ASL shows same 32 bit value. Change-Id: I37340408fe89c94ce81953c751c8d7e22bc81a42 Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/38387 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- .../block/include/intelblocks/systemagent.h | 4 ++-- .../common/block/systemagent/systemagent_early.c | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/soc/intel/common/block/include/intelblocks/systemagent.h b/src/soc/intel/common/block/include/intelblocks/systemagent.h index c60595835a..a11bf647d2 100644 --- a/src/soc/intel/common/block/include/intelblocks/systemagent.h +++ b/src/soc/intel/common/block/include/intelblocks/systemagent.h @@ -43,13 +43,13 @@ void bootblock_systemagent_early_init(void); * Fixed MMIO range * INDEX = Either PCI configuration space registers or MMIO offsets * mapped from REG. - * BASE = 32 bit Address. + * BASE = 64 bit Address. * SIZE = base length * DESCRIPTION = Name of the register/offset. */ struct sa_mmio_descriptor { unsigned int index; - uintptr_t base; + uint64_t base; size_t size; const char *description; }; diff --git a/src/soc/intel/common/block/systemagent/systemagent_early.c b/src/soc/intel/common/block/systemagent/systemagent_early.c index d6f129d679..1273c0f30f 100644 --- a/src/soc/intel/common/block/systemagent/systemagent_early.c +++ b/src/soc/intel/common/block/systemagent/systemagent_early.c @@ -1,7 +1,7 @@ /* * This file is part of the coreboot project. * - * Copyright (C) 2017 Intel Corporation. + * Copyright (C) 2017-2020 Intel Corporation. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -71,7 +71,7 @@ void sa_set_pci_bar(const struct sa_mmio_descriptor *fixed_set_resources, int i; for (i = 0; i < count; i++) { - uintptr_t base; + uint64_t base; unsigned int index; index = fixed_set_resources[i].index; @@ -83,8 +83,9 @@ void sa_set_pci_bar(const struct sa_mmio_descriptor *fixed_set_resources, return; base = fixed_set_resources[i].base; - - pci_write_config32(SA_DEV_ROOT, index, base | 1); + if (base >> 32) + pci_write_config32(SA_DEV_ROOT, index + 4, base >> 32); + pci_write_config32(SA_DEV_ROOT, index, (base & 0xffffffff) | 1); } } @@ -99,12 +100,14 @@ void sa_set_mch_bar(const struct sa_mmio_descriptor *fixed_set_resources, int i; for (i = 0; i < count; i++) { - uintptr_t base; + uint64_t base; unsigned int index; base = fixed_set_resources[i].base; index = fixed_set_resources[i].index; - write32((void *)(MCH_BASE_ADDRESS + index), base | 1); + if (base >> 32) + write32((void *)(MCH_BASE_ADDRESS + index + 4), base >> 32); + write32((void *)(MCH_BASE_ADDRESS + index), (base & 0xffffffff) | 1); } } From 8b3380044d91133c8e5d629a10ef7a3449de8ae3 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Wed, 22 Jan 2020 18:46:37 +0100 Subject: [PATCH 07/46] Documentation: link asus p5q on mainboard page Change-Id: Ia3f58cc15897bff87dd699ab1fb1c42545119f0b Signed-off-by: Felix Held Reviewed-on: https://review.coreboot.org/c/coreboot/+/38518 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons Reviewed-by: Paul Menzel --- Documentation/mainboard/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md index 3e6a985858..a0436afb1f 100644 --- a/Documentation/mainboard/index.md +++ b/Documentation/mainboard/index.md @@ -13,6 +13,7 @@ This section contains documentation about coreboot on specific mainboards. ## ASUS - [F2A85-M](asus/f2a85-m.md) +- [P5Q](asus/p5q.md) - [P8H61-M LX](asus/p8h61-m_lx.md) - [P8H61-M Pro](asus/p8h61-m_pro.md) - [P8Z77-M Pro](asus/p8z77-m_pro.md) From 815d96a975d67db73b8299b3c521b74cf9725b99 Mon Sep 17 00:00:00 2001 From: Wonkyu Kim Date: Tue, 21 Jan 2020 21:51:19 -0800 Subject: [PATCH 08/46] soc/intel/tigerlake: Enable SATA Configure SATA FSP UPD according to mainboard design. BUG=none BRANCH=none TEST=Build and boot tigerlake rvp board with SATA memory Signed-off-by: Wonkyu Kim Change-Id: I9350d71d76cd3d449fd959b5398d5ac653bc459e Reviewed-on: https://review.coreboot.org/c/coreboot/+/38504 Reviewed-by: Nick Vaccaro Reviewed-by: Subrata Banik Tested-by: build bot (Jenkins) --- src/soc/intel/tigerlake/fsp_params_tgl.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/soc/intel/tigerlake/fsp_params_tgl.c b/src/soc/intel/tigerlake/fsp_params_tgl.c index fe59ac1d42..305748e8f3 100644 --- a/src/soc/intel/tigerlake/fsp_params_tgl.c +++ b/src/soc/intel/tigerlake/fsp_params_tgl.c @@ -121,6 +121,20 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd) /* PCH UART selection for FSP Debug */ params->SerialIoDebugUartNumber = CONFIG_UART_FOR_CONSOLE; + /* SATA */ + dev = pcidev_on_root(PCH_DEV_SLOT_SATA, 0); + if (!dev) + params->SataEnable = 0; + else { + params->SataEnable = dev->enabled; + params->SataMode = config->SataMode; + params->SataSalpSupport = config->SataSalpSupport; + memcpy(params->SataPortsEnable, config->SataPortsEnable, + sizeof(params->SataPortsEnable)); + memcpy(params->SataPortsDevSlp, config->SataPortsDevSlp, + sizeof(params->SataPortsDevSlp)); + } + mainboard_silicon_init_params(params); } From d250063c09d432cff563331a3dfb158d7c6a7a46 Mon Sep 17 00:00:00 2001 From: Wonkyu Kim Date: Tue, 21 Jan 2020 21:54:14 -0800 Subject: [PATCH 09/46] mb/intel/tglrvp: Enable SATA Enable both SATA ports for TGLRVP. BUG=none BRANCH=none TEST=Build and boot tigerlake rvp board with SATA memory Signed-off-by: Wonkyu Kim Change-Id: I9f35682982a6c06522e58b0bbd7162ff02c37f32 Reviewed-on: https://review.coreboot.org/c/coreboot/+/38505 Reviewed-by: Nick Vaccaro Reviewed-by: Subrata Banik Tested-by: build bot (Jenkins) --- .../intel/tglrvp/variants/tglrvp_up3/devicetree.cb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mainboard/intel/tglrvp/variants/tglrvp_up3/devicetree.cb b/src/mainboard/intel/tglrvp/variants/tglrvp_up3/devicetree.cb index fbd1c39dce..01e0f3f8f8 100644 --- a/src/mainboard/intel/tglrvp/variants/tglrvp_up3/devicetree.cb +++ b/src/mainboard/intel/tglrvp/variants/tglrvp_up3/devicetree.cb @@ -45,6 +45,10 @@ chip soc/intel/tigerlake register "PcieClkSrcUsage[2]" = "0x3" register "PcieClkSrcUsage[3]" = "0x8" + register "SataSalpSupport" = "1" + register "SataPortsEnable[0]" = "1" + register "SataPortsEnable[1]" = "1" + register "SerialIoI2cMode" = "{ [PchSerialIoIndexI2C0] = PchSerialIoPci, [PchSerialIoIndexI2C1] = PchSerialIoPci, @@ -122,7 +126,7 @@ chip soc/intel/tigerlake device pci 16.3 off end # CSME 0xA0E3 device pci 16.4 off end # HECI3 0xA0E4 device pci 16.5 off end # HECI4 0xA0E5 - device pci 17.0 off end # SATA 0xA0D3 + device pci 17.0 on end # SATA 0xA0D3 device pci 19.0 off end # I2C4 0xA0C5 device pci 19.1 on end # I2C5 0xA0C6 device pci 19.2 on end # UART2 0xA0C7 From 9bcdeb274a24a2040def463432786e6f8be43684 Mon Sep 17 00:00:00 2001 From: Alex Levin Date: Wed, 15 Jan 2020 21:30:20 -0800 Subject: [PATCH 10/46] arch/x86/acpi_device: Add macros to define gpio interrupt with wake Add Provides ACPI_GPIO_IRQ_LEVEL_[LOW|HIGH]_WAKE versions to allow board to define a gpio irq as wake capable. Change-Id: I42f5084c5f0f5da0a4b39df77707b2f158bcc03d Signed-off-by: Alex Levin Reviewed-on: https://review.coreboot.org/c/coreboot/+/38445 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/arch/x86/include/arch/acpi_device.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/arch/x86/include/arch/acpi_device.h b/src/arch/x86/include/arch/acpi_device.h index 0a702c9329..90af81ba21 100644 --- a/src/arch/x86/include/arch/acpi_device.h +++ b/src/arch/x86/include/arch/acpi_device.h @@ -303,6 +303,26 @@ struct acpi_gpio { .pin_count = 1, \ .pins = { (gpio) } } +/* Level Triggered Active High GPIO interrupt with wake */ +#define ACPI_GPIO_IRQ_LEVEL_HIGH_WAKE(gpio) { \ + .type = ACPI_GPIO_TYPE_INTERRUPT, \ + .pull = ACPI_GPIO_PULL_DEFAULT, \ + .irq.mode = ACPI_IRQ_LEVEL_TRIGGERED, \ + .irq.polarity = ACPI_IRQ_ACTIVE_HIGH, \ + .irq.wake = ACPI_IRQ_WAKE, \ + .pin_count = 1, \ + .pins = { (gpio) } } + +/* Level Triggered Active Low GPIO interrupt with wake */ +#define ACPI_GPIO_IRQ_LEVEL_LOW_WAKE(gpio) { \ + .type = ACPI_GPIO_TYPE_INTERRUPT, \ + .pull = ACPI_GPIO_PULL_DEFAULT, \ + .irq.mode = ACPI_IRQ_LEVEL_TRIGGERED, \ + .irq.polarity = ACPI_IRQ_ACTIVE_LOW, \ + .irq.wake = ACPI_IRQ_WAKE, \ + .pin_count = 1, \ + .pins = { (gpio) } } + /* Write GpioIo() or GpioInt() descriptor to SSDT AML output */ void acpi_device_write_gpio(const struct acpi_gpio *gpio); From 9eca4b15ffa445f4fac29711cefc61db8713f2ff Mon Sep 17 00:00:00 2001 From: Wim Vervoorn Date: Thu, 16 Jan 2020 10:36:40 +0100 Subject: [PATCH 11/46] mb/portwell/m107: Remove mainboard sleepstates.asl BUG=N/A TEST=build Change-Id: Ifb45bc1f7f4d3744124d6797fb4c791fd5f227ca Signed-off-by: Wim Vervoorn Reviewed-on: https://review.coreboot.org/c/coreboot/+/38449 Tested-by: build bot (Jenkins) Reviewed-by: Frans Hendriks --- .../portwell/m107/acpi/sleepstates.asl | 20 ------------------- src/mainboard/portwell/m107/dsdt.asl | 3 +-- 2 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 src/mainboard/portwell/m107/acpi/sleepstates.asl diff --git a/src/mainboard/portwell/m107/acpi/sleepstates.asl b/src/mainboard/portwell/m107/acpi/sleepstates.asl deleted file mode 100644 index 428fda2a01..0000000000 --- a/src/mainboard/portwell/m107/acpi/sleepstates.asl +++ /dev/null @@ -1,20 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2007-2009 coresystems GmbH - * Copyright (C) 2018 Eltan B.V. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; version 2 of - * the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -Name(\_S0, Package(){0x0,0x0,0x0,0x0}) -Name(\_S4, Package(){0x6,0x6,0x0,0x0}) -Name(\_S5, Package(){0x7,0x7,0x0,0x0}) diff --git a/src/mainboard/portwell/m107/dsdt.asl b/src/mainboard/portwell/m107/dsdt.asl index ced3e10211..586a5e19ff 100644 --- a/src/mainboard/portwell/m107/dsdt.asl +++ b/src/mainboard/portwell/m107/dsdt.asl @@ -43,6 +43,5 @@ DefinitionBlock( } } - /* Mainboard specific sleep states */ - #include "acpi/sleepstates.asl" + #include } From 8f18eb510cf1b4723ffa0c5e51c14fe9f8ab9790 Mon Sep 17 00:00:00 2001 From: John Su Date: Wed, 22 Jan 2020 13:43:43 +0800 Subject: [PATCH 12/46] mb/google/drallion: Remove fixed IccMax values Remove fixed IccMax values for U22 CPU. IccMax will be selected by CPU SKU. BUG=b:148110226 BRANCH=None TEST=build coreboot and fsp with enabled fw_debug. Flashed to device and checked IccMax[1]. Change-Id: Ifcd31ad5b608ce599d4294a6522fdda022f8a177 Signed-off-by: John Su Reviewed-on: https://review.coreboot.org/c/coreboot/+/38503 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan Reviewed-by: EricR Lai --- .../google/drallion/variants/drallion/devicetree.cb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/mainboard/google/drallion/variants/drallion/devicetree.cb b/src/mainboard/google/drallion/variants/drallion/devicetree.cb index 75fd3ee09b..97860f4b2d 100644 --- a/src/mainboard/google/drallion/variants/drallion/devicetree.cb +++ b/src/mainboard/google/drallion/variants/drallion/devicetree.cb @@ -65,7 +65,7 @@ chip soc/intel/cannonlake register "PchHdaIDispCodecDisconnect" = "1" register "PchHdaAudioLinkHda" = "1" - # VR Settings Configuration for 4 Domains + # VR Settings Configuration for 2/4 Domains #+----------------+-------+-------+-------+-------+ #| Domain/Setting | SA | IA | GTUS | GTS | #+----------------+-------+-------+-------+-------+ @@ -76,7 +76,7 @@ chip soc/intel/cannonlake #| Psi4Enable | 1 | 1 | 1 | 1 | #| ImonSlope | 0 | 0 | 0 | 0 | #| ImonOffset | 0 | 0 | 0 | 0 | - #| IccMax | 6A | 70A | 31A | 31A | + #| IccMax | 6A | 35/70A| 31A | 31A | #| VrVoltageLimit | 1.52V | 1.52V | 1.52V | 1.52V | #| AcLoadline | 10.3 | 1.8 | 3.1 | 3.1 | #| DcLoadline | 10.3 | 1.8 | 3.1 | 3.1 | @@ -90,7 +90,7 @@ chip soc/intel/cannonlake .psi4enable = 1, .imon_slope = 0x0, .imon_offset = 0x0, - .icc_max = VR_CFG_AMP(6), + .icc_max = 0, .voltage_limit = 1520, .ac_loadline = 1030, .dc_loadline = 1030, @@ -105,7 +105,7 @@ chip soc/intel/cannonlake .psi4enable = 1, .imon_slope = 0x0, .imon_offset = 0x0, - .icc_max = VR_CFG_AMP(70), + .icc_max = 0, .voltage_limit = 1520, .ac_loadline = 180, .dc_loadline = 180, @@ -120,7 +120,7 @@ chip soc/intel/cannonlake .psi4enable = 1, .imon_slope = 0x0, .imon_offset = 0x0, - .icc_max = VR_CFG_AMP(31), + .icc_max = 0, .voltage_limit = 1520, .ac_loadline = 310, .dc_loadline = 310, @@ -135,7 +135,7 @@ chip soc/intel/cannonlake .psi4enable = 1, .imon_slope = 0x0, .imon_offset = 0x0, - .icc_max = VR_CFG_AMP(31), + .icc_max = 0, .voltage_limit = 1520, .ac_loadline = 310, .dc_loadline = 310, From 21d79ad0d5d9b94e0619be6661e71ab726f289ec Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Wed, 22 Jan 2020 15:48:52 +0530 Subject: [PATCH 13/46] soc/intel/skylake: Move pci_irqs.asl from SA to PCH SoC handles PCI IRQs programming inside PCH related ASL. TEST=Build and boot EVE and Soraka to OS. Change-Id: If95101193fa1b528dc64f57c0fc12f13f16d82b4 Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/38510 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- src/soc/intel/skylake/acpi/pch.asl | 3 +++ src/soc/intel/skylake/acpi/systemagent.asl | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/soc/intel/skylake/acpi/pch.asl b/src/soc/intel/skylake/acpi/pch.asl index 0aba2e7542..ce1619aaea 100644 --- a/src/soc/intel/skylake/acpi/pch.asl +++ b/src/soc/intel/skylake/acpi/pch.asl @@ -23,6 +23,9 @@ #include #include +/* PCI IRQ assignment */ +#include "pci_irqs.asl" + /* GPIO Controller */ #include "gpio.asl" diff --git a/src/soc/intel/skylake/acpi/systemagent.asl b/src/soc/intel/skylake/acpi/systemagent.asl index 89380aa194..0857495304 100644 --- a/src/soc/intel/skylake/acpi/systemagent.asl +++ b/src/soc/intel/skylake/acpi/systemagent.asl @@ -336,6 +336,3 @@ Device (PDRC) Return (BUF0) } } - -/* PCI IRQ assignment */ -#include "pci_irqs.asl" From 86e0ac47557984dcaa92bc1362a29b0941d735cc Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Wed, 22 Jan 2020 15:52:12 +0530 Subject: [PATCH 14/46] soc/intel/skylake: Remove unused ICH memory reference TEST=Build and boot EVE and Soraka to OS. Change-Id: Ic7840ce264393b4a955f17b16f5e0f556e34a776 Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/38511 Reviewed-by: Angel Pons Tested-by: build bot (Jenkins) --- src/soc/intel/skylake/acpi/systemagent.asl | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/soc/intel/skylake/acpi/systemagent.asl b/src/soc/intel/skylake/acpi/systemagent.asl index 0857495304..3902b93749 100644 --- a/src/soc/intel/skylake/acpi/systemagent.asl +++ b/src/soc/intel/skylake/acpi/systemagent.asl @@ -292,19 +292,9 @@ Device (PDRC) */ Memory32Fixed (ReadWrite, 0, 0, PCIX) - /* MISC ICH TTT base address reserved for the - * TxT module use. - */ - Memory32Fixed (ReadWrite, 0xFED20000, 0x20000) - /* VTD engine memory range. */ Memory32Fixed (ReadOnly, VTD_BASE_ADDRESS, VTD_BASE_SIZE) - /* MISC ICH. Check if the hard code meets the - * real configuration. - */ - Memory32Fixed (ReadWrite, 0xFED45000, 0x4B000, TPMM) - /* FLASH range */ Memory32Fixed (ReadOnly, 0, CONFIG_ROM_SIZE, FIOH) From b38586f77f97d2a294bea14be26daa29068c6e40 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 14 Jan 2020 16:25:56 -0800 Subject: [PATCH 15/46] vboot: Remove hard dependency on MISSING_BOARD_RESET Having a working board reset is certainly better when you're running vboot (because otherwise you'll hang when transitioning into recovery mode), but I don't think it should be strictly required, since it's still somewhat usable without. This is particularly important for certain test platforms that don't have a good way to reset but might still be useful for vboot testing/prototyping. Change-Id: Ia765f54b6e2e176e2d54478fb1e0839d8cab9849 Signed-off-by: Julius Werner Reviewed-on: https://review.coreboot.org/c/coreboot/+/38417 Reviewed-by: Aaron Durbin Reviewed-by: Nico Huber Reviewed-by: Angel Pons Tested-by: build bot (Jenkins) --- src/security/vboot/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/security/vboot/Kconfig b/src/security/vboot/Kconfig index 7e86c7c1e4..30b99afc8f 100644 --- a/src/security/vboot/Kconfig +++ b/src/security/vboot/Kconfig @@ -28,7 +28,7 @@ config VBOOT default n select VBOOT_LIB select VBOOT_MOCK_SECDATA if !TPM1 && !TPM2 - depends on !MISSING_BOARD_RESET + depends on 0 = 0 # Must have a 'depends on' or board overrides will break it. help Enabling VBOOT will use vboot to verify the components of the firmware (stages, payload, etc). From e8338da597f892d333af9bb77ab89289b8140633 Mon Sep 17 00:00:00 2001 From: Shaunak Saha Date: Wed, 15 Jan 2020 11:43:19 -0800 Subject: [PATCH 16/46] soc/intel/tigerlake: Fix GPIO communities GPIOs are divided into different communities. Each community consists of one or more GPIO groups. We need to configure the groups in coreboot so that they are mapped properly. GPIO comuinities in coreboot should match with the kernel gpio communities also. Kernel reads the ASL file from coreboot. This patch adds the proper community mapping in ASL code to match with kernel code. In gpio_soc_defs.c file we are indexing the groups correctly. In gpio.h file we define all the gpio devices as kernel populates sysfs with separate gpio device for each community. This patch is created based on Intel Tiger Lake Processor PCH Datasheet with Document number:575857 and Chapter number:27. BUG=b:144680462 BRANCH=none TEST=Build and boot tigerlake rvp board. In /sys/kernel/debug/pinctrl verify INTC34C5:0<1-3> listing all the pins for each community. e.g., #cat /sys/kernel/debug/pinctrl/INT34C5:00/pins should list all the community 0 pins. Change-Id: I40c386db060d84c1b7fba9c587f960d6a92f84ba Signed-off-by: Shaunak Saha Reviewed-on: https://review.coreboot.org/c/coreboot/+/38440 Tested-by: build bot (Jenkins) Reviewed-by: Nick Vaccaro Reviewed-by: Wonkyu Kim --- .../jasperlake_rvp/variants/jslrvp/gpio.c | 2 +- .../intel/tglrvp/variants/tglrvp_up3/gpio.c | 4 +- src/soc/intel/tigerlake/acpi/gpio.asl | 160 +++-- src/soc/intel/tigerlake/gpio.c | 102 ++- src/soc/intel/tigerlake/include/soc/gpio.h | 7 +- .../intel/tigerlake/include/soc/gpio_defs.h | 464 +++++++------- .../tigerlake/include/soc/gpio_soc_defs.h | 579 ++++++++++-------- 7 files changed, 739 insertions(+), 579 deletions(-) diff --git a/src/mainboard/intel/jasperlake_rvp/variants/jslrvp/gpio.c b/src/mainboard/intel/jasperlake_rvp/variants/jslrvp/gpio.c index 48ad36edb2..bf6d517691 100644 --- a/src/mainboard/intel/jasperlake_rvp/variants/jslrvp/gpio.c +++ b/src/mainboard/intel/jasperlake_rvp/variants/jslrvp/gpio.c @@ -40,7 +40,7 @@ const struct pad_config *variant_early_gpio_table(size_t *num) } static const struct cros_gpio cros_gpios[] = { - CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME), + CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_COMM0_NAME), }; const struct cros_gpio *variant_cros_gpios(size_t *num) diff --git a/src/mainboard/intel/tglrvp/variants/tglrvp_up3/gpio.c b/src/mainboard/intel/tglrvp/variants/tglrvp_up3/gpio.c index afe73c8763..465e402560 100644 --- a/src/mainboard/intel/tglrvp/variants/tglrvp_up3/gpio.c +++ b/src/mainboard/intel/tglrvp/variants/tglrvp_up3/gpio.c @@ -1,7 +1,7 @@ /* * This file is part of the coreboot project. * - * Copyright (C) 2019 Intel Corporation. + * Copyright (C) 2020 Intel Corporation. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,7 +42,7 @@ const struct pad_config *variant_early_gpio_table(size_t *num) } static const struct cros_gpio cros_gpios[] = { - CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_DEVICE_NAME), + CROS_GPIO_REC_AL(CROS_GPIO_VIRTUAL, CROS_GPIO_COMM0_NAME), }; const struct cros_gpio *variant_cros_gpios(size_t *num) diff --git a/src/soc/intel/tigerlake/acpi/gpio.asl b/src/soc/intel/tigerlake/acpi/gpio.asl index 98863e2486..dc76a387b7 100644 --- a/src/soc/intel/tigerlake/acpi/gpio.asl +++ b/src/soc/intel/tigerlake/acpi/gpio.asl @@ -1,7 +1,7 @@ /* * This file is part of the coreboot project. * - * Copyright (C) 2019 Intel Corp. + * Copyright (C) 2020 Intel Corp. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,60 +16,97 @@ #include #include - -Device (GPIO) +Device (GCM0) { - Name (_HID, "INT3455") + Name (_HID, "INT34C5") Name (_UID, 0) - Name (_DDN, "GPIO Controller") + Name (_DDN, "GPIO Controller Community 0") + Name (RBUF, ResourceTemplate() + { + Memory32Fixed (ReadWrite, 0, GPIO_BASE_SIZE, COM0) + Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ) + { GPIO_IRQ14 } + }) Method (_CRS, 0, NotSerialized) { - Name (RBUF, ResourceTemplate() - { - Memory32Fixed (ReadWrite, 0, 0, COM0) - Memory32Fixed (ReadWrite, 0, 0, COM1) - Memory32Fixed (ReadWrite, 0, 0, COM2) - Memory32Fixed (ReadWrite, 0, 0, COM4) - Memory32Fixed (ReadWrite, 0, 0, COM5) - Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ) - { GPIO_IRQ14 } - }) - - /* GPIO Community 0 */ - CreateDWordField (RBUF, COM0._BAS, BAS0) - CreateDWordField (RBUF, COM0._LEN, LEN0) - Store (PCRB (PID_GPIOCOM0), BAS0) - Store (GPIO_BASE_SIZE, LEN0) - - /* GPIO Community 1 */ - CreateDWordField (RBUF, COM1._BAS, BAS1) - CreateDWordField ( RBUF, COM1._LEN, LEN1) - Store (PCRB (PID_GPIOCOM1), BAS1) - Store (GPIO_BASE_SIZE, LEN1) - - /* GPIO Community 2 */ - CreateDWordField (RBUF, COM2._BAS, BAS2) - CreateDWordField (RBUF, COM2._LEN, LEN2) - Store (PCRB (PID_GPIOCOM2), BAS2) - Store (GPIO_BASE_SIZE, LEN2) - - /* GPIO Community 4 */ - CreateDWordField (RBUF, COM4._BAS, BAS4) - CreateDWordField (RBUF, COM4._LEN, LEN4) - Store (PCRB (PID_GPIOCOM4), BAS4) - Store (GPIO_BASE_SIZE, LEN4) - - /* GPIO Community 5 */ - CreateDWordField (RBUF, COM5._BAS, BAS5) - CreateDWordField (RBUF, COM5._LEN, LEN5) - Store (PCRB (PID_GPIOCOM5), BAS5) - Store (GPIO_BASE_SIZE, LEN5) - - Return (RBUF) + CreateDWordField (^RBUF, ^COM0._BAS, BAS0) + BAS0 = ^^PCRB (PID_GPIOCOM0) + Return (^RBUF) } + Method (_STA) + { + Return (0xF) + } +} - Method (_STA, 0, NotSerialized) +Device (GCM1) +{ + Name (_HID, "INT34C5") + Name (_UID, 1) + Name (_DDN, "GPIO Controller Community 1") + + Name (RBUF, ResourceTemplate() + { + Memory32Fixed (ReadWrite, 0, GPIO_BASE_SIZE, COM1) + Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ) + { GPIO_IRQ14 } + }) + Method (_CRS, 0, NotSerialized) + { + CreateDWordField (^RBUF, ^COM1._BAS, BAS1) + BAS1 = ^^PCRB (PID_GPIOCOM1) + Return (^RBUF) + } + Method (_STA) + { + Return (0xF) + } +} + +Device (GCM4) +{ + Name (_HID, "INT34C5") + Name (_UID, 4) + Name (_DDN, "GPIO Controller Community 4") + + Name (RBUF, ResourceTemplate() + { + Memory32Fixed (ReadWrite, 0, GPIO_BASE_SIZE, COM4) + Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ) + { GPIO_IRQ14 } + }) + Method (_CRS, 0, NotSerialized) + { + CreateDWordField (^RBUF, ^COM4._BAS, BAS4) + BAS4 = ^^PCRB (PID_GPIOCOM4) + Return (^RBUF) + } + Method (_STA) + { + Return (0xF) + } +} + +Device (GCM5) +{ + Name (_HID, "INT34C5") + Name (_UID, 5) + Name (_DDN, "GPIO Controller Community 5") + + Name (RBUF, ResourceTemplate() + { + Memory32Fixed (ReadWrite, 0, GPIO_BASE_SIZE, COM5) + Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ) + { GPIO_IRQ14 } + }) + Method (_CRS, 0, NotSerialized) + { + CreateDWordField (^RBUF, ^COM5._BAS, BAS5) + BAS5 = ^^PCRB (PID_GPIOCOM5) + Return (^RBUF) + } + Method (_STA) { Return (0xF) } @@ -82,38 +119,37 @@ Device (GPIO) Method (GADD, 1, NotSerialized) { /* GPIO Community 0 */ - If (Arg0 >= GPP_G0 && Arg0 <= GPP_A23) + If (Arg0 >= GPP_B0 && Arg0 <= GPP_A24) { Local0 = PID_GPIOCOM0 - Subtract (Arg0, GPP_A0, Local1) + Local1 = Arg0 - GPP_B0 } /* GPIO Community 1 */ - If (Arg0 >= GPP_H0 && Arg0 <= GPP_F19) + If (Arg0 >= GPP_S0 && Arg0 <= vI2S2_RXD) { Local0 = PID_GPIOCOM1 - Subtract (Arg0, GPP_D0, Local1) + Local1 = Arg0 - GPP_S0 } /* GPIO Community 2 */ - If (Arg0 >= GPD0 && Arg0 <= GPD11) + If (Arg0 >= GPD0 && Arg0 <= GPD_DRAM_RESETB) { Local0 = PID_GPIOCOM2 - Subtract (Arg0, GPD0, Local1) + Local1 = Arg0 - GPD0 } /* GPIO Community 4 */ - If (Arg0 >= GPP_C0 && Arg0 <= GPP_E23) + If (Arg0 >= GPP_C0 && Arg0 <= GPP_DBG_PMODE) { Local0 = PID_GPIOCOM4 - Subtract (Arg0, GPP_C0, Local1) + Local1 = Arg0 - GPP_C0 } - /* GPIO Community 05*/ - If (Arg0 >= GPP_R0 && Arg0 <= GPP_S7) + /* GPIO Community 5 */ + If (Arg0 >= GPP_R0 && Arg0 <= GPP_CLK_LOOPBK) { Local0 = PID_GPIOCOM5 - Subtract (Arg0, GPP_R0, Local1) + Local1 = Arg0 - GPP_R0 } - Store (PCRB (Local0), Local2) - Add (Local2, PAD_CFG_BASE, Local2) - Return (Add (Local2, Multiply (Local1, 16))) + Local2 = PCRB(Local0) + PAD_CFG_BASE + (Local1 * 16) + Return (Local2) } /* diff --git a/src/soc/intel/tigerlake/gpio.c b/src/soc/intel/tigerlake/gpio.c index 18b90702c1..5b06b30d79 100644 --- a/src/soc/intel/tigerlake/gpio.c +++ b/src/soc/intel/tigerlake/gpio.c @@ -14,24 +14,23 @@ * GNU General Public License for more details. */ +#include +#include +#include +#include + /* * This file is created based on Intel Tiger Lake Processor PCH Datasheet * Document number: 575857 * Chapter number: 27 */ -#include -#include -#include -#include - static const struct reset_mapping rst_map[] = { { .logical = PAD_CFG0_LOGICAL_RESET_RSMRST, .chipset = 0U << 30 }, { .logical = PAD_CFG0_LOGICAL_RESET_DEEP, .chipset = 1U << 30 }, { .logical = PAD_CFG0_LOGICAL_RESET_PLTRST, .chipset = 2U << 30 }, }; - -static const struct reset_mapping rst_map_com0[] = { +static const struct reset_mapping rst_map_com2[] = { { .logical = PAD_CFG0_LOGICAL_RESET_PWROK, .chipset = 0U << 30 }, { .logical = PAD_CFG0_LOGICAL_RESET_DEEP, .chipset = 1U << 30 }, { .logical = PAD_CFG0_LOGICAL_RESET_PLTRST, .chipset = 2U << 30 }, @@ -39,55 +38,46 @@ static const struct reset_mapping rst_map_com0[] = { }; /* - * The GPIO driver for Tigerlake on Windows/Linux expects 32 GPIOs per pad - * group, regardless of whether or not there is a physical pad for each - * exposed GPIO number. - * - * This results in the OS having a sparse GPIO map, and devices that need - * to export an ACPI GPIO must use the OS expected number. - * - * Not all pins are usable as GPIO and those groups do not have a pad base. - * - * This layout matches the Linux kernel pinctrl map for CNL-LP at: + * This layout matches the Linux kernel pinctrl map for TGL-LP at: * linux/drivers/pinctrl/intel/pinctrl-tigerlake.c */ static const struct pad_group tgl_community0_groups[] = { - INTEL_GPP_BASE(GPP_G0, GPP_G0, GPP_G7, 0), /* GPP_G */ - INTEL_GPP_BASE(GPP_G0, GPP_B0, GPP_B23, 32), /* GPP_B */ - INTEL_GPP(GPP_G0, GPIO_RSVD_0, GPIO_RSVD_1), - INTEL_GPP_BASE(GPP_G0, GPP_A0, GPP_A23, 64), /* GPP_A */ + INTEL_GPP(GPP_B0, GPP_B0, GPP_B25), /* GPP_B */ + INTEL_GPP(GPP_B0, GPP_T0, GPP_T15), /* GPP_T */ + INTEL_GPP(GPP_B0, GPP_A0, GPP_A24), /* GPP_A */ }; static const struct pad_group tgl_community1_groups[] = { - INTEL_GPP_BASE(GPP_H0, GPP_H0, GPP_H23, 96), /* GPP_H */ - INTEL_GPP_BASE(GPP_H0, GPP_D0, GPIO_RSVD_2, 128), /* GPP_D */ - INTEL_GPP_BASE(GPP_H0, GPP_F0, GPP_F19, 160), /* GPP_F */ + INTEL_GPP(GPP_S0, GPP_S0, GPP_S7), /* GPP_S */ + INTEL_GPP(GPP_S0, GPP_H0, GPP_H23), /* GPP_H */ + INTEL_GPP(GPP_S0, GPP_D0, GPP_GSPI2_CLK_LOOPBK), /* GPP_D */ + INTEL_GPP(GPP_S0, GPP_U0, GPP_GSPI6_CLK_LOOPBK), /* GPP_U */ + INTEL_GPP(GPP_S0, CNV_BTEN, vI2S2_RXD), /* GPP_VGPIO */ }; /* This community is not visible to the OS */ static const struct pad_group tgl_community2_groups[] = { - INTEL_GPP(GPD0, GPD0, GPD11), /* GPD */ + INTEL_GPP(GPD0, GPD0, GPD_DRAM_RESETB), /* GPD */ }; - static const struct pad_group tgl_community4_groups[] = { - INTEL_GPP_BASE(GPP_C0, GPP_C0, GPP_C23, 224), /* GPP_C */ - INTEL_GPP_BASE(GPP_C0, GPP_E0, GPP_E23, 256), /* GPP_E */ - INTEL_GPP(GPP_C0, GPIO_RSVD_3, GPIO_RSVD_8), + INTEL_GPP(GPP_C0, GPP_C0, GPP_C23), /* GPP_C */ + INTEL_GPP(GPP_C0, GPP_F0, GPP_F_CLK_LOOPBK), /* GPP_F */ + INTEL_GPP(GPP_C0, GPP_L_BKLTEN, GPP_MLK_RSTB), /* GPP_HVCMOS */ + INTEL_GPP(GPP_C0, GPP_E0, GPP_E_CLK_LOOPBK), /* GPP_E */ + INTEL_GPP(GPP_C0, GPP_JTAG_TDO, GPP_DBG_PMODE), /* GPP_JTAG */ }; - static const struct pad_group tgl_community5_groups[] = { - INTEL_GPP_BASE(GPP_R0, GPP_R0, GPP_R7, 288), /* GPP_R */ - INTEL_GPP_BASE(GPP_C0, GPP_S0, GPP_S7, 320), /* GPP_S */ + INTEL_GPP(GPP_R0, GPP_R0, GPP_R7), /* GPP_R */ + INTEL_GPP(GPP_R0, GPP_SPI_IO_2, GPP_CLK_LOOPBK), /* GPP_SPI */ }; -static const struct pad_community tgl_communities[TOTAL_GPIO_COMM] = { - /* GPP G, B, A */ - [COMM_0] = { +static const struct pad_community tgl_communities[] = { + [COMM_0] = { /* GPP B, T, A */ .port = PID_GPIOCOM0, - .first_pad = GPP_G0, - .last_pad = GPP_A23, + .first_pad = GPP_B0, + .last_pad = GPP_A24, .num_gpi_regs = NUM_GPIO_COM0_GPI_REGS, .pad_cfg_base = PAD_CFG_BASE, .host_own_reg_0 = HOSTSW_OWN_REG_0, @@ -96,18 +86,17 @@ static const struct pad_community tgl_communities[TOTAL_GPIO_COMM] = { .gpi_smi_sts_reg_0 = GPI_SMI_STS_0, .gpi_smi_en_reg_0 = GPI_SMI_EN_0, .max_pads_per_group = GPIO_MAX_NUM_PER_GROUP, - .name = "GPP_GBA", + .name = "GPP_BTA", .acpi_path = "\\_SB.PCI0.GPIO", - .reset_map = rst_map_com0, - .num_reset_vals = ARRAY_SIZE(rst_map_com0), + .reset_map = rst_map, + .num_reset_vals = ARRAY_SIZE(rst_map), .groups = tgl_community0_groups, .num_groups = ARRAY_SIZE(tgl_community0_groups), }, - /* GPP H, D, F */ - [COMM_1] = { + [COMM_1] = { /* GPP S, D, H, U, VGPIO */ .port = PID_GPIOCOM1, - .first_pad = GPP_H0, - .last_pad = GPP_F19, + .first_pad = GPP_S0, + .last_pad = vI2S2_RXD, .num_gpi_regs = NUM_GPIO_COM1_GPI_REGS, .pad_cfg_base = PAD_CFG_BASE, .host_own_reg_0 = HOSTSW_OWN_REG_0, @@ -116,18 +105,17 @@ static const struct pad_community tgl_communities[TOTAL_GPIO_COMM] = { .gpi_smi_sts_reg_0 = GPI_SMI_STS_0, .gpi_smi_en_reg_0 = GPI_SMI_EN_0, .max_pads_per_group = GPIO_MAX_NUM_PER_GROUP, - .name = "GPP_HDF", + .name = "GPP_SDHU", .acpi_path = "\\_SB.PCI0.GPIO", .reset_map = rst_map, .num_reset_vals = ARRAY_SIZE(rst_map), .groups = tgl_community1_groups, .num_groups = ARRAY_SIZE(tgl_community1_groups), }, - /* GPD */ - [COMM_2] = { + [COMM_2] = { /* GPD */ .port = PID_GPIOCOM2, .first_pad = GPD0, - .last_pad = GPD11, + .last_pad = GPD_DRAM_RESETB, .num_gpi_regs = NUM_GPIO_COM2_GPI_REGS, .pad_cfg_base = PAD_CFG_BASE, .host_own_reg_0 = HOSTSW_OWN_REG_0, @@ -138,16 +126,15 @@ static const struct pad_community tgl_communities[TOTAL_GPIO_COMM] = { .max_pads_per_group = GPIO_MAX_NUM_PER_GROUP, .name = "GPD", .acpi_path = "\\_SB.PCI0.GPIO", - .reset_map = rst_map, - .num_reset_vals = ARRAY_SIZE(rst_map), + .reset_map = rst_map_com2, + .num_reset_vals = ARRAY_SIZE(rst_map_com2), .groups = tgl_community2_groups, .num_groups = ARRAY_SIZE(tgl_community2_groups), }, - /* GPP C, E */ - [COMM_3] = { + [COMM_4] = { /* GPP F, C, HVCOS, E, JTAG */ .port = PID_GPIOCOM4, .first_pad = GPP_C0, - .last_pad = GPP_E23, + .last_pad = GPP_DBG_PMODE, .num_gpi_regs = NUM_GPIO_COM4_GPI_REGS, .pad_cfg_base = PAD_CFG_BASE, .host_own_reg_0 = HOSTSW_OWN_REG_0, @@ -156,18 +143,17 @@ static const struct pad_community tgl_communities[TOTAL_GPIO_COMM] = { .gpi_smi_sts_reg_0 = GPI_SMI_STS_0, .gpi_smi_en_reg_0 = GPI_SMI_EN_0, .max_pads_per_group = GPIO_MAX_NUM_PER_GROUP, - .name = "GPP_CE", + .name = "GPP_FCE", .acpi_path = "\\_SB.PCI0.GPIO", .reset_map = rst_map, .num_reset_vals = ARRAY_SIZE(rst_map), .groups = tgl_community4_groups, .num_groups = ARRAY_SIZE(tgl_community4_groups), }, - /* GPP R, S */ - [COMM_4] = { + [COMM_5] = { /* GPP R, SPI */ .port = PID_GPIOCOM5, .first_pad = GPP_R0, - .last_pad = GPP_S7, + .last_pad = GPP_CLK_LOOPBK, .num_gpi_regs = NUM_GPIO_COM5_GPI_REGS, .pad_cfg_base = PAD_CFG_BASE, .host_own_reg_0 = HOSTSW_OWN_REG_0, @@ -176,7 +162,7 @@ static const struct pad_community tgl_communities[TOTAL_GPIO_COMM] = { .gpi_smi_sts_reg_0 = GPI_SMI_STS_0, .gpi_smi_en_reg_0 = GPI_SMI_EN_0, .max_pads_per_group = GPIO_MAX_NUM_PER_GROUP, - .name = "GPP_RS", + .name = "GPP_CPU_VBPIO", .acpi_path = "\\_SB.PCI0.GPIO", .reset_map = rst_map, .num_reset_vals = ARRAY_SIZE(rst_map), diff --git a/src/soc/intel/tigerlake/include/soc/gpio.h b/src/soc/intel/tigerlake/include/soc/gpio.h index 4b359b7452..ccc274ba3e 100644 --- a/src/soc/intel/tigerlake/include/soc/gpio.h +++ b/src/soc/intel/tigerlake/include/soc/gpio.h @@ -1,7 +1,7 @@ /* * This file is part of the coreboot project. * - * Copyright (C) 2018 Intel Corp. + * Copyright (C) 2020 Intel Corp. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,6 +19,9 @@ #include #include -#define CROS_GPIO_DEVICE_NAME "INT3455:00" +#define CROS_GPIO_COMM0_NAME "INT34C5:00" +#define CROS_GPIO_COMM1_NAME "INT34C5:01" +#define CROS_GPIO_COMM4_NAME "INT34C5:02" +#define CROS_GPIO_COMM5_NAME "INT34C5:03" #endif diff --git a/src/soc/intel/tigerlake/include/soc/gpio_defs.h b/src/soc/intel/tigerlake/include/soc/gpio_defs.h index bffebcd312..6a5a6e2329 100644 --- a/src/soc/intel/tigerlake/include/soc/gpio_defs.h +++ b/src/soc/intel/tigerlake/include/soc/gpio_defs.h @@ -1,7 +1,7 @@ /* * This file is part of the coreboot project. * - * Copyright (C) 2018 Intel Corp. + * Copyright (C) 2020 Intel Corp. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,6 @@ #endif #include - #define GPIO_NUM_PAD_CFG_REGS 4 /* DW0, DW1, DW2, DW3 */ #define NUM_GPIO_COMx_GPI_REGS(n) \ @@ -43,222 +42,264 @@ * IOxAPIC IRQs for the GPIOs */ -/* Group G */ -#define GPP_G0_IRQ 0x18 -#define GPP_G1_IRQ 0x19 -#define GPP_G2_IRQ 0x1a -#define GPP_G3_IRQ 0x1b -#define GPP_G4_IRQ 0x1c -#define GPP_G5_IRQ 0x1d -#define GPP_G6_IRQ 0x1e -#define GPP_G7_IRQ 0x1f - /* Group B */ -#define GPP_B0_IRQ 0x20 -#define GPP_B1_IRQ 0x21 -#define GPP_B2_IRQ 0x22 -#define GPP_B3_IRQ 0x23 -#define GPP_B4_IRQ 0x24 -#define GPP_B5_IRQ 0x25 -#define GPP_B6_IRQ 0x26 -#define GPP_B7_IRQ 0x27 -#define GPP_B8_IRQ 0x28 -#define GPP_B9_IRQ 0x29 -#define GPP_B10_IRQ 0x2a -#define GPP_B11_IRQ 0x2b -#define GPP_B12_IRQ 0x2c -#define GPP_B13_IRQ 0x2d -#define GPP_B14_IRQ 0x2e -#define GPP_B15_IRQ 0x2f -#define GPP_B16_IRQ 0x30 -#define GPP_B17_IRQ 0x31 -#define GPP_B18_IRQ 0x32 -#define GPP_B19_IRQ 0x33 -#define GPP_B20_IRQ 0x34 -#define GPP_B21_IRQ 0x35 -#define GPP_B22_IRQ 0x36 -#define GPP_B23_IRQ 0x37 +#define GPP_B0_IRQ 0x18 +#define GPP_B1_IRQ 0x19 +#define GPP_B2_IRQ 0x1A +#define GPP_B3_IRQ 0x1B +#define GPP_B4_IRQ 0x1C +#define GPP_B5_IRQ 0x1D +#define GPP_B6_IRQ 0x1E +#define GPP_B7_IRQ 0x1F +#define GPP_B8_IRQ 0x20 +#define GPP_B9_IRQ 0x21 +#define GPP_B10_IRQ 0x22 +#define GPP_B11_IRQ 0x23 +#define GPP_B12_IRQ 0x24 +#define GPP_B13_IRQ 0x25 +#define GPP_B14_IRQ 0x26 +#define GPP_B15_IRQ 0x27 +#define GPP_B16_IRQ 0x28 +#define GPP_B17_IRQ 0x29 +#define GPP_B18_IRQ 0x2A +#define GPP_B19_IRQ 0x2B +#define GPP_B20_IRQ 0x2C +#define GPP_B21_IRQ 0x2D +#define GPP_B22_IRQ 0x2E +#define GPP_B23_IRQ 0x2F + +/* Group T */ +#define GPP_T0_IRQ 0x30 +#define GPP_T1_IRQ 0x31 +#define GPP_T2_IRQ 0x32 +#define GPP_T3_IRQ 0x33 +#define GPP_T4_IRQ 0x34 +#define GPP_T5_IRQ 0x35 +#define GPP_T6_IRQ 0x36 +#define GPP_T7_IRQ 0x37 +#define GPP_T8_IRQ 0x38 +#define GPP_T9_IRQ 0x39 +#define GPP_T10_IRQ 0x3A +#define GPP_T11IRQ 0x3B +#define GPP_T12_IRQ 0x3C +#define GPP_T13_IRQ 0x3D +#define GPP_T14_IRQ 0x3E +#define GPP_T15_IRQ 0x3F /* Group A */ -#define GPP_A0_IRQ 0x38 -#define GPP_A1_IRQ 0x39 -#define GPP_A2_IRQ 0x3a -#define GPP_A3_IRQ 0x3b -#define GPP_A4_IRQ 0x3c -#define GPP_A5_IRQ 0x3d -#define GPP_A6_IRQ 0x3e -#define GPP_A7_IRQ 0x3f -#define GPP_A8_IRQ 0x40 -#define GPP_A9_IRQ 0x41 -#define GPP_A10_IRQ 0x42 -#define GPP_A11_IRQ 0x43 -#define GPP_A12_IRQ 0x44 -#define GPP_A13_IRQ 0x45 -#define GPP_A14_IRQ 0x46 -#define GPP_A15_IRQ 0x47 -#define GPP_A16_IRQ 0x48 -#define GPP_A17_IRQ 0x49 -#define GPP_A18_IRQ 0x4a -#define GPP_A19_IRQ 0x4b -#define GPP_A20_IRQ 0x4c -#define GPP_A21_IRQ 0x4d -#define GPP_A22_IRQ 0x4e -#define GPP_A23_IRQ 0x4f +#define GPP_A0_IRQ 0x40 +#define GPP_A1_IRQ 0x41 +#define GPP_A2_IRQ 0x42 +#define GPP_A3_IRQ 0x43 +#define GPP_A4_IRQ 0x44 +#define GPP_A5_IRQ 0x45 +#define GPP_A6_IRQ 0x46 +#define GPP_A7_IRQ 0x47 +#define GPP_A8_IRQ 0x48 +#define GPP_A9_IRQ 0x49 +#define GPP_A10_IRQ 0x4A +#define GPP_A11_IRQ 0x4B +#define GPP_A12_IRQ 0x4C +#define GPP_A13_IRQ 0x4D +#define GPP_A14_IRQ 0x4E +#define GPP_A15_IRQ 0x4F +#define GPP_A16_IRQ 0x50 +#define GPP_A17_IRQ 0x51 +#define GPP_A18_IRQ 0x52 +#define GPP_A19_IRQ 0x53 +#define GPP_A20_IRQ 0x54 +#define GPP_A21_IRQ 0x55 +#define GPP_A22_IRQ 0x56 +#define GPP_A23_IRQ 0x57 + +/* Group R */ +#define GPP_R0_IRQ 0x58 +#define GPP_R1_IRQ 0x59 +#define GPP_R2_IRQ 0x5A +#define GPP_R3_IRQ 0x5B +#define GPP_R4_IRQ 0x5C +#define GPP_R5_IRQ 0x5D +#define GPP_R6_IRQ 0x5E +#define GPP_R7_IRQ 0x5F -/* Group H */ -#define GPP_H0_IRQ 0x70 -#define GPP_H1_IRQ 0x71 -#define GPP_H2_IRQ 0x72 -#define GPP_H3_IRQ 0x73 -#define GPP_H4_IRQ 0x74 -#define GPP_H5_IRQ 0x75 -#define GPP_H6_IRQ 0x76 -#define GPP_H7_IRQ 0x77 -#define GPP_H8_IRQ 0x18 -#define GPP_H9_IRQ 0x19 -#define GPP_H10_IRQ 0x1a -#define GPP_H11_IRQ 0x1b -#define GPP_H12_IRQ 0x1c -#define GPP_H13_IRQ 0x1d -#define GPP_H14_IRQ 0x1e -#define GPP_H15_IRQ 0x1f -#define GPP_H16_IRQ 0x20 -#define GPP_H17_IRQ 0x21 -#define GPP_H18_IRQ 0x22 -#define GPP_H19_IRQ 0x23 -#define GPP_H20_IRQ 0x24 -#define GPP_H21_IRQ 0x25 -#define GPP_H22_IRQ 0x26 -#define GPP_H23_IRQ 0x27 /* Group D */ -#define GPP_D0_IRQ 0x28 -#define GPP_D1_IRQ 0x29 -#define GPP_D2_IRQ 0x2a -#define GPP_D3_IRQ 0x2b -#define GPP_D4_IRQ 0x2c -#define GPP_D5_IRQ 0x2d -#define GPP_D6_IRQ 0x2e -#define GPP_D7_IRQ 0x2f -#define GPP_D8_IRQ 0x30 -#define GPP_D9_IRQ 0x31 -#define GPP_D10_IRQ 0x32 -#define GPP_D11_IRQ 0x33 -#define GPP_D12_IRQ 0x34 -#define GPP_D13_IRQ 0x35 -#define GPP_D14_IRQ 0x36 -#define GPP_D15_IRQ 0x37 -#define GPP_D16_IRQ 0x38 -#define GPP_D17_IRQ 0x39 -#define GPP_D18_IRQ 0x3a -#define GPP_D19_IRQ 0x3b - -/* Group F */ -#define GPP_F0_IRQ 0x40 -#define GPP_F1_IRQ 0x41 -#define GPP_F2_IRQ 0x42 -#define GPP_F3_IRQ 0x43 -#define GPP_F4_IRQ 0x44 -#define GPP_F5_IRQ 0x45 -#define GPP_F6_IRQ 0x46 -#define GPP_F7_IRQ 0x47 -#define GPP_F8_IRQ 0x48 -#define GPP_F9_IRQ 0x49 -#define GPP_F10_IRQ 0x4a -#define GPP_F11_IRQ 0x4b -#define GPP_F12_IRQ 0x4c -#define GPP_F13_IRQ 0x4d -#define GPP_F14_IRQ 0x4e -#define GPP_F15_IRQ 0x4f -#define GPP_F16_IRQ 0x50 -#define GPP_F17_IRQ 0x51 -#define GPP_F18_IRQ 0x52 -#define GPP_F19_IRQ 0x53 - -/* Group GPD */ -#define GPD0_IRQ 0x64 -#define GPD1_IRQ 0x65 -#define GPD2_IRQ 0x66 -#define GPD3_IRQ 0x67 -#define GPD4_IRQ 0x68 -#define GPD5_IRQ 0x69 -#define GPD6_IRQ 0x6a -#define GPD7_IRQ 0x6b -#define GPD8_IRQ 0x6c -#define GPD9_IRQ 0x6d -#define GPD10_IRQ 0x6e -#define GPD11_IRQ 0x6f - -/* Group C */ -#define GPP_C0_IRQ 0x5a -#define GPP_C1_IRQ 0x5b -#define GPP_C2_IRQ 0x5c -#define GPP_C3_IRQ 0x5d -#define GPP_C4_IRQ 0x5e -#define GPP_C5_IRQ 0x5f -#define GPP_C6_IRQ 0x60 -#define GPP_C7_IRQ 0x61 -#define GPP_C8_IRQ 0x62 -#define GPP_C9_IRQ 0x63 -#define GPP_C10_IRQ 0x64 -#define GPP_C11_IRQ 0x65 -#define GPP_C12_IRQ 0x66 -#define GPP_C13_IRQ 0x67 -#define GPP_C14_IRQ 0x68 -#define GPP_C15_IRQ 0x69 -#define GPP_C16_IRQ 0x6a -#define GPP_C17_IRQ 0x6b -#define GPP_C18_IRQ 0x6c -#define GPP_C19_IRQ 0x6d -#define GPP_C20_IRQ 0x6e -#define GPP_C21_IRQ 0x6f -#define GPP_C22_IRQ 0x70 -#define GPP_C23_IRQ 0x71 -/* Group E */ -#define GPP_E0_IRQ 0x72 -#define GPP_E1_IRQ 0x73 -#define GPP_E2_IRQ 0x74 -#define GPP_E3_IRQ 0x75 -#define GPP_E4_IRQ 0x76 -#define GPP_E5_IRQ 0x77 -#define GPP_E6_IRQ 0x18 -#define GPP_E7_IRQ 0x19 -#define GPP_E8_IRQ 0x1a -#define GPP_E9_IRQ 0x1b -#define GPP_E10_IRQ 0x1c -#define GPP_E11_IRQ 0x1d -#define GPP_E12_IRQ 0x1e -#define GPP_E13_IRQ 0x1f -#define GPP_E14_IRQ 0x20 -#define GPP_E15_IRQ 0x21 -#define GPP_E16_IRQ 0x22 -#define GPP_E17_IRQ 0x23 -#define GPP_E18_IRQ 0x24 -#define GPP_E19_IRQ 0x25 -#define GPP_E20_IRQ 0x26 -#define GPP_E21_IRQ 0x27 -#define GPP_E22_IRQ 0x28 -#define GPP_E23_IRQ 0x29 - -/* Group R*/ -#define GPP_R0_IRQ 0x50 -#define GPP_R1_IRQ 0x51 -#define GPP_R2_IRQ 0x52 -#define GPP_R3_IRQ 0x53 -#define GPP_R4_IRQ 0x54 -#define GPP_R5_IRQ 0x55 -#define GPP_R6_IRQ 0x56 -#define GPP_R7_IRQ 0x57 +#define GPD0_IRQ 0x60 +#define GPD1_IRQ 0x61 +#define GPD2_IRQ 0x62 +#define GPD3_IRQ 0x63 +#define GPD4_IRQ 0x64 +#define GPD5_IRQ 0x65 +#define GPD6_IRQ 0x66 +#define GPD7_IRQ 0x67 +#define GPD8_IRQ 0x68 +#define GPD9_IRQ 0x69 +#define GPD10_IRQ 0x6A +#define GPD11_IRQ 0x6B /* Group S */ -#define GPP_S0_IRQ 0x5c -#define GPP_S1_IRQ 0x5d -#define GPP_S2_IRQ 0x5e -#define GPP_S3_IRQ 0x5f -#define GPP_S4_IRQ 0x60 -#define GPP_S5_IRQ 0x61 -#define GPP_S6_IRQ 0x62 -#define GPP_S7_IRQ 0x63 +#define GPP_S0_IRQ 0x6C +#define GPP_S1_IRQ 0x6D +#define GPP_S2_IRQ 0x6E +#define GPP_S3_IRQ 0x6F +#define GPP_S4_IRQ 0x70 +#define GPP_S5_IRQ 0x71 +#define GPP_S6_IRQ 0x72 +#define GPP_S7_IRQ 0x73 + +/* Group H */ +#define GPP_H0_IRQ 0x74 +#define GPP_H1_IRQ 0x75 +#define GPP_H2_IRQ 0x76 +#define GPP_H3_IRQ 0x77 +#define GPP_H4_IRQ 0x18 +#define GPP_H5_IRQ 0x19 +#define GPP_H6_IRQ 0x1A +#define GPP_H7_IRQ 0x1B +#define GPP_H8_IRQ 0x1C +#define GPP_H9_IRQ 0x1D +#define GPP_H10_IRQ 0x1E +#define GPP_H11_IRQ 0x1F +#define GPP_H12_IRQ 0x20 +#define GPP_H13_IRQ 0x21 +#define GPP_H14_IRQ 0x22 +#define GPP_H15_IRQ 0x23 +#define GPP_H16_IRQ 0x24 +#define GPP_H17_IRQ 0x25 +#define GPP_H18_IRQ 0x26 +#define GPP_H19_IRQ 0x27 +#define GPP_H20_IRQ 0x28 +#define GPP_H21_IRQ 0x29 +#define GPP_H22_IRQ 0x2A +#define GPP_H23_IRQ 0x2B + +/* Group D */ +#define GPP_D0_IRQ 0x2C +#define GPP_D1_IRQ 0x2D +#define GPP_D2_IRQ 0x2E +#define GPP_D3_IRQ 0x2F +#define GPP_D4_IRQ 0x30 +#define GPP_D5_IRQ 0x31 +#define GPP_D6_IRQ 0x32 +#define GPP_D7_IRQ 0x33 +#define GPP_D8_IRQ 0x34 +#define GPP_D9_IRQ 0x35 +#define GPP_D10_IRQ 0x36 +#define GPP_D11_IRQ 0x37 +#define GPP_D12_IRQ 0x38 +#define GPP_D13_IRQ 0x39 +#define GPP_D14_IRQ 0x3A +#define GPP_D15_IRQ 0x3B +#define GPP_D16_IRQ 0x3C +#define GPP_D17_IRQ 0x3D +#define GPP_D18_IRQ 0x3E +#define GPP_D19_IRQ 0x3F + + +/* Group U */ +#define GPP_U0_IRQ 0x40 +#define GPP_U1IRQ 0x41 +#define GPP_U2_IRQ 0x42 +#define GPP_U3_IRQ 0x43 +#define GPP_U4_IRQ 0x44 +#define GPP_U5_IRQ 0x45 +#define GPP_U6_IRQ 0x46 +#define GPP_U7_IRQ 0x47 +#define GPP_U8_IRQ 0x48 +#define GPP_U9_IRQ 0x49 +#define GPP_U10_IRQ 0x4A +#define GPP_U11_IRQ 0x4B +#define GPP_U12_IRQ 0x4C +#define GPP_U13_IRQ 0x4D +#define GPP_U14_IRQ 0x4E +#define GPP_U15_IRQ 0x4F +#define GPP_U16_IRQ 0x50 +#define GPP_U17_IRQ 0x51 +#define GPP_U18_IRQ 0x52 +#define GPP_U19_IRQ 0x53 + + +#define GPP_VGPIO4_IRQ 0x54 + +/* Group F */ +#define GPP_F0_IRQ 0x56 +#define GPP_F1_IRQ 0x57 +#define GPP_F2_IRQ 0x58 +#define GPP_F3_IRQ 0x59 +#define GPP_F4_IRQ 0x5A +#define GPP_F5_IRQ 0x5B +#define GPP_F6_IRQ 0x5C +#define GPP_F7_IRQ 0x5D +#define GPP_F8_IRQ 0x5E +#define GPP_F9_IRQ 0x5F +#define GPP_F10_IRQ 0x60 +#define GPP_F11_IRQ 0x61 +#define GPP_F12_IRQ 0x62 +#define GPP_F13_IRQ 0x63 +#define GPP_F14_IRQ 0x64 +#define GPP_F15_IRQ 0x65 +#define GPP_F16_IRQ 0x66 +#define GPP_F17_IRQ 0x67 +#define GPP_F18_IRQ 0x68 +#define GPP_F19_IRQ 0x69 +#define GPP_F20_IRQ 0x6A +#define GPP_F21_IRQ 0x6B +#define GPP_F22_IRQ 0x6C +#define GPP_F23_IRQ 0x6D + +/* Group C */ +#define GPP_C0_iIRQ 0x6E +#define GPP_C1_IRQ 0x6F +#define GPP_C2_IRQ 0x70 +#define GPP_C3_IRQ 0x71 +#define GPP_C4_IRQ 0x72 +#define GPP_C5_IRQ 0x73 +#define GPP_C6_IRQ 0x74 +#define GPP_C7_IRQ 0x75 +#define GPP_C8_IRQ 0x76 +#define GPP_C9_IRQ 0x77 +#define GPP_C10_IRQ 0x18 +#define GPP_C11_IRQ 0x19 +#define GPP_C12_IRQ 0x1A +#define GPP_C13_IRQ 0x1B +#define GPP_C14_IRQ 0x1C +#define GPP_C15_IRQ 0x1D +#define GPP_C16_IRQ 0x1E +#define GPP_C17_IRQ 0x1F +#define GPP_C18_IRQ 0x20 +#define GPP_C19_IRQ 0x21 +#define GPP_C20_IRQ 0x22 +#define GPP_C21_IRQ 0x23 +#define GPP_C22_IRQ 0x24 +#define GPP_C23_IRQ 0x25 + + + +/* Group E */ +#define GPP_E0_IRQ 0x26 +#define GPP_E1_IRQ 0x27 +#define GPP_E2_IRQ 0x28 +#define GPP_E3_IRQ 0x29 +#define GPP_E4_IRQ 0x30 +#define GPP_E5_IRQ 0x31 +#define GPP_E6_IRQ 0x32 +#define GPP_E7_IRQ 0x33 +#define GPP_E8_IRQ 0x34 +#define GPP_E9_IRQ 0x35 +#define GPP_E10_IRQ 0x36 +#define GPP_E11_IRQ 0x37 +#define GPP_E12_IRQ 0x38 +#define GPP_E13_IRQ 0x39 +#define GPP_E14_IRQ 0x3A +#define GPP_E15_IRQ 0x3B +#define GPP_E16_IRQ 0x3C +#define GPP_E17_IRQ 0x3D +#define GPP_E18_IRQ 0x3E +#define GPP_E19_IRQ 0x3F +#define GPP_E20_IRQ 0x40 +#define GPP_E21_IRQ 0x41 +#define GPP_E22_IRQ 0x42 +#define GPP_E23_IRQ 0x43 /* Register defines. */ #define GPIO_MISCCFG 0x10 @@ -269,8 +310,9 @@ #define GPI_INT_EN_0 0x110 #define GPI_SMI_STS_0 0x180 #define GPI_SMI_EN_0 0x1A0 -#define PAD_CFG_BASE 0x600 +#define PAD_CFG_BASE 0x700 #define GPIORXSTATE_MASK 0x1 #define GPIORXSTATE_SHIFT 1 +#define GPIOTXSTATE_MASK 0x1 #endif diff --git a/src/soc/intel/tigerlake/include/soc/gpio_soc_defs.h b/src/soc/intel/tigerlake/include/soc/gpio_soc_defs.h index 738e217cfd..62de63f740 100644 --- a/src/soc/intel/tigerlake/include/soc/gpio_soc_defs.h +++ b/src/soc/intel/tigerlake/include/soc/gpio_soc_defs.h @@ -12,10 +12,8 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ - #ifndef _SOC_TIGERLAKE_GPIO_SOC_DEFS_H_ #define _SOC_TIGERLAKE_GPIO_SOC_DEFS_H_ - /* * Most of the fixed numbers and macros are based on the GPP groups. * The GPIO groups are accessed through register blocks called @@ -34,259 +32,354 @@ #define GPP_C 0xB #define GPP_E 0xC -#define GPIO_NUM_GROUPS 11 -#define GPIO_MAX_NUM_PER_GROUP 24 +#define GPIO_MAX_NUM_PER_GROUP 27 +#define COMM_0 0 +#define COMM_1 1 +#define COMM_2 2 +/* GPIO community 3 is not exposed to be used and hence is skipped. */ +#define COMM_4 3 +#define COMM_5 4 /* * GPIOs are ordered monotonically increasing to match ACPI/OS driver. */ - -/* Group G */ -#define GPP_G0 0 -#define GPP_G1 1 -#define GPP_G2 2 -#define GPP_G3 3 -#define GPP_G4 4 -#define GPP_G5 5 -#define GPP_G6 6 -#define GPP_G7 7 - /* Group B */ -#define GPP_B0 8 -#define GPP_B1 9 -#define GPP_B2 10 -#define GPP_B3 11 -#define GPP_B4 12 -#define GPP_B5 13 -#define GPP_B6 14 -#define GPP_B7 15 -#define GPP_B8 16 -#define GPP_B9 17 -#define GPP_B10 18 -#define GPP_B11 19 -#define GPP_B12 20 -#define GPP_B13 21 -#define GPP_B14 22 -#define GPP_B15 23 -#define GPP_B16 24 -#define GPP_B17 25 -#define GPP_B18 26 -#define GPP_B19 27 -#define GPP_B20 28 -#define GPP_B21 29 -#define GPP_B22 30 -#define GPP_B23 31 -#define GPIO_RSVD_0 32 -#define GPIO_RSVD_1 33 +#define GPP_B0 0 +#define GPP_B1 1 +#define GPP_B2 2 +#define GPP_B3 3 +#define GPP_B4 4 +#define GPP_B5 5 +#define GPP_B6 6 +#define GPP_B7 7 +#define GPP_B8 8 +#define GPP_B9 9 +#define GPP_B10 10 +#define GPP_B11 11 +#define GPP_B12 12 +#define GPP_B13 13 +#define GPP_B14 14 +#define GPP_B15 15 +#define GPP_B16 16 +#define GPP_B17 17 +#define GPP_B18 18 +#define GPP_B19 19 +#define GPP_B20 20 +#define GPP_B21 21 +#define GPP_B22 22 +#define GPP_B23 23 +#define GPP_B24 24 /* GSPI0_CLK_LOOPBK */ +#define GPP_B25 25 /* GSPI1_CLK_LOOPBK */ + +/* Group T */ +#define GPP_T0 26 +#define GPP_T1 27 +#define GPP_T2 28 +#define GPP_T3 29 +#define GPP_T4 30 +#define GPP_T5 31 +#define GPP_T6 32 +#define GPP_T7 33 +#define GPP_T8 34 +#define GPP_T9 35 +#define GPP_T10 36 +#define GPP_T11 37 +#define GPP_T12 38 +#define GPP_T13 39 +#define GPP_T14 40 +#define GPP_T15 41 /* Group A */ -#define GPP_A0 34 -#define GPP_A1 35 -#define GPP_A2 36 -#define GPP_A3 37 -#define GPP_A4 38 -#define GPP_A5 39 -#define GPP_A6 40 -#define GPP_A7 41 -#define GPP_A8 42 -#define GPP_A9 43 -#define GPP_A10 44 -#define GPP_A11 45 -#define GPP_A12 46 -#define GPP_A13 47 -#define GPP_A14 48 -#define GPP_A15 49 -#define GPP_A16 50 -#define GPP_A17 51 -#define GPP_A18 52 -#define GPP_A19 53 -#define GPP_A20 54 -#define GPP_A21 55 -#define GPP_A22 56 -#define GPP_A23 57 +#define GPP_A0 42 +#define GPP_A1 43 +#define GPP_A2 44 +#define GPP_A3 45 +#define GPP_A4 46 +#define GPP_A5 47 +#define GPP_A6 48 +#define GPP_A7 49 +#define GPP_A8 50 +#define GPP_A9 51 +#define GPP_A10 52 +#define GPP_A11 53 +#define GPP_A12 54 +#define GPP_A13 55 +#define GPP_A14 56 +#define GPP_A15 57 +#define GPP_A16 58 +#define GPP_A17 59 +#define GPP_A18 60 +#define GPP_A19 61 +#define GPP_A20 62 +#define GPP_A21 63 +#define GPP_A22 64 +#define GPP_A23 65 +#define GPP_A24 66 /* ESPI_CLK_LOOPBK */ -#define NUM_GPIO_COM0_PADS (GPP_A23 - GPP_G0 + 1) - -/* Group H */ -#define GPP_H0 58 -#define GPP_H1 59 -#define GPP_H2 60 -#define GPP_H3 61 -#define GPP_H4 62 -#define GPP_H5 63 -#define GPP_H6 64 -#define GPP_H7 65 -#define GPP_H8 66 -#define GPP_H9 67 -#define GPP_H10 68 -#define GPP_H11 69 -#define GPP_H12 70 -#define GPP_H13 71 -#define GPP_H14 72 -#define GPP_H15 73 -#define GPP_H16 74 -#define GPP_H17 75 -#define GPP_H18 76 -#define GPP_H19 77 -#define GPP_H20 78 -#define GPP_H21 79 -#define GPP_H22 80 -#define GPP_H23 81 - -/* Group D */ -#define GPP_D0 82 -#define GPP_D1 83 -#define GPP_D2 84 -#define GPP_D3 85 -#define GPP_D4 86 -#define GPP_D5 87 -#define GPP_D6 88 -#define GPP_D7 89 -#define GPP_D8 90 -#define GPP_D9 91 -#define GPP_D10 92 -#define GPP_D11 93 -#define GPP_D12 94 -#define GPP_D13 95 -#define GPP_D14 96 -#define GPP_D15 97 -#define GPP_D16 98 -#define GPP_D17 99 -#define GPP_D18 100 -#define GPP_D19 101 -#define GPIO_RSVD_2 102 - -/* Group F */ -#define GPP_F0 103 -#define GPP_F1 104 -#define GPP_F2 105 -#define GPP_F3 106 -#define GPP_F4 107 -#define GPP_F5 108 -#define GPP_F6 109 -#define GPP_F7 110 -#define GPP_F8 111 -#define GPP_F9 112 -#define GPP_F10 113 -#define GPP_F11 114 -#define GPP_F12 115 -#define GPP_F13 116 -#define GPP_F14 117 -#define GPP_F15 118 -#define GPP_F16 119 -#define GPP_F17 120 -#define GPP_F18 121 -#define GPP_F19 122 - -#define NUM_GPIO_COM1_PADS (GPP_F19 - GPP_H0 + 1) - - -/* Group GPD */ -#define GPD0 123 -#define GPD1 124 -#define GPD2 125 -#define GPD3 126 -#define GPD4 127 -#define GPD5 128 -#define GPD6 129 -#define GPD7 130 -#define GPD8 131 -#define GPD9 132 -#define GPD10 133 -#define GPD11 134 - -#define NUM_GPIO_COM2_PADS (GPD11 - GPD0 + 1) - - -/* Group C */ -#define GPP_C0 135 -#define GPP_C1 136 -#define GPP_C2 137 -#define GPP_C3 138 -#define GPP_C4 139 -#define GPP_C5 140 -#define GPP_C6 141 -#define GPP_C7 142 -#define GPP_C8 143 -#define GPP_C9 144 -#define GPP_C10 145 -#define GPP_C11 146 -#define GPP_C12 147 -#define GPP_C13 148 -#define GPP_C14 149 -#define GPP_C15 150 -#define GPP_C16 151 -#define GPP_C17 152 -#define GPP_C18 153 -#define GPP_C19 154 -#define GPP_C20 155 -#define GPP_C21 156 -#define GPP_C22 157 -#define GPP_C23 158 -#define GPIO_RSVD_3 159 -#define GPIO_RSVD_4 160 -#define GPIO_RSVD_5 161 -#define GPIO_RSVD_6 162 -#define GPIO_RSVD_7 163 -#define GPIO_RSVD_8 164 - -/* Group E */ -#define GPP_E0 165 -#define GPP_E1 166 -#define GPP_E2 167 -#define GPP_E3 168 -#define GPP_E4 169 -#define GPP_E5 170 -#define GPP_E6 171 -#define GPP_E7 172 -#define GPP_E8 173 -#define GPP_E9 174 -#define GPP_E10 175 -#define GPP_E11 176 -#define GPP_E12 177 -#define GPP_E13 178 -#define GPP_E14 179 -#define GPP_E15 180 -#define GPP_E16 181 -#define GPP_E17 182 -#define GPP_E18 183 -#define GPP_E19 184 -#define GPP_E20 185 -#define GPP_E21 186 -#define GPP_E22 187 -#define GPP_E23 188 - -#define NUM_GPIO_COM4_PADS (GPP_E23 - GPP_C0 + 1) - -/* Group R*/ -#define GPP_R0 189 -#define GPP_R1 190 -#define GPP_R2 191 -#define GPP_R3 192 -#define GPP_R4 193 -#define GPP_R5 194 -#define GPP_R6 195 -#define GPP_R7 196 +#define NUM_GPIO_COM0_PADS (GPP_A24 - GPP_B0 + 1) /* Group S */ -#define GPP_S0 197 -#define GPP_S1 198 -#define GPP_S2 199 -#define GPP_S3 200 -#define GPP_S4 201 -#define GPP_S5 202 -#define GPP_S6 203 -#define GPP_S7 204 +#define GPP_S0 67 +#define GPP_S1 68 +#define GPP_S2 69 +#define GPP_S3 70 +#define GPP_S4 71 +#define GPP_S5 72 +#define GPP_S6 73 +#define GPP_S7 74 -#define NUM_GPIO_COM5_PADS (GPP_S7 - GPP_R0 + 1) +/* Group H */ +#define GPP_H0 75 +#define GPP_H1 76 +#define GPP_H2 77 +#define GPP_H3 78 +#define GPP_H4 79 +#define GPP_H5 80 +#define GPP_H6 81 +#define GPP_H7 82 +#define GPP_H8 83 +#define GPP_H9 84 +#define GPP_H10 85 +#define GPP_H11 86 +#define GPP_H12 87 +#define GPP_H13 88 +#define GPP_H14 89 +#define GPP_H15 90 +#define GPP_H16 91 +#define GPP_H17 92 +#define GPP_H18 93 +#define GPP_H19 94 +#define GPP_H20 95 +#define GPP_H21 96 +#define GPP_H22 97 +#define GPP_H23 98 -#define TOTAL_PADS 205 +/* Group D */ +#define GPP_D0 99 +#define GPP_D1 100 +#define GPP_D2 101 +#define GPP_D3 102 +#define GPP_D4 103 +#define GPP_D5 104 +#define GPP_D6 105 +#define GPP_D7 106 +#define GPP_D8 107 +#define GPP_D9 108 +#define GPP_D10 109 +#define GPP_D11 110 +#define GPP_D12 111 +#define GPP_D13 112 +#define GPP_D14 113 +#define GPP_D15 114 +#define GPP_D16 115 +#define GPP_D17 116 +#define GPP_D18 117 +#define GPP_D19 118 +#define GPP_GSPI2_CLK_LOOPBK 119 -#define COMM_0 0 -#define COMM_1 1 -#define COMM_2 2 -#define COMM_3 3 -#define COMM_4 4 -#define TOTAL_GPIO_COMM 5 +/* Group U */ +#define GPP_U0 120 +#define GPP_U1 121 +#define GPP_U2 122 +#define GPP_U3 123 +#define GPP_U4 124 +#define GPP_U5 125 +#define GPP_U6 126 +#define GPP_U7 127 +#define GPP_U8 128 +#define GPP_U9 129 +#define GPP_U10 130 +#define GPP_U11 131 +#define GPP_U12 132 +#define GPP_U13 133 +#define GPP_U14 134 +#define GPP_U15 135 +#define GPP_U16 136 +#define GPP_U17 137 +#define GPP_U18 138 +#define GPP_U19 139 +#define GPP_GSPI3_CLK_LOOPBK 140 +#define GPP_GSPI4_CLK_LOOPBK 141 +#define GPP_GSPI5_CLK_LOOPBK 142 +#define GPP_GSPI6_CLK_LOOPBK 143 + +/* Group VGPIO */ +#define CNV_BTEN 144 +#define CNV_BT_HOST_WAKEB 145 +#define CNV_BT_IF_SELECT 146 +#define vCNV_BT_UART_TXD 147 +#define vCNV_BT_UART_RXD 148 +#define vCNV_BT_UART_CTS_B 149 +#define vCNV_BT_UART_RTS_B 150 +#define vCNV_MFUART1_TXD 151 +#define vCNV_MFUART1_RXD 152 +#define vCNV_MFUART1_CTS_B 153 +#define vCNV_MFUART1_RTS_B 154 +#define vUART0_TXD 155 +#define vUART0_RXD 156 +#define vUART0_CTS_B 157 +#define vUART0_RTS_B 158 +#define vISH_UART0_TXD 159 +#define vISH_UART0_RXD 160 +#define vISH_UART0_CTS_B 161 +#define vISH_UART0_RTS_B 162 +#define vCNV_BT_I2S_BCLK 163 +#define vCNV_BT_I2S_WS_SYNC 164 +#define vCNV_BT_I2S_SDO 165 +#define vCNV_BT_I2S_SDI 166 +#define vI2S2_SCLK 167 +#define vI2S2_SFRM 168 +#define vI2S2_TXD 169 +#define vI2S2_RXD 170 + +#define NUM_GPIO_COM1_PADS (vI2S2_RXD - GPP_S0 + 1) + +/* Group GPD */ +#define GPD0 171 +#define GPD1 172 +#define GPD2 173 +#define GPD3 174 +#define GPD4 175 +#define GPD5 176 +#define GPD6 177 +#define GPD7 178 +#define GPD8 179 +#define GPD9 180 +#define GPD10 181 +#define GPD11 182 +#define GPD_INPUT3VSEL 183 +#define GPD_SLP_LANB 184 +#define GPD__SLP_SUSB 185 +#define GPD_WAKEB 186 +#define GPD_DRAM_RESETB 187 + +#define NUM_GPIO_COM2_PADS (GPD_DRAM_RESETB - GPD0 + 1) + +/* Group C */ +#define GPP_C0 188 +#define GPP_C1 189 +#define GPP_C2 190 +#define GPP_C3 191 +#define GPP_C4 192 +#define GPP_C5 193 +#define GPP_C6 194 +#define GPP_C7 195 +#define GPP_C8 196 +#define GPP_C9 197 +#define GPP_C10 198 +#define GPP_C11 199 +#define GPP_C12 200 +#define GPP_C13 201 +#define GPP_C14 202 +#define GPP_C15 203 +#define GPP_C16 204 +#define GPP_C17 205 +#define GPP_C18 206 +#define GPP_C19 207 +#define GPP_C20 208 +#define GPP_C21 209 +#define GPP_C22 210 +#define GPP_C23 211 + +/* Group F */ +#define GPP_F0 212 +#define GPP_F1 213 +#define GPP_F2 214 +#define GPP_F3 215 +#define GPP_F4 216 +#define GPP_F5 217 +#define GPP_F6 218 +#define GPP_F7 219 +#define GPP_F8 220 +#define GPP_F9 221 +#define GPP_F10 222 +#define GPP_F11 223 +#define GPP_F12 224 +#define GPP_F13 225 +#define GPP_F14 226 +#define GPP_F15 227 +#define GPP_F16 228 +#define GPP_F17 229 +#define GPP_F18 230 +#define GPP_F19 231 +#define GPP_F20 232 +#define GPP_F21 233 +#define GPP_F22 234 +#define GPP_F23 235 +#define GPP_F_CLK_LOOPBK 236 + +/* Group HVCMOS */ +#define GPP_L_BKLTEN 237 +#define GPP_L_BKLTCTL 238 +#define GPP_L_VDDEN 239 +#define GPP_SYS_PWROK 240 +#define GPP_SYS_RESETB 241 +#define GPP_MLK_RSTB 242 + +/* Group E */ +#define GPP_E0 243 +#define GPP_E1 244 +#define GPP_E2 245 +#define GPP_E3 246 +#define GPP_E4 247 +#define GPP_E5 248 +#define GPP_E6 249 +#define GPP_E7 250 +#define GPP_E8 251 +#define GPP_E9 252 +#define GPP_E10 253 +#define GPP_E11 254 +#define GPP_E12 255 +#define GPP_E13 256 +#define GPP_E14 257 +#define GPP_E15 258 +#define GPP_E16 259 +#define GPP_E17 260 +#define GPP_E18 261 +#define GPP_E19 262 +#define GPP_E20 263 +#define GPP_E21 264 +#define GPP_E22 265 +#define GPP_E23 266 +#define GPP_E_CLK_LOOPBK 267 + +/* Group JTAG */ +#define GPP_JTAG_TDO 268 +#define GPP_JTAG_X 269 +#define GPP_JTAG_PRDYB 270 +#define GPP_JTAG_PREQB 271 +#define GPP_CPU_TRSTB 272 +#define GPP_JTAG_TDI 273 +#define GPP_JTAG_TMS 274 +#define GPP_JTAG_TCK 275 +#define GPP_DBG_PMODE 276 + +#define NUM_GPIO_COM4_PADS (GPP_DBG_PMODE - GPP_C0 + 1) + +/* Group R */ +#define GPP_R0 277 +#define GPP_R1 278 +#define GPP_R2 279 +#define GPP_R3 280 +#define GPP_R4 281 +#define GPP_R5 282 +#define GPP_R6 283 +#define GPP_R7 284 + +/* Group SPI */ +#define GPP_SPI_IO_2 285 +#define GPP_SPI_IO_3 286 +#define GPP_SPI_MOSI_IO_0 287 +#define GPP_SPI_MOSI_IO_1 288 +#define GPP_SPI_TPM_CSB 289 +#define GPP_SPI_FLASH_0_CSB 290 +#define GPP_SPI_FLASH_1_CSB 291 +#define GPP_SPI_CLK 292 +#define GPP_CLK_LOOPBK 293 + +#define NUM_GPIO_COM5_PADS (GPP_CLK_LOOPBK - GPP_R0 + 1) + +#define TOTAL_GPIO_COMM (COMM_5 + 1) +#define TOTAL_PADS 294 #endif From a8cb7ed784f51b071873585359257110c1bcc8be Mon Sep 17 00:00:00 2001 From: Shaunak Saha Date: Wed, 15 Jan 2020 15:35:41 -0800 Subject: [PATCH 17/46] soc/intel/tigerlake: Add GPIO helper function This patch adds ASL methods like GRXS, GTXS, STXS and CTXS which are used to get, set and clear gpio values. We use ASL 2.0 syntax here for gpio.asl. BUG=b:144680462 BRANCH=none TEST=Build and boot tigerlake rvp board Change-Id: I17e75ff2a7cb67e94669059a1ed9d73a720ebcb1 Signed-off-by: Shaunak Saha Reviewed-on: https://review.coreboot.org/c/coreboot/+/38442 Reviewed-by: Subrata Banik Reviewed-by: Nick Vaccaro Reviewed-by: Wonkyu Kim Tested-by: build bot (Jenkins) --- src/soc/intel/tigerlake/acpi/gpio.asl | 46 ++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/soc/intel/tigerlake/acpi/gpio.asl b/src/soc/intel/tigerlake/acpi/gpio.asl index dc76a387b7..f6cccfb801 100644 --- a/src/soc/intel/tigerlake/acpi/gpio.asl +++ b/src/soc/intel/tigerlake/acpi/gpio.asl @@ -163,7 +163,51 @@ Method (GRXS, 1, Serialized) { VAL0, 32 } - And (GPIORXSTATE_MASK, ShiftRight (VAL0, GPIORXSTATE_SHIFT), Local0) + Local0 = GPIORXSTATE_MASK & (VAL0 >> GPIORXSTATE_SHIFT) Return (Local0) } + +/* + * Get GPIO Tx Value + * Arg0 - GPIO Number + */ +Method (GTXS, 1, Serialized) +{ + OperationRegion (PREG, SystemMemory, GADD (Arg0), 4) + Field (PREG, AnyAcc, NoLock, Preserve) + { + VAL0, 32 + } + Local0 = GPIOTXSTATE_MASK & VAL0 + + Return (Local0) +} + +/* + * Set GPIO Tx Value + * Arg0 - GPIO Number + */ +Method (STXS, 1, Serialized) +{ + OperationRegion (PREG, SystemMemory, GADD (Arg0), 4) + Field (PREG, AnyAcc, NoLock, Preserve) + { + VAL0, 32 + } + VAL0 |= GPIOTXSTATE_MASK +} + +/* + * Clear GPIO Tx Value + * Arg0 - GPIO Number + */ +Method (CTXS, 1, Serialized) +{ + OperationRegion (PREG, SystemMemory, GADD (Arg0), 4) + Field (PREG, AnyAcc, NoLock, Preserve) + { + VAL0, 32 + } + VAL0 &= ~GPIOTXSTATE_MASK +} From 6d126acfac7ec8c13f9814c98d1016c64545cabd Mon Sep 17 00:00:00 2001 From: Srinidhi N Kaushik Date: Thu, 23 Jan 2020 23:26:02 -0800 Subject: [PATCH 18/46] vendorcode/intel/fsp/fsp2_0/tgl: Update FSP header files for Tiger Lake Update FSP header files for Tiger Lake platform version 2457. Signed-off-by: Srinidhi N Kaushik Change-Id: I47574844a8b5fd888e8e75ed2f60f6df465b33ee Reviewed-on: https://review.coreboot.org/c/coreboot/+/38555 Tested-by: build bot (Jenkins) Reviewed-by: Nick Vaccaro Reviewed-by: Wonkyu Kim --- .../intel/fsp/fsp2_0/tigerlake/FspmUpd.h | 121 ++++++++++++++++-- .../intel/fsp/fsp2_0/tigerlake/FspsUpd.h | 4 +- 2 files changed, 110 insertions(+), 15 deletions(-) diff --git a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspmUpd.h b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspmUpd.h index f37e56cbf3..e81131db85 100644 --- a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspmUpd.h +++ b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspmUpd.h @@ -1,6 +1,6 @@ /** @file -Copyright (c) 2019, Intel Corporation. All rights reserved.
+Copyright (c) 2020, Intel Corporation. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -355,7 +355,17 @@ typedef struct { /** Offset 0x01B7 - Reserved **/ - UINT8 Reserved11[178]; + UINT8 Reserved11[166]; + +/** Offset 0x025D - IMGU CLKOUT Configuration + The configuration of IMGU CLKOUT, 0: Disable;1: Enable. + $EN_DIS +**/ + UINT8 ImguClkOutEn[5]; + +/** Offset 0x0262 - Reserved +**/ + UINT8 Reserved12[7]; /** Offset 0x0269 - RpClockReqMsgEnable **/ @@ -367,7 +377,37 @@ typedef struct { /** Offset 0x026E - Reserved **/ - UINT8 Reserved12[8]; + UINT8 Reserved13[3]; + +/** Offset 0x0271 - Program GPIOs for LFP on DDI port-A device + 0=Disabled,1(Default)=eDP, 2=MIPI DSI + 0:Disabled, 1:eDP, 2:MIPI DSI +**/ + UINT8 DdiPortAConfig; + +/** Offset 0x0272 - Program GPIOs for LFP on DDI port-B device + 0(Default)=Disabled,1=eDP, 2=MIPI DSI + 0:Disabled, 1:eDP, 2:MIPI DSI +**/ + UINT8 DdiPortBConfig; + +/** Offset 0x0273 - Enable or disable HPD of DDI port A + 0(Default)=Disable, 1=Enable + $EN_DIS +**/ + UINT8 DdiPortAHpd; + +/** Offset 0x0274 - Enable or disable HPD of DDI port B + 0=Disable, 1(Default)=Enable + $EN_DIS +**/ + UINT8 DdiPortBHpd; + +/** Offset 0x0275 - Enable or disable HPD of DDI port C + 0(Default)=Disable, 1=Enable + $EN_DIS +**/ + UINT8 DdiPortCHpd; /** Offset 0x0276 - Enable or disable HPD of DDI port 1 0=Disable, 1(Default)=Enable @@ -375,9 +415,41 @@ typedef struct { **/ UINT8 DdiPort1Hpd; -/** Offset 0x0277 - Reserved +/** Offset 0x0277 - Enable or disable HPD of DDI port 2 + 0(Default)=Disable, 1=Enable + $EN_DIS **/ - UINT8 Reserved13[6]; + UINT8 DdiPort2Hpd; + +/** Offset 0x0278 - Enable or disable HPD of DDI port 3 + 0(Default)=Disable, 1=Enable + $EN_DIS +**/ + UINT8 DdiPort3Hpd; + +/** Offset 0x0279 - Enable or disable HPD of DDI port 4 + 0(Default)=Disable, 1=Enable + $EN_DIS +**/ + UINT8 DdiPort4Hpd; + +/** Offset 0x027A - Enable or disable DDC of DDI port A + 0(Default)=Disable, 1=Enable + $EN_DIS +**/ + UINT8 DdiPortADdc; + +/** Offset 0x027B - Enable or disable DDC of DDI port B + 0=Disable, 1(Default)=Enable + $EN_DIS +**/ + UINT8 DdiPortBDdc; + +/** Offset 0x027C - Enable or disable DDC of DDI port C + 0(Default)=Disable, 1=Enable + $EN_DIS +**/ + UINT8 DdiPortCDdc; /** Offset 0x027D - Enable DDC setting of DDI Port 1 0(Default)=Disable, 1=Enable @@ -385,9 +457,27 @@ typedef struct { **/ UINT8 DdiPort1Ddc; -/** Offset 0x027E - Reserved +/** Offset 0x027E - Enable DDC setting of DDI Port 2 + 0(Default)=Disable, 1=Enable + $EN_DIS **/ - UINT8 Reserved14[129]; + UINT8 DdiPort2Ddc; + +/** Offset 0x027F - Enable DDC setting of DDI Port 3 + 0(Default)=Disable, 1=Enable + $EN_DIS +**/ + UINT8 DdiPort3Ddc; + +/** Offset 0x0280 - Enable DDC setting of DDI Port 4 + 0(Default)=Disable, 1=Enable + $EN_DIS +**/ + UINT8 DdiPort4Ddc; + +/** Offset 0x0281 - Reserved +**/ + UINT8 Reserved14[126]; /** Offset 0x02FF - DMI Gen3 Root port preset values per lane Used for programming DMI Gen3 preset values per lane. Range: 0-9, 8 is default for each lane @@ -507,9 +597,14 @@ typedef struct { **/ UINT8 PcieClkSrcUsage[16]; -/** Offset 0x0587 - Reserved +/** Offset 0x0587 - ClkReq-to-ClkSrc mapping + Number of ClkReq signal assigned to ClkSrc **/ - UINT8 Reserved25[21]; + UINT8 PcieClkSrcClkReq[16]; + +/** Offset 0x0597 - Reserved +**/ + UINT8 Reserved25[5]; /** Offset 0x059C - Enable PCIE RP Mask Enable/disable PCIE Root Ports. 0: disable, 1: enable. One bit for each port, bit0 @@ -737,7 +832,7 @@ typedef struct { /** Offset 0x0775 - Reserved **/ - UINT8 Reserved39[315]; + UINT8 Reserved39[355]; } FSP_M_CONFIG; /** Fsp M UPD Configuration @@ -756,11 +851,11 @@ typedef struct { **/ FSP_M_CONFIG FspmConfig; -/** Offset 0x08B0 +/** Offset 0x08D8 **/ - UINT8 UnusedUpdSpace23[6]; + UINT8 UnusedUpdSpace24[6]; -/** Offset 0x08B6 +/** Offset 0x08DE **/ UINT16 UpdTerminator; } FSPM_UPD; diff --git a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspsUpd.h b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspsUpd.h index 69f27b99e4..6cf3668fce 100644 --- a/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspsUpd.h +++ b/src/vendorcode/intel/fsp/fsp2_0/tigerlake/FspsUpd.h @@ -1,6 +1,6 @@ /** @file -Copyright (c) 2019, Intel Corporation. All rights reserved.
+Copyright (c) 2020, Intel Corporation. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -385,7 +385,7 @@ typedef struct { /** Offset 0x03FE - HECI3 state The HECI3 state from Mbp for reference in S3 path or when MbpHob is not installed. - 0: disable, 1: enable + DEPRECATED 0: disable, 1: enable $EN_DIS **/ UINT8 Heci3Enabled; From 591b0ff535d36f0f69e92c55fe465cbf70dcbfe4 Mon Sep 17 00:00:00 2001 From: Wonkyu Kim Date: Wed, 8 Jan 2020 11:51:37 -0800 Subject: [PATCH 19/46] soc/intel/tigerlake: Configure ClkReq according to mainboard design BUG=none BRANCH=none TEST=Build and boot tigerlake rvp board from NVMe Signed-off-by: Wonkyu Kim Change-Id: I14997e0a7d03bf1a97d115cbf0a7ad2603ef9953 Reviewed-on: https://review.coreboot.org/c/coreboot/+/38285 Reviewed-by: Nick Vaccaro Tested-by: build bot (Jenkins) --- src/soc/intel/tigerlake/romstage/fsp_params_tgl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/soc/intel/tigerlake/romstage/fsp_params_tgl.c b/src/soc/intel/tigerlake/romstage/fsp_params_tgl.c index 388ac42649..a4533c9e6c 100644 --- a/src/soc/intel/tigerlake/romstage/fsp_params_tgl.c +++ b/src/soc/intel/tigerlake/romstage/fsp_params_tgl.c @@ -60,12 +60,15 @@ static void soc_memory_init_params(FSP_M_CONFIG *m_cfg, m_cfg->PcieClkSrcUsage[i] = 0xff; } + memcpy(m_cfg->PcieClkSrcClkReq, config->PcieClkSrcClkReq, + sizeof(config->PcieClkSrcClkReq)); + m_cfg->PrmrrSize = config->PrmrrSize; m_cfg->EnableC6Dram = config->enable_c6dram; /* Disable BIOS Guard */ m_cfg->BiosGuard = 0; - /* UART Debug Log*/ + /* UART Debug Log */ m_cfg->PcdDebugInterfaceFlags = CONFIG(DRIVERS_UART_8250IO) ? DEBUG_INTERFACE_UART : DEBUG_INTERFACE_TRACEHUB; m_cfg->PcdIsaSerialUartBase = 0x0; From 06e067e4cf7a7b455a4574c3c62391de23973bb7 Mon Sep 17 00:00:00 2001 From: Wonkyu Kim Date: Wed, 22 Jan 2020 23:48:52 -0800 Subject: [PATCH 20/46] mb/intel/tglrvp: Enable rp11 for optane Optane memory module shows up as 2 NVMe devices in x2 config - NVMe storage device and NVMe Optane memory. Storage device uses rp9 and optane memory uses rp11. This patch enables rp11. Please note that these two share clk pins. This is also dependent on pciecontroller3 config to be set as 2x2 instead of 1x4 in fit configuration in IFWI. BUG=none BRANCH=none TEST=Build and boot tigerlake rvp board from Optane and check 2 NVMe devices from lspci Signed-off-by: Wonkyu Kim Change-Id: Ic81244bebac78102af7ba6308ab64b18c886f839 Reviewed-on: https://review.coreboot.org/c/coreboot/+/38527 Tested-by: build bot (Jenkins) Reviewed-by: Wonkyu Kim Reviewed-by: Nick Vaccaro --- .../intel/tglrvp/variants/tglrvp_up3/devicetree.cb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mainboard/intel/tglrvp/variants/tglrvp_up3/devicetree.cb b/src/mainboard/intel/tglrvp/variants/tglrvp_up3/devicetree.cb index 01e0f3f8f8..e7bfe337f9 100644 --- a/src/mainboard/intel/tglrvp/variants/tglrvp_up3/devicetree.cb +++ b/src/mainboard/intel/tglrvp/variants/tglrvp_up3/devicetree.cb @@ -35,7 +35,7 @@ chip soc/intel/tigerlake register "PcieRpEnable[2]" = "1" register "PcieRpEnable[3]" = "1" register "PcieRpEnable[8]" = "1" - register "PcieRpEnable[9]" = "1" + register "PcieRpEnable[10]" = "1" register "PcieClkSrcClkReq[1]" = "1" register "PcieClkSrcClkReq[2]" = "2" @@ -139,8 +139,8 @@ chip soc/intel/tigerlake device pci 1c.6 off end # RP7 0xA0BE device pci 1c.7 off end # RP8 0xA0BF device pci 1d.0 on end # RP9 0xA0B0 - device pci 1d.1 on end # RP10 0xA0B1 - device pci 1d.2 off end # RP11 0xA0B2 + device pci 1d.1 off end # RP10 0xA0B1 + device pci 1d.2 on end # RP11 0xA0B2 device pci 1d.3 off end # RP12 0xA0B3 device pci 1e.0 off end # UART0 0xA0A8 device pci 1e.1 off end # UART1 0xA0A9 From f895dade61c9273712dcd122e6be5efc2d033bf0 Mon Sep 17 00:00:00 2001 From: Wonkyu Kim Date: Sat, 18 Jan 2020 23:42:23 -0800 Subject: [PATCH 21/46] soc/intel/tigerlake: Add IPU in ACPI Add IPU ACPI object for Camera ACPI. BUG=none BRANCH=none TEST=Build and boot tigerlake rvp board Signed-off-by: Wonkyu Kim Change-Id: I8c1ca9c053f0c8ef8d7c027c317c7af74d5f0f8c Reviewed-on: https://review.coreboot.org/c/coreboot/+/38469 Tested-by: build bot (Jenkins) Reviewed-by: Pratikkumar V Prajapati Reviewed-by: Nick Vaccaro --- src/soc/intel/tigerlake/acpi/ipu.asl | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/soc/intel/tigerlake/acpi/ipu.asl diff --git a/src/soc/intel/tigerlake/acpi/ipu.asl b/src/soc/intel/tigerlake/acpi/ipu.asl new file mode 100644 index 0000000000..ed964a4165 --- /dev/null +++ b/src/soc/intel/tigerlake/acpi/ipu.asl @@ -0,0 +1,23 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2020 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Scope (\_SB.PCI0) +{ + Device (IPU0) + { + Name (_ADR, 0x00050000) + Name (_DDN, "Camera and Imaging Subsystem") + } +} From fa8f9ecc69a9077b6237c33fb38365806439947b Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Wed, 22 Jan 2020 15:58:39 +0530 Subject: [PATCH 22/46] soc/intel/skylake: Only reserve TPM area for !CONFIG_TPM_CR50 device As per PC client TPM specification, the TPM description contains the base address of the TIS interface 0xfed40000 and the size of the MMIO area is 20KB (0x5000). Hence ACPI used to reserve those fixed system memory from getting used by OS. Platform with TPM_CR50 doesn't require fixed SoC mapped memory hence additional reservation might not required. TEST=Build and boot EVE and Soraka to OS. Change-Id: Id02a2659ce42f705180370000df89d4f6b64afce Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/38512 Reviewed-by: Aaron Durbin Reviewed-by: Angel Pons Tested-by: build bot (Jenkins) --- src/soc/intel/skylake/acpi/systemagent.asl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/soc/intel/skylake/acpi/systemagent.asl b/src/soc/intel/skylake/acpi/systemagent.asl index 3902b93749..c4d8a706bc 100644 --- a/src/soc/intel/skylake/acpi/systemagent.asl +++ b/src/soc/intel/skylake/acpi/systemagent.asl @@ -182,11 +182,13 @@ Method (_CRS, 0, Serialized) 0x00000000, PCH_PRESERVED_BASE_ADDRESS, 0xfe7fffff, 0x00000000, PCH_PRESERVED_BASE_SIZE) +#if !CONFIG(TPM_CR50) /* TPM Area (0xfed40000-0xfed44fff) */ DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0xfed40000, 0xfed44fff, 0x00000000, 0x00005000) +#endif }) /* Find PCI resource area in MCRS */ From 36eb5009943dd6c606d6eee5839b6407071c84b3 Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Wed, 22 Jan 2020 16:01:14 +0530 Subject: [PATCH 23/46] soc/intel/skylake: Add _SEG/_UID name variables TEST=Build and boot EVE and Soraka to OS. Change-Id: Ic765dc2a7a522872ee991e47e3608f60a0e6411a Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/38513 Reviewed-by: Angel Pons Tested-by: build bot (Jenkins) --- src/soc/intel/skylake/acpi/systemagent.asl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/soc/intel/skylake/acpi/systemagent.asl b/src/soc/intel/skylake/acpi/systemagent.asl index c4d8a706bc..920062c021 100644 --- a/src/soc/intel/skylake/acpi/systemagent.asl +++ b/src/soc/intel/skylake/acpi/systemagent.asl @@ -17,8 +17,10 @@ #include -Name (_HID, EISAID ("PNP0A08")) /* PCIe */ -Name (_CID, EISAID ("PNP0A03")) /* PCI */ +Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID +Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID +Name (_SEG, Zero) // _SEG: PCI Segment +Name (_UID, Zero) // _UID: Unique ID Device (MCHC) { From 4f65b87cf44f8351485621e1adbff916a70e008f Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Wed, 22 Jan 2020 16:05:16 +0530 Subject: [PATCH 24/46] soc/intel/skylake: Update 64 bit SA DRAM bit fields as per datasheet This patch updates SA DRAM registers bit definitions as per SKL datasheet vol 2, doc 332688. TEST=Build and boot EVE and Soraka to OS. Change-Id: Ia32723444c044572fbcecce151d89e739e570b3b Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/c/coreboot/+/38514 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- src/soc/intel/skylake/acpi/systemagent.asl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/soc/intel/skylake/acpi/systemagent.asl b/src/soc/intel/skylake/acpi/systemagent.asl index 920062c021..e430b43ca9 100644 --- a/src/soc/intel/skylake/acpi/systemagent.asl +++ b/src/soc/intel/skylake/acpi/systemagent.asl @@ -32,26 +32,27 @@ Device (MCHC) Offset(0x40), /* EPBAR (0:0:0:40) */ EPEN, 1, /* Enable */ , 11, - EPBR, 20, /* EPBAR [31:12] */ + EPBR, 27, /* EPBAR [38:12] */ Offset(0x48), /* MCHBAR (0:0:0:48) */ MHEN, 1, /* Enable */ , 14, - MHBR, 17, /* MCHBAR [31:15] */ + MHBR, 24, /* MCHBAR [38:15] */ Offset(0x60), /* PCIEXBAR (0:0:0:60) */ PXEN, 1, /* Enable */ PXSZ, 2, /* PCI Express Size */ , 23, - PXBR, 6, /* PCI Express BAR [31:26] */ + PXBR, 13, /* PCI Express BAR [38:26] */ Offset(0x68), /* DMIBAR (0:0:0:68) */ DIEN, 1, /* Enable */ , 11, - DIBR, 20, /* DMIBAR [31:12] */ + DIBR, 27, /* DMIBAR [38:12] */ Offset (0x70), /* ME Base Address */ MEBA, 64, + Offset (0xa0), TOM, 64, /* Top of Used Memory */ TUUD, 64, /* Top of Upper Used Memory */ From 6f28157fca9fa851eccadd8018c89e34fd279b74 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Sun, 17 Nov 2019 17:16:11 +0100 Subject: [PATCH 25/46] mb/lenovo/x201: Remove dGPU PMH7 bits The bits cleared by this have to do with dGPU power, which this board lacks. TESTED: x201 still boots. Change-Id: I441743f76afc7bbbee930a1c8116035e85d94e52 Signed-off-by: Arthur Heymans Reviewed-on: https://review.coreboot.org/c/coreboot/+/36911 Reviewed-by: Patrick Rudolph Reviewed-by: Alexander Couzens Tested-by: build bot (Jenkins) --- src/mainboard/lenovo/x201/romstage.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/mainboard/lenovo/x201/romstage.c b/src/mainboard/lenovo/x201/romstage.c index 7bab9576bc..aec63dbfc9 100644 --- a/src/mainboard/lenovo/x201/romstage.c +++ b/src/mainboard/lenovo/x201/romstage.c @@ -54,9 +54,6 @@ static void set_fsb_frequency(void) void mainboard_pre_raminit(void) { - outb(0x50, 0x15ec); - outb(inb(0x15ee) & 0x70, 0x15ee); - set_fsb_frequency(); } From 4444ea54e68e8992a035f3f7c73222292a76878e Mon Sep 17 00:00:00 2001 From: Keith Hui Date: Sun, 12 Jan 2020 19:09:24 -0500 Subject: [PATCH 26/46] intel/i440bx: Use smbus_read_byte() for raminit debug Build broke with CONFIG_DEBUG_RAM_SETUP enabled after commit 3f882faf (intel/i440bx,i82371: Remove wrapper spd_read_byte()). This is the fix. Change-Id: Ib83885fc50c8fab61ced5ff18f22aa4655c5aaab Signed-off-by: Keith Hui Reviewed-on: https://review.coreboot.org/c/coreboot/+/38381 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- src/northbridge/intel/i440bx/debug.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/northbridge/intel/i440bx/debug.c b/src/northbridge/intel/i440bx/debug.c index 7df639b6bd..fe1f9c82b5 100644 --- a/src/northbridge/intel/i440bx/debug.c +++ b/src/northbridge/intel/i440bx/debug.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "raminit.h" void dump_spd_registers(void) @@ -32,7 +33,7 @@ void dump_spd_registers(void) if ((j & 0xf) == 0) { printk(BIOS_DEBUG, "\n%02x: ", j); } - status = spd_read_byte(device, j); + status = smbus_read_byte(device, j); if (status < 0) { printk(BIOS_DEBUG, "bad device\n"); break; From d6f259e834e67119d913dac86f24a842643847b3 Mon Sep 17 00:00:00 2001 From: Keith Hui Date: Sun, 12 Jan 2020 18:38:28 -0500 Subject: [PATCH 27/46] intel/i440bx: Add timestamp to RAM init Change-Id: I27b2fcf6fea18e03dddb015eb017acc5db1db540 Signed-off-by: Keith Hui Reviewed-on: https://review.coreboot.org/c/coreboot/+/38382 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Angel Pons --- src/northbridge/intel/i440bx/raminit.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/northbridge/intel/i440bx/raminit.c b/src/northbridge/intel/i440bx/raminit.c index 597ba946b4..d5c23cf165 100644 --- a/src/northbridge/intel/i440bx/raminit.c +++ b/src/northbridge/intel/i440bx/raminit.c @@ -22,6 +22,7 @@ #include #include #include +#include #include "i440bx.h" #include "raminit.h" @@ -1043,6 +1044,7 @@ void __weak disable_spd(void) { } void sdram_initialize(void) { + timestamp_add_now(TS_BEFORE_INITRAM); enable_spd(); dump_spd_registers(); @@ -1051,4 +1053,5 @@ void sdram_initialize(void) sdram_enable(); disable_spd(); + timestamp_add_now(TS_AFTER_INITRAM); } From e9b3fd1d5da628c7207701ead053a318235c86b3 Mon Sep 17 00:00:00 2001 From: Keith Hui Date: Sun, 12 Jan 2020 18:41:26 -0500 Subject: [PATCH 28/46] intel/i440bx: Resolve long standing raminit TODOs Drop DRAMT write as it's only rewriting the power on default. PMCR write is required. Update comment on its purpose and move to end of sdram_enable(). Change-Id: I62e8b2531f0f297ffb7db440db89ffa65771b7d5 Signed-off-by: Keith Hui Reviewed-on: https://review.coreboot.org/c/coreboot/+/38383 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- src/northbridge/intel/i440bx/raminit.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/northbridge/intel/i440bx/raminit.c b/src/northbridge/intel/i440bx/raminit.c index d5c23cf165..0a864e864a 100644 --- a/src/northbridge/intel/i440bx/raminit.c +++ b/src/northbridge/intel/i440bx/raminit.c @@ -357,10 +357,7 @@ static const u8 register_values[] = { * 1 = Enable * 0 = Disable */ - /* Enable normal refresh and the gated clock. */ - // TODO: Only do this later? - // PMCR, 0x00, 0x14, - PMCR, 0x00, 0x00, + /* PMCR will be set later. */ /* Enable SCRR.SRRAEN and let BX choose the SRR. */ SCRR + 1, 0x00, 0x10, @@ -985,13 +982,6 @@ static void sdram_set_spd_registers(void) /* Setup DRAM buffer strength. */ set_dram_buffer_strength(); - - /* TODO: Set PMCR? */ - // pci_write_config8(NB, PMCR, 0x14); - pci_write_config8(NB, PMCR, 0x10); - - /* TODO: This is for EDO memory only. */ - pci_write_config8(NB, DRAMT, 0x03); } static void sdram_enable(void) @@ -1030,7 +1020,7 @@ static void sdram_enable(void) /* 6. Finally enable refresh. */ PRINT_DEBUG("RAM Enable 6: Enable refresh\n"); - // pci_write_config8(NB, PMCR, 0x10); + pci_write_config8(NB, PMCR, 0x10); spd_enable_refresh(); udelay(1); From da60958ae37f15b6bc6f976bdf32b26fab573ae0 Mon Sep 17 00:00:00 2001 From: Christian Walter Date: Sat, 25 Jan 2020 13:42:53 +0100 Subject: [PATCH 29/46] superio/aspeed/ast2400: Fix Register Offset According to the specification the register offset must be 0x71 instead of 0x70. Change-Id: Icf69ffc701a42a31a4545ce53c13e2c2554863e1 Signed-off-by: Christian Walter Reviewed-on: https://review.coreboot.org/c/coreboot/+/38565 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Rudolph Reviewed-by: Felix Held --- src/superio/aspeed/ast2400/superio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/superio/aspeed/ast2400/superio.c b/src/superio/aspeed/ast2400/superio.c index 37a7c9d30c..6f2cbcdb70 100644 --- a/src/superio/aspeed/ast2400/superio.c +++ b/src/superio/aspeed/ast2400/superio.c @@ -35,7 +35,7 @@ static void ast2400_init(struct device *dev) pnp_enter_conf_mode(dev); pnp_set_logical_device(dev); /* In ESPI mode must write 0 to IRQ level on every LDN */ - pnp_write_config(dev, 0x70, 0); + pnp_write_config(dev, 0x71, 0); pnp_exit_conf_mode(dev); } From 85c52c5d97070b2e07d34e3a6c60ef5609b8bf2d Mon Sep 17 00:00:00 2001 From: Karthikeyan Ramasubramanian Date: Mon, 6 Jan 2020 22:02:01 -0700 Subject: [PATCH 30/46] mb/google/dedede: Add GPIO stubs Add stubbed out GPIO configuration and perform GPIO initialization during bootblock and ramstage. BUG=b:144768001 TEST=Build Test Change-Id: I1397b6a433e5046650f64f7eb9a84c51eb0c7441 Signed-off-by: Karthikeyan Ramasubramanian Reviewed-on: https://review.coreboot.org/c/coreboot/+/38278 Reviewed-by: Aamir Bohra Reviewed-by: Furquan Shaikh Tested-by: build bot (Jenkins) --- src/mainboard/google/dedede/Kconfig | 4 +++ src/mainboard/google/dedede/Makefile.inc | 4 +++ src/mainboard/google/dedede/bootblock.c | 7 +++- src/mainboard/google/dedede/mainboard.c | 7 +++- .../dedede/variants/baseboard/Makefile.inc | 5 +++ .../google/dedede/variants/baseboard/gpio.c | 33 +++++++++++++++++++ .../baseboard/include/baseboard/variants.h | 6 ++++ .../variants/dedede/include/variant/gpio.h | 14 ++++++++ 8 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 src/mainboard/google/dedede/variants/baseboard/Makefile.inc create mode 100644 src/mainboard/google/dedede/variants/baseboard/gpio.c create mode 100644 src/mainboard/google/dedede/variants/dedede/include/variant/gpio.h diff --git a/src/mainboard/google/dedede/Kconfig b/src/mainboard/google/dedede/Kconfig index 02e4e51a77..7c42404d09 100644 --- a/src/mainboard/google/dedede/Kconfig +++ b/src/mainboard/google/dedede/Kconfig @@ -32,4 +32,8 @@ config UART_FOR_CONSOLE int default 2 +config VARIANT_DIR + string + default "dedede" if BOARD_GOOGLE_DEDEDE + endif #BOARD_GOOGLE_BASEBOARD_DEDEDE diff --git a/src/mainboard/google/dedede/Makefile.inc b/src/mainboard/google/dedede/Makefile.inc index c2fc4198ef..8f501131e1 100644 --- a/src/mainboard/google/dedede/Makefile.inc +++ b/src/mainboard/google/dedede/Makefile.inc @@ -4,3 +4,7 @@ ramstage-y += mainboard.c subdirs-y += variants/baseboard CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include + +VARIANT_DIR:=$(call strip_quotes,$(CONFIG_VARIANT_DIR)) +subdirs-y += variants/$(VARIANT_DIR) +CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/include diff --git a/src/mainboard/google/dedede/bootblock.c b/src/mainboard/google/dedede/bootblock.c index 11186f775c..8685fa776a 100644 --- a/src/mainboard/google/dedede/bootblock.c +++ b/src/mainboard/google/dedede/bootblock.c @@ -6,9 +6,14 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ +#include #include void bootblock_mainboard_init(void) { - /* TODO: Perform mainboard initialization */ + const struct pad_config *pads; + size_t num; + + pads = variant_early_gpio_table(&num); + gpio_configure_pads(pads, num); } diff --git a/src/mainboard/google/dedede/mainboard.c b/src/mainboard/google/dedede/mainboard.c index 51b1aa4346..3b36abe661 100644 --- a/src/mainboard/google/dedede/mainboard.c +++ b/src/mainboard/google/dedede/mainboard.c @@ -6,11 +6,16 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ +#include #include static void mainboard_init(void *chip_info) { - /* TODO: Perform mainboard initialization */ + const struct pad_config *pads; + size_t num; + + pads = variant_gpio_table(&num); + gpio_configure_pads(pads, num); } static void mainboard_enable(struct device *dev) diff --git a/src/mainboard/google/dedede/variants/baseboard/Makefile.inc b/src/mainboard/google/dedede/variants/baseboard/Makefile.inc new file mode 100644 index 0000000000..7c092e44c2 --- /dev/null +++ b/src/mainboard/google/dedede/variants/baseboard/Makefile.inc @@ -0,0 +1,5 @@ +bootblock-y += gpio.c + +ramstage-y += gpio.c + +smm-y += gpio.c diff --git a/src/mainboard/google/dedede/variants/baseboard/gpio.c b/src/mainboard/google/dedede/variants/baseboard/gpio.c new file mode 100644 index 0000000000..c94af6fb7f --- /dev/null +++ b/src/mainboard/google/dedede/variants/baseboard/gpio.c @@ -0,0 +1,33 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2020 The coreboot project Authors. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include + +/* Pad configuration in ramstage*/ +static const struct pad_config gpio_table[] = { + /* ToDo: Fill gpio configuration */ +}; + +/* Early pad configuration in bootblock */ +static const struct pad_config early_gpio_table[] = { + /* ToDo: Fill early gpio configuration */ +}; + +const struct pad_config *__weak variant_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(gpio_table); + return gpio_table; +} + +const struct pad_config *__weak variant_early_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(early_gpio_table); + return early_gpio_table; +} diff --git a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h index b326ec0468..ebcd594a9b 100644 --- a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h @@ -12,4 +12,10 @@ #include #include +/* The next set of functions return the gpio table and fill in the number of + * entries for each table. */ + +const struct pad_config *variant_gpio_table(size_t *num); +const struct pad_config *variant_early_gpio_table(size_t *num); + #endif /*__BASEBOARD_VARIANTS_H__ */ diff --git a/src/mainboard/google/dedede/variants/dedede/include/variant/gpio.h b/src/mainboard/google/dedede/variants/dedede/include/variant/gpio.h new file mode 100644 index 0000000000..bf23f6e457 --- /dev/null +++ b/src/mainboard/google/dedede/variants/dedede/include/variant/gpio.h @@ -0,0 +1,14 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2020 The coreboot project Authors. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef MAINBOARD_GPIO_H +#define MAINBOARD_GPIO_H + +#include + +#endif /* MAINBOARD_GPIO_H */ From edad34b883efc20c9cd28b96ec77318556508663 Mon Sep 17 00:00:00 2001 From: Karthikeyan Ramasubramanian Date: Mon, 6 Jan 2020 22:21:37 -0700 Subject: [PATCH 31/46] mb/google/dedede: Enable ACPI and add ACPI table Enable ACPI configuration and add DSDT ACPI table. BUG=b:144768001 TEST=Build Test Change-Id: I0aa889cd52bff3e1e9ff7b7b93ec1000045bcfd2 Signed-off-by: Karthikeyan Ramasubramanian Reviewed-on: https://review.coreboot.org/c/coreboot/+/38279 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/mainboard/google/dedede/Kconfig | 2 ++ src/mainboard/google/dedede/dsdt.asl | 41 +++++++++++++++++++++++++ src/mainboard/google/dedede/mainboard.c | 10 +++++- 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/mainboard/google/dedede/dsdt.asl diff --git a/src/mainboard/google/dedede/Kconfig b/src/mainboard/google/dedede/Kconfig index 7c42404d09..21ba001757 100644 --- a/src/mainboard/google/dedede/Kconfig +++ b/src/mainboard/google/dedede/Kconfig @@ -1,5 +1,7 @@ config BOARD_GOOGLE_BASEBOARD_DEDEDE def_bool n + select HAVE_ACPI_RESUME + select HAVE_ACPI_TABLES select SOC_INTEL_JASPERLAKE if BOARD_GOOGLE_BASEBOARD_DEDEDE diff --git a/src/mainboard/google/dedede/dsdt.asl b/src/mainboard/google/dedede/dsdt.asl new file mode 100644 index 0000000000..c387fd38d7 --- /dev/null +++ b/src/mainboard/google/dedede/dsdt.asl @@ -0,0 +1,41 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2020 The coreboot project Authors. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include + +DefinitionBlock( + "dsdt.aml", + "DSDT", + 0x02, /* DSDT revision: ACPI v2.0 and up */ + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20110725 /* OEM revision */ +) +{ + /* Some generic macros */ + #include + + /* global NVS and variables */ + #include + + /* CPU */ + #include + + Scope (\_SB) { + Device (PCI0) + { + #include + #include + } + } + + /* Chipset specific sleep states */ + #include + +} diff --git a/src/mainboard/google/dedede/mainboard.c b/src/mainboard/google/dedede/mainboard.c index 3b36abe661..b663a43071 100644 --- a/src/mainboard/google/dedede/mainboard.c +++ b/src/mainboard/google/dedede/mainboard.c @@ -6,6 +6,7 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ +#include #include #include @@ -18,9 +19,16 @@ static void mainboard_init(void *chip_info) gpio_configure_pads(pads, num); } +static unsigned long mainboard_write_acpi_tables( + struct device *device, unsigned long current, acpi_rsdp_t *rsdp) +{ + return current; +} + static void mainboard_enable(struct device *dev) { - /* TODO: Enable mainboard */ + dev->ops->write_acpi_tables = mainboard_write_acpi_tables; + dev->ops->acpi_inject_dsdt_generator = NULL; } struct chip_operations mainboard_ops = { From d60386ef2fc0a609bfeef060e73a74a8f1af3047 Mon Sep 17 00:00:00 2001 From: Karthikeyan Ramasubramanian Date: Sun, 22 Dec 2019 23:04:59 -0700 Subject: [PATCH 32/46] mb/google/dedede: Add smihandler stub Add stub implementation of smihandler. BUG=b:144768001 TEST=Build test. Change-Id: I7ab25888812bfb4578915e342b14355ccd15f5cc Signed-off-by: Karthikeyan Ramasubramanian Reviewed-on: https://review.coreboot.org/c/coreboot/+/38280 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/mainboard/google/dedede/Makefile.inc | 2 ++ src/mainboard/google/dedede/smihandler.c | 29 +++++++++++++++++++ .../google/dedede/variants/baseboard/gpio.c | 10 +++++++ .../baseboard/include/baseboard/variants.h | 1 + 4 files changed, 42 insertions(+) create mode 100644 src/mainboard/google/dedede/smihandler.c diff --git a/src/mainboard/google/dedede/Makefile.inc b/src/mainboard/google/dedede/Makefile.inc index 8f501131e1..f214544e09 100644 --- a/src/mainboard/google/dedede/Makefile.inc +++ b/src/mainboard/google/dedede/Makefile.inc @@ -2,6 +2,8 @@ bootblock-y += bootblock.c ramstage-y += mainboard.c +smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c + subdirs-y += variants/baseboard CPPFLAGS_common += -I$(src)/mainboard/$(MAINBOARDDIR)/variants/baseboard/include diff --git a/src/mainboard/google/dedede/smihandler.c b/src/mainboard/google/dedede/smihandler.c new file mode 100644 index 0000000000..780d33f6de --- /dev/null +++ b/src/mainboard/google/dedede/smihandler.c @@ -0,0 +1,29 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2020 The coreboot project Authors. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include + +void mainboard_smi_gpi_handler(const struct gpi_status *sts) +{ +} + +void mainboard_smi_sleep(u8 slp_typ) +{ + const struct pad_config *pads; + size_t num; + + pads = variant_sleep_gpio_table(&num); + gpio_configure_pads(pads, num); +} + +int mainboard_smi_apmc(u8 apmc) +{ + return 0; +} diff --git a/src/mainboard/google/dedede/variants/baseboard/gpio.c b/src/mainboard/google/dedede/variants/baseboard/gpio.c index c94af6fb7f..65ac66b319 100644 --- a/src/mainboard/google/dedede/variants/baseboard/gpio.c +++ b/src/mainboard/google/dedede/variants/baseboard/gpio.c @@ -31,3 +31,13 @@ const struct pad_config *__weak variant_early_gpio_table(size_t *num) *num = ARRAY_SIZE(early_gpio_table); return early_gpio_table; } + +/* GPIO settings before entering sleep. */ +static const struct pad_config sleep_gpio_table[] = { +}; + +const struct pad_config *__weak variant_sleep_gpio_table(size_t *num) +{ + *num = ARRAY_SIZE(sleep_gpio_table); + return sleep_gpio_table; +} diff --git a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h index ebcd594a9b..309b9ebc5d 100644 --- a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h @@ -17,5 +17,6 @@ const struct pad_config *variant_gpio_table(size_t *num); const struct pad_config *variant_early_gpio_table(size_t *num); +const struct pad_config *variant_sleep_gpio_table(size_t *num); #endif /*__BASEBOARD_VARIANTS_H__ */ From b7b11475c16b658698d1adcc9dbc0d969eddb9bd Mon Sep 17 00:00:00 2001 From: Karthikeyan Ramasubramanian Date: Mon, 6 Jan 2020 23:40:59 -0700 Subject: [PATCH 33/46] mb/google/dedede: Enable building for Chrome OS Enable building for Chrome OS and add associated ACPI configuration. BUG=b:144768001 TEST=Build Test Change-Id: Ibb94849a903e4d4364d817de8988a430cd717e4c Signed-off-by: Karthikeyan Ramasubramanian Reviewed-on: https://review.coreboot.org/c/coreboot/+/38281 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/mainboard/google/dedede/Kconfig | 6 +++ src/mainboard/google/dedede/Makefile.inc | 6 +++ src/mainboard/google/dedede/chromeos.c | 51 +++++++++++++++++++ src/mainboard/google/dedede/dsdt.asl | 3 ++ src/mainboard/google/dedede/mainboard.c | 3 +- .../google/dedede/variants/baseboard/gpio.c | 10 ++++ .../baseboard/include/baseboard/variants.h | 1 + 7 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 src/mainboard/google/dedede/chromeos.c diff --git a/src/mainboard/google/dedede/Kconfig b/src/mainboard/google/dedede/Kconfig index 21ba001757..cc7aff6ac1 100644 --- a/src/mainboard/google/dedede/Kconfig +++ b/src/mainboard/google/dedede/Kconfig @@ -2,6 +2,7 @@ config BOARD_GOOGLE_BASEBOARD_DEDEDE def_bool n select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES + select MAINBOARD_HAS_CHROMEOS select SOC_INTEL_JASPERLAKE if BOARD_GOOGLE_BASEBOARD_DEDEDE @@ -10,6 +11,11 @@ config BASEBOARD_DEDEDE_LAPTOP def_bool n select SYSTEM_TYPE_LAPTOP +config CHROMEOS + bool + default y + select VBOOT_LID_SWITCH + config DEVICETREE string default "variants/baseboard/devicetree.cb" diff --git a/src/mainboard/google/dedede/Makefile.inc b/src/mainboard/google/dedede/Makefile.inc index f214544e09..5cb209da8a 100644 --- a/src/mainboard/google/dedede/Makefile.inc +++ b/src/mainboard/google/dedede/Makefile.inc @@ -1,5 +1,11 @@ bootblock-y += bootblock.c +bootblock-$(CONFIG_CHROMEOS) += chromeos.c +verstage-$(CONFIG_CHROMEOS) += chromeos.c + +romstage-$(CONFIG_CHROMEOS) += chromeos.c + +ramstage-$(CONFIG_CHROMEOS) += chromeos.c ramstage-y += mainboard.c smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c diff --git a/src/mainboard/google/dedede/chromeos.c b/src/mainboard/google/dedede/chromeos.c new file mode 100644 index 0000000000..44a8c042a8 --- /dev/null +++ b/src/mainboard/google/dedede/chromeos.c @@ -0,0 +1,51 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2020 The coreboot project Authors. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include + +void fill_lb_gpios(struct lb_gpios *gpios) +{ + struct lb_gpio chromeos_gpios[] = { + {-1, ACTIVE_HIGH, get_write_protect_state(), "write protect"}, + {-1, ACTIVE_HIGH, get_lid_switch(), "lid"}, + {-1, ACTIVE_HIGH, 0, "power"}, + {-1, ACTIVE_HIGH, gfx_get_init_done(), "oprom"}, + }; + lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios)); +} + +int get_lid_switch(void) +{ + /* TODO: use Chrome EC switches when EC support is added */ + return 1; +} + +int get_recovery_mode_switch(void) +{ + /* TODO: use Chrome EC switches when EC support is added */ + return 0; +} + +int get_write_protect_state(void) +{ + /* No write protect */ + return 0; +} + +void mainboard_chromeos_acpi_generate(void) +{ + const struct cros_gpio *gpios; + size_t num; + + gpios = variant_cros_gpios(&num); + chromeos_acpi_gpio_generate(gpios, num); +} diff --git a/src/mainboard/google/dedede/dsdt.asl b/src/mainboard/google/dedede/dsdt.asl index c387fd38d7..3e278e3e9d 100644 --- a/src/mainboard/google/dedede/dsdt.asl +++ b/src/mainboard/google/dedede/dsdt.asl @@ -35,6 +35,9 @@ DefinitionBlock( } } + /* Chrome OS specific */ + #include + /* Chipset specific sleep states */ #include diff --git a/src/mainboard/google/dedede/mainboard.c b/src/mainboard/google/dedede/mainboard.c index b663a43071..64bb5ac824 100644 --- a/src/mainboard/google/dedede/mainboard.c +++ b/src/mainboard/google/dedede/mainboard.c @@ -9,6 +9,7 @@ #include #include #include +#include static void mainboard_init(void *chip_info) { @@ -28,7 +29,7 @@ static unsigned long mainboard_write_acpi_tables( static void mainboard_enable(struct device *dev) { dev->ops->write_acpi_tables = mainboard_write_acpi_tables; - dev->ops->acpi_inject_dsdt_generator = NULL; + dev->ops->acpi_inject_dsdt_generator = chromeos_dsdt_generator; } struct chip_operations mainboard_ops = { diff --git a/src/mainboard/google/dedede/variants/baseboard/gpio.c b/src/mainboard/google/dedede/variants/baseboard/gpio.c index 65ac66b319..6c95a1d0f0 100644 --- a/src/mainboard/google/dedede/variants/baseboard/gpio.c +++ b/src/mainboard/google/dedede/variants/baseboard/gpio.c @@ -9,6 +9,7 @@ #include #include #include +#include /* Pad configuration in ramstage*/ static const struct pad_config gpio_table[] = { @@ -41,3 +42,12 @@ const struct pad_config *__weak variant_sleep_gpio_table(size_t *num) *num = ARRAY_SIZE(sleep_gpio_table); return sleep_gpio_table; } + +static const struct cros_gpio cros_gpios[] = { +}; + +const struct cros_gpio *__weak variant_cros_gpios(size_t *num) +{ + *num = ARRAY_SIZE(cros_gpios); + return cros_gpios; +} diff --git a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h index 309b9ebc5d..d7c482c172 100644 --- a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h +++ b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/variants.h @@ -18,5 +18,6 @@ const struct pad_config *variant_gpio_table(size_t *num); const struct pad_config *variant_early_gpio_table(size_t *num); const struct pad_config *variant_sleep_gpio_table(size_t *num); +const struct cros_gpio *variant_cros_gpios(size_t *num); #endif /*__BASEBOARD_VARIANTS_H__ */ From 501e3c1837ba527ba8e49753688ca73af022df51 Mon Sep 17 00:00:00 2001 From: Karthikeyan Ramasubramanian Date: Tue, 7 Jan 2020 16:21:10 -0700 Subject: [PATCH 34/46] mb/google/dedede: Enable EC Perform EC initialization in bootblock and ramstages. Add associated ACPI configuration. BUG=b:144768001 TEST=Build Test. Change-Id: Ib31ae190818c8870bdd46ea6c3d9ca70dc0485cc Signed-off-by: Karthikeyan Ramasubramanian Reviewed-on: https://review.coreboot.org/c/coreboot/+/38282 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/mainboard/google/dedede/Kconfig | 4 + src/mainboard/google/dedede/Makefile.inc | 1 + src/mainboard/google/dedede/chromeos.c | 12 --- src/mainboard/google/dedede/dsdt.asl | 9 ++ src/mainboard/google/dedede/ec.c | 29 +++++++ src/mainboard/google/dedede/mainboard.c | 7 ++ src/mainboard/google/dedede/smihandler.c | 8 ++ .../variants/baseboard/include/baseboard/ec.h | 82 +++++++++++++++++++ .../baseboard/include/baseboard/gpio.h | 6 ++ .../variants/dedede/include/variant/ec.h | 14 ++++ 10 files changed, 160 insertions(+), 12 deletions(-) create mode 100644 src/mainboard/google/dedede/ec.c create mode 100644 src/mainboard/google/dedede/variants/baseboard/include/baseboard/ec.h create mode 100644 src/mainboard/google/dedede/variants/dedede/include/variant/ec.h diff --git a/src/mainboard/google/dedede/Kconfig b/src/mainboard/google/dedede/Kconfig index cc7aff6ac1..da6dc81c77 100644 --- a/src/mainboard/google/dedede/Kconfig +++ b/src/mainboard/google/dedede/Kconfig @@ -1,5 +1,7 @@ config BOARD_GOOGLE_BASEBOARD_DEDEDE def_bool n + select EC_GOOGLE_CHROMEEC + select EC_GOOGLE_CHROMEEC_ESPI select HAVE_ACPI_RESUME select HAVE_ACPI_TABLES select MAINBOARD_HAS_CHROMEOS @@ -14,6 +16,8 @@ config BASEBOARD_DEDEDE_LAPTOP config CHROMEOS bool default y + select EC_GOOGLE_CHROMEEC_SWITCHES + select GBB_FLAG_DISABLE_EC_SOFTWARE_SYNC select VBOOT_LID_SWITCH config DEVICETREE diff --git a/src/mainboard/google/dedede/Makefile.inc b/src/mainboard/google/dedede/Makefile.inc index 5cb209da8a..c240dede62 100644 --- a/src/mainboard/google/dedede/Makefile.inc +++ b/src/mainboard/google/dedede/Makefile.inc @@ -7,6 +7,7 @@ romstage-$(CONFIG_CHROMEOS) += chromeos.c ramstage-$(CONFIG_CHROMEOS) += chromeos.c ramstage-y += mainboard.c +ramstage-y += ec.c smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c diff --git a/src/mainboard/google/dedede/chromeos.c b/src/mainboard/google/dedede/chromeos.c index 44a8c042a8..dc24f5ff81 100644 --- a/src/mainboard/google/dedede/chromeos.c +++ b/src/mainboard/google/dedede/chromeos.c @@ -23,18 +23,6 @@ void fill_lb_gpios(struct lb_gpios *gpios) lb_add_gpios(gpios, chromeos_gpios, ARRAY_SIZE(chromeos_gpios)); } -int get_lid_switch(void) -{ - /* TODO: use Chrome EC switches when EC support is added */ - return 1; -} - -int get_recovery_mode_switch(void) -{ - /* TODO: use Chrome EC switches when EC support is added */ - return 0; -} - int get_write_protect_state(void) { /* No write protect */ diff --git a/src/mainboard/google/dedede/dsdt.asl b/src/mainboard/google/dedede/dsdt.asl index 3e278e3e9d..3d17017101 100644 --- a/src/mainboard/google/dedede/dsdt.asl +++ b/src/mainboard/google/dedede/dsdt.asl @@ -7,6 +7,7 @@ */ #include +#include #include DefinitionBlock( @@ -41,4 +42,12 @@ DefinitionBlock( /* Chipset specific sleep states */ #include + /* Chrome OS Embedded Controller */ + Scope (\_SB.PCI0.LPCB) + { + /* ACPI code for EC SuperIO functions */ + #include + /* ACPI code for EC functions */ + #include + } } diff --git a/src/mainboard/google/dedede/ec.c b/src/mainboard/google/dedede/ec.c new file mode 100644 index 0000000000..7aa4773ebe --- /dev/null +++ b/src/mainboard/google/dedede/ec.c @@ -0,0 +1,29 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2020 The coreboot project Authors. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include +#include + +void mainboard_ec_init(void) +{ + static const struct google_chromeec_event_info info = { + .log_events = MAINBOARD_EC_LOG_EVENTS, + .sci_events = MAINBOARD_EC_SCI_EVENTS, + .s3_wake_events = MAINBOARD_EC_S3_WAKE_EVENTS, + .s5_wake_events = MAINBOARD_EC_S5_WAKE_EVENTS, + .s0ix_wake_events = MAINBOARD_EC_S0IX_WAKE_EVENTS, + }; + + printk(BIOS_ERR, "mainboard: EC init\n"); + + google_chromeec_events_init(&info, acpi_is_wakeup_s3()); +} diff --git a/src/mainboard/google/dedede/mainboard.c b/src/mainboard/google/dedede/mainboard.c index 64bb5ac824..3ac273af2c 100644 --- a/src/mainboard/google/dedede/mainboard.c +++ b/src/mainboard/google/dedede/mainboard.c @@ -9,6 +9,7 @@ #include #include #include +#include #include static void mainboard_init(void *chip_info) @@ -20,6 +21,11 @@ static void mainboard_init(void *chip_info) gpio_configure_pads(pads, num); } +static void mainboard_dev_init(struct device *dev) +{ + mainboard_ec_init(); +} + static unsigned long mainboard_write_acpi_tables( struct device *device, unsigned long current, acpi_rsdp_t *rsdp) { @@ -28,6 +34,7 @@ static unsigned long mainboard_write_acpi_tables( static void mainboard_enable(struct device *dev) { + dev->ops->init = mainboard_dev_init; dev->ops->write_acpi_tables = mainboard_write_acpi_tables; dev->ops->acpi_inject_dsdt_generator = chromeos_dsdt_generator; } diff --git a/src/mainboard/google/dedede/smihandler.c b/src/mainboard/google/dedede/smihandler.c index 780d33f6de..2c2230f4e4 100644 --- a/src/mainboard/google/dedede/smihandler.c +++ b/src/mainboard/google/dedede/smihandler.c @@ -8,10 +8,13 @@ #include #include +#include #include +#include void mainboard_smi_gpi_handler(const struct gpi_status *sts) { + /* TODO: Process SMI events from GPI */ } void mainboard_smi_sleep(u8 slp_typ) @@ -21,9 +24,14 @@ void mainboard_smi_sleep(u8 slp_typ) pads = variant_sleep_gpio_table(&num); gpio_configure_pads(pads, num); + + chromeec_smi_sleep(slp_typ, MAINBOARD_EC_S3_WAKE_EVENTS, + MAINBOARD_EC_S5_WAKE_EVENTS); } int mainboard_smi_apmc(u8 apmc) { + chromeec_smi_apmc(apmc, MAINBOARD_EC_SCI_EVENTS, + MAINBOARD_EC_SMI_EVENTS); return 0; } diff --git a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/ec.h b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/ec.h new file mode 100644 index 0000000000..2f0024c37a --- /dev/null +++ b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/ec.h @@ -0,0 +1,82 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2020 The coreboot project Authors. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef __BASEBOARD_EC_H__ +#define __BASEBOARD_EC_H__ + +#include +#include +#include + +#define MAINBOARD_EC_SCI_EVENTS \ + (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_CONNECTED) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_AC_DISCONNECTED) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_LOW) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_CRITICAL) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_STATUS) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_THRESHOLD) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_THROTTLE_START) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_THROTTLE_STOP) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_USB_CHARGER) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_MKBP) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_PD_MCU) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE)) + +#define MAINBOARD_EC_SMI_EVENTS \ + (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_CLOSED)) + +/* EC can wake from S5 with lid or power button */ +#define MAINBOARD_EC_S5_WAKE_EVENTS \ + (EC_HOST_EVENT_MASK(EC_HOST_EVENT_LID_OPEN) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_POWER_BUTTON)) + +/* + * EC can wake from S3/S0ix with: + * 1. Lid open + * 2. Power button + * 3. Key press + * 4. Mode change + */ +#define MAINBOARD_EC_S3_WAKE_EVENTS \ + (MAINBOARD_EC_S5_WAKE_EVENTS |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_KEY_PRESSED) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_MODE_CHANGE)) + +#define MAINBOARD_EC_S0IX_WAKE_EVENTS (MAINBOARD_EC_S3_WAKE_EVENTS) + +/* Log EC wake events plus EC shutdown events */ +#define MAINBOARD_EC_LOG_EVENTS \ + (EC_HOST_EVENT_MASK(EC_HOST_EVENT_THERMAL_SHUTDOWN) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_BATTERY_SHUTDOWN) |\ + EC_HOST_EVENT_MASK(EC_HOST_EVENT_PANIC)) + +/* + * ACPI related definitions for ASL code. + */ + +/* Enable EC backed ALS device in ACPI */ +#define EC_ENABLE_ALS_DEVICE + +/* Enable LID switch and provide wake pin for EC */ +#define EC_ENABLE_LID_SWITCH +#define EC_ENABLE_WAKE_PIN GPE_EC_WAKE + +/* Enable Tablet switch */ +#define EC_ENABLE_TBMC_DEVICE + +/* Enable EC backed PD MCU device in ACPI */ +#define EC_ENABLE_PD_MCU_DEVICE + +#define SIO_EC_MEMMAP_ENABLE /* EC Memory Map Resources */ +#define SIO_EC_HOST_ENABLE /* EC Host Interface Resources */ +#define SIO_EC_ENABLE_PS2K /* Enable PS/2 Keyboard */ + +#endif /* __BASEBOARD_EC_H__ */ diff --git a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/gpio.h b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/gpio.h index 55faf01850..fe9c0c5c75 100644 --- a/src/mainboard/google/dedede/variants/baseboard/include/baseboard/gpio.h +++ b/src/mainboard/google/dedede/variants/baseboard/include/baseboard/gpio.h @@ -12,4 +12,10 @@ #include #include +/* eSPI virtual wire reporting */ +#define EC_SCI_GPI GPE0_ESPI + +/* EC wake is LAN_WAKE# which is a special DeepSX wake pin */ +#define GPE_EC_WAKE GPE0_LAN_WAK + #endif /* __BASEBOARD_GPIO_H__ */ diff --git a/src/mainboard/google/dedede/variants/dedede/include/variant/ec.h b/src/mainboard/google/dedede/variants/dedede/include/variant/ec.h new file mode 100644 index 0000000000..cc897dcdcf --- /dev/null +++ b/src/mainboard/google/dedede/variants/dedede/include/variant/ec.h @@ -0,0 +1,14 @@ +/* + * This file is part of the coreboot project. + * + * Copyright 2020 The coreboot project Authors. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef MAINBOARD_EC_H +#define MAINBOARD_EC_H + +#include + +#endif From 36a0bb823f22c80e2c849e1e988f2c9c2121cb4f Mon Sep 17 00:00:00 2001 From: Johanna Schander Date: Wed, 15 Jan 2020 09:06:48 +0100 Subject: [PATCH 35/46] lib: Always read SPD sources as text file Under some circumstances grep detects the input of a spd hex file as binary resulting in an spd source not beeing added to the resulting spd.bin. This appears to be especially the case with heavily commented files. This commit forces grep to read the input as text file. Example SPD that would else be detected as binary (regardless of stripped zero blocks). ```hex \# TotalBytes: 512 ; BytesUsed: 384 23 \# SPD Revision 1.1 11 \# DDR Ramtype: LPDDR4X 11 \# Config Rest 0E 16 21 95 08 00 00 00 00 0A 22 00 00 49 00 04 0F 92 54 05 00 84 00 90 A8 90 C0 08 60 04 00 00 [...] \# CRC Is: 0x1EB4 Calculated: 0x1EB4 Match! 1E B4 \# ModuleSpecificParameter [...] \# HybridMemoryParameter [...] \# ExtendedFunctionParameter [...] \# ManufactoringInformation \## Module Manufactoring ID 00 00 \## Module Manufactoring Location and Date 00 00 00 \## Module Manufactoring Serial 00 00 00 00 \## Module Manufactoring Part Number: "K4UBE3D4AA-MGCL" 4B 34 55 42 45 33 44 34 41 41 2D 4D 47 43 4C 00 00 00 00 00 \## Module Manufactoring Revision Code 00 \## Module Manufactor: "Samsung" (0xCE80) CE 80 \## Module Stepping 00 \## Module Manufactoring Data [..] \## Module Reserved 00 00 \# EndUserProgrammable [...] ``` Thanks to Patrick Georgi for checking that this grep option is widely available. Change-Id: I7e5bad069531630b36dc3702c8c4bd94ba0946c1 Signed-off-by: Johanna Schander Reviewed-on: https://review.coreboot.org/c/coreboot/+/38426 Reviewed-by: Patrick Georgi Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- src/lib/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc index 748f55aae8..2333f64468 100644 --- a/src/lib/Makefile.inc +++ b/src/lib/Makefile.inc @@ -338,7 +338,7 @@ LIB_SPD_DEPS = $(foreach f, $(SPD_SOURCES), src/mainboard/$(MAINBOARDDIR)/spd/$( # Include spd ROM data $(LIB_SPD_BIN): $(LIB_SPD_DEPS) for f in $(LIB_SPD_DEPS); \ - do for c in $$(cat $$f | grep -v ^#); \ + do for c in $$(cat $$f | grep --binary-files=text -v ^#); \ do printf $$(printf '\%o' 0x$$c); \ done; \ done > $@ From 161df738a7894f5639262a060860516a1208dfdb Mon Sep 17 00:00:00 2001 From: Elyes HAOUAS Date: Sat, 25 Jan 2020 20:25:53 +0100 Subject: [PATCH 36/46] src/Kconfig: Remove unused symbol The use of ENABLE_APIC_EXT_ID removed with commit: de56a66e Change-Id: I24c07c9a4813ceba48082ca2c564266435e58a18 Signed-off-by: Elyes HAOUAS Reviewed-on: https://review.coreboot.org/c/coreboot/+/38575 Reviewed-by: Nico Huber Tested-by: build bot (Jenkins) --- src/Kconfig | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Kconfig b/src/Kconfig index 9522542cc3..f538a1cc18 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -1087,10 +1087,6 @@ endmenu source "src/lib/Kconfig" -config ENABLE_APIC_EXT_ID - bool - default n - config WARNINGS_ARE_ERRORS bool default y From f93c157a93ca568167b7bc6474361293e360c20f Mon Sep 17 00:00:00 2001 From: Wonkyu Kim Date: Thu, 19 Dec 2019 19:27:34 -0800 Subject: [PATCH 37/46] mb/intel/tglrvp: Enable MIPI camera Add MIPI camera ACPI Update GPIO pin mux for camera BUG=none BRANCH=none TEST=Build and boot tigerlake rvp board and check camera Simple test method to check camera: capture image by below commands from OS console >media-ctl -V "\"Intel IPU6 CSI-2 5\":0 [fmt:SGRBG10/3280x2464]" >media-ctl -V "\"Intel IPU6 CSI-2 5\":1 [fmt:SGRBG10/3280x2464]" >media-ctl -l "\"ov8856 18-0010\":0 -> \"Intel IPU6 CSI-2 5\":0[1]" >media-ctl -V "\"Intel IPU6 CSI2 BE\":0 [fmt:SGRBG10/3280x2464]" >media-ctl -V "\"Intel IPU6 CSI2 BE\":1 [crop:(0,0)/3280x2464]" >media-ctl -V "\"Intel IPU6 CSI2 BE\":1 [fmt:SGRBG10/3280x2464]" >media-ctl -l "\"Intel IPU6 CSI-2 5\":1 -> \"Intel IPU6 CSI2 BE\":0[1]" >media-ctl -l "\"Intel IPU6 CSI2 BE\":1 -> \"Intel IPU6 CSI2 BE capture\":0[1]" >yavta -u -c5 -n5 -I -s 3280x2464 --file=/tmp/frame-#.bin -f SGRBG10 $(media-ctl -e "Intel IPU6 CSI2 BE capture") Signed-off-by: Wonkyu Kim Change-Id: I4189e96f68f0e64e0860405e00eeab84564b86be Reviewed-on: https://review.coreboot.org/c/coreboot/+/37863 Reviewed-by: Nick Vaccaro Tested-by: build bot (Jenkins) --- .../intel/tglrvp/acpi/mipi_camera.asl | 523 ++++++++++++++++++ src/mainboard/intel/tglrvp/dsdt.asl | 3 + .../intel/tglrvp/variants/tglrvp_up3/gpio.c | 6 + 3 files changed, 532 insertions(+) create mode 100644 src/mainboard/intel/tglrvp/acpi/mipi_camera.asl diff --git a/src/mainboard/intel/tglrvp/acpi/mipi_camera.asl b/src/mainboard/intel/tglrvp/acpi/mipi_camera.asl new file mode 100644 index 0000000000..c830ea1f46 --- /dev/null +++ b/src/mainboard/intel/tglrvp/acpi/mipi_camera.asl @@ -0,0 +1,523 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2020 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Scope (\_SB.PCI0.IPU0) +{ + Name (_DSD, Package (0x02) + { + ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), + Package (0x02) + { + Package (0x02) + { + "port0", + "PRT0" + }, + + Package (0x02) + { + "port1", + "PRT1" + } + } + }) + + Name (PRT0, Package (0x04) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x01) + { + Package (0x02) + { + "port", + One + } + }, + + ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), + Package (0x01) + { + Package (0x02) + { + "endpoint0", + "EP00" + } + } + }) + + Name (PRT1, Package (0x04) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x01) + { + Package (0x02) + { + "port", + 2 + } + }, + + ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), + Package (0x01) + { + Package (0x02) + { + "endpoint0", + "EP10" + } + } + }) +} + +Scope (_SB.PCI0.IPU0) +{ + Name (EP00, Package (0x02) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x04) + { + Package (0x02) + { + "endpoint", + Zero + }, + + Package (0x02) + { + "clock-lanes", + Zero + }, + + Package (0x02) + { + "data-lanes", + Package (0x04) + { + One, + 0x02, + 0x03, + 0x04 + } + }, + + Package (0x02) + { + "remote-endpoint", + Package (0x03) + { + ^I2C3.CAM0, + Zero, + Zero + } + } + } + }) + Name (EP10, Package (0x02) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x04) + { + Package (0x02) + { + "endpoint", + Zero + }, + + Package (0x02) + { + "clock-lanes", + Zero + }, + + Package (0x02) + { + "data-lanes", + Package (0x04) + { + One, + 0x02, + 0x03, + 0x04 + } + }, + + Package (0x02) + { + "remote-endpoint", + Package (0x03) + { + ^I2C5.CAM1, + Zero, + Zero + } + } + } + }) +} + +Scope (\_SB.PCI0.I2C3) +{ + PowerResource (RCPR, 0x00, 0x0000) + { + Name (STA, Zero) + Method (_ON, 0, Serialized) + { + If ((STA == Zero)) + { + /* Enable CLK0 with 19.2MHz */ + MCCT(0,1,1) + /* Pull PWREN(GPIO B23) high */ + STXS(GPP_B23) + Sleep(5) + /* Pull RST(GPIO C15) low */ + CTXS(GPP_C15) + Sleep(5) + /* Pull RST high */ + STXS(GPP_C15) + Sleep(5) + Store(1,STA) + } + } + + Method (_OFF, 0, Serialized) + { + If ((STA == One)) + { + /* Pull RST low */ + CTXS(GPP_C15) + /* Pull PWREN low */ + CTXS(GPP_B23) + /* Disable CLK0 */ + MCCT(0,0,1) + Store(0,STA) + } + } + + Method (_STA, 0, NotSerialized) + { + Return (STA) + } + } + + Device (CAM0) + { + Name (_HID, "OVTI8856") + Name (_UID, Zero) + Name (_DDN, "Ov 8856 Camera") + Method (_STA, 0, NotSerialized) + { + Return (0x0F) + } + + Name (_CRS, ResourceTemplate () + { + I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.PCI0.I2C3", + 0x00, ResourceConsumer, , + ) + }) + + Name (_PR0, Package (0x01) + { + RCPR + }) + + Name (_PR3, Package (0x01) + { + RCPR + }) + + Name (_DSD, Package (0x04) + { + ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), + Package (0x01) + { + Package (0x02) + { + "port0", + "PRT0" + } + }, + + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x02) + { + Package (0x02) + { + "clock-frequency", + 0x0124F800 + }, + Package (0x02) + { + "lens-focus", + Package (0x01) + { + VCM0 + } + } + } + }) + + Name (PRT0, Package (0x04) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x01) + { + Package (0x02) + { + "port", + Zero + } + }, + + ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), + Package (0x01) + { + Package (0x02) + { + "endpoint0", + "EP00" + } + } + }) + + Name (EP00, Package (0x02) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x03) + { + Package (0x02) + { + "endpoint", + Zero + }, + + Package (0x02) + { + "link-frequencies", + Package (0x01) + { + 0x325AA000 + } + }, + Package (0x02) + { + "remote-endpoint", + Package (0x03) + { + IPU0, + Zero, + Zero + } + } + } + }) + } + + Device (VCM0) + { + Name (_HID, "PRP0001") + Name (_UID, 0x03) + Name (_DDN, "DW9714 VCM") + Method (_STA, 0, NotSerialized) + { + Return (0x0F) + } + + Name (_CRS, ResourceTemplate () + { + I2cSerialBus (0x000C, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.PCI0.I2C3", + 0x00, ResourceConsumer, , + ) + }) + Name (_DEP, Package (0x01) + { + CAM0 + }) + Name (_PR0, Package (0x01) + { + RCPR + }) + Name (_PR3, Package (0x01) + { + RCPR + }) + Name (_DSD, Package (0x02) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x01) + { + Package (0x02) + { + "compatible", + "dongwoon,dw9714" + } + } + }) + } +} + +Scope (\_SB.PCI0.I2C5) +{ + PowerResource (FCPR, 0x00, 0x0000) + { + Name (STA, Zero) + Method (_ON, 0, Serialized) + { + If ((STA == Zero)) + { + /* Enable CLK1 with 19.2MHz */ + MCCT(1,1,1) + /* Pull PWREN(GPIO R6) high */ + STXS(GPP_R6) + Sleep(5) + /* Pull RST(GPIO H12) low */ + CTXS(GPP_H12) + Sleep(5) + /* Pull RST high */ + STXS(GPP_H12) + Sleep(5) + Store(1,STA) + } + } + + Method (_OFF, 0, Serialized) + { + If ((STA == One)) + { + /* Pull RST low */ + CTXS(GPP_H12) + /* Pull PWREN low */ + CTXS(GPP_R6) + /* Disable CLK1 */ + MCCT(1,0,1) + Store(0,STA) + } + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (STA) + } + } + + Device (CAM1) + { + Name (_HID, "OVTI8856") + Name (_UID, Zero) + Name (_DDN, "Ov 8856 Camera") + Method (_STA, 0, NotSerialized) + { + Return (0x0F) + } + + Name (_CRS, ResourceTemplate () + { + I2cSerialBus (0x0010, ControllerInitiated, 0x00061A80, + AddressingMode7Bit, "\\_SB.PCI0.I2C5", + 0x00, ResourceConsumer, , + ) + }) + + Name (_PR0, Package (0x01) + { + FCPR + }) + + Name (_PR3, Package (0x01) + { + FCPR + }) + + Name (_DSD, Package (0x04) + { + ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), + Package (0x01) + { + Package (0x02) + { + "port0", + "PRT0" + } + }, + + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x01) + { + Package (0x02) + { + "clock-frequency", + 0x0124F800 + } + } + }) + + Name (PRT0, Package (0x04) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x01) + { + Package (0x02) + { + "port", + Zero + } + }, + + ToUUID ("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), + Package (0x01) + { + Package (0x02) + { + "endpoint0", + "EP00" + } + } + }) + + Name (EP00, Package (0x02) + { + ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package (0x03) + { + Package (0x02) + { + "endpoint", + Zero + }, + + Package (0x02) + { + "link-frequencies", + Package (0x01) + { + 0x325AA000 + } + }, + Package (0x02) + { + "remote-endpoint", + Package (0x03) + { + IPU0, + One, + Zero + } + } + } + }) + } +} diff --git a/src/mainboard/intel/tglrvp/dsdt.asl b/src/mainboard/intel/tglrvp/dsdt.asl index 559e1e36cf..f21ba5d88a 100644 --- a/src/mainboard/intel/tglrvp/dsdt.asl +++ b/src/mainboard/intel/tglrvp/dsdt.asl @@ -65,4 +65,7 @@ DefinitionBlock( /* Mainboard specific */ #include "acpi/mainboard.asl" + /* Camera */ + #include + #include "acpi/mipi_camera.asl" } diff --git a/src/mainboard/intel/tglrvp/variants/tglrvp_up3/gpio.c b/src/mainboard/intel/tglrvp/variants/tglrvp_up3/gpio.c index 465e402560..69bb931611 100644 --- a/src/mainboard/intel/tglrvp/variants/tglrvp_up3/gpio.c +++ b/src/mainboard/intel/tglrvp/variants/tglrvp_up3/gpio.c @@ -22,6 +22,12 @@ static const struct pad_config gpio_table[] = { /* PCH M.2 SSD */ PAD_CFG_GPO(GPP_B16, 1, PLTRST), PAD_CFG_GPO(GPP_H0, 1, PLTRST), + + /* Camera */ + PAD_CFG_GPO(GPP_B23, 0, PLTRST), + PAD_CFG_GPO(GPP_C15, 0, PLTRST), + PAD_CFG_GPO(GPP_R6, 0, PLTRST), + PAD_CFG_GPO(GPP_H12, 0, PLTRST), }; /* Early pad configuration in bootblock */ From ec430ee343bdceaf21a7be462e8f856102bd2c09 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 17 Jan 2020 12:13:27 -0700 Subject: [PATCH 38/46] mainboard/system76: Add System76 Lemur Pro (lemp9) The System76 Lemur Pro (lemp9) is an upcoming laptop computer. Support in coreboot is developed by System76 and provided as the default firmware option. Testing is done on a pre-production model expected to be identical from a firmware perspective to the production model. Working: - Payload - Tianocore - CPU - Intel i7-10510U - Intel i5-10210U - EC - ITE IT5570E running https://github.com/system76/ec - Backlit Keyboard, with standard PS/2 keycodes and SCI hotkeys - Battery - Charger, using AC adapter or USB-C PD - Suspend/resume - Touchpad - GPU - Intel UHD Graphics 620 - GOP driver is recommended, VBT is provided - eDP 14-inch 1920x1080 LCD - HDMI video - USB-C DisplayPort video - Memory - Channel 0: 8-GB on-board DDR4 Samsung K4AAG165WA-BCTD - Channel 1: 8-GB/16-GB/32-GB DDR4 SO-DIMM - Networking - M.2 PCIe/CNVi WiFi/Bluetooth - Sound - Realtek ALC293D - Internal speaker - Internal microphone - Combined headphone/microphone 3.5-mm jack - HDMI audio - USB-C DisplayPort audio - Storage - M.2 PCIe/SATA SSD-1 - M.2 PCIe/SATA SSD-2 - RTS5227S MicroSD card reader - USB - 1280x720 CCD camera - USB 3.1 Gen 2 Type-C (left) - USB 3.1 Gen 2 Type-A (left) - USB 3.1 Gen 1 Type-A (right) Not working: - TPM2 - SPI bus 0, chip select 2 is used. Chip selects other than 0 are not currently supported by the intel fast_spi driver. Signed-off-by: Jeremy Soller Change-Id: Ib0a32bbc6f89a662085ab4a254676bc1fad7dc60 Reviewed-on: https://review.coreboot.org/c/coreboot/+/38463 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Angel Pons --- Documentation/mainboard/system76/lemp9.md | 73 +++ configs/config.system76_lemp9 | 5 + src/mainboard/system76/Kconfig | 16 + src/mainboard/system76/Kconfig.name | 2 + src/mainboard/system76/lemp9/Kconfig | 103 ++++ src/mainboard/system76/lemp9/Kconfig.name | 2 + src/mainboard/system76/lemp9/Makefile.inc | 4 + src/mainboard/system76/lemp9/acpi/ac.asl | 35 ++ src/mainboard/system76/lemp9/acpi/battery.asl | 183 ++++++ src/mainboard/system76/lemp9/acpi/buttons.asl | 26 + src/mainboard/system76/lemp9/acpi/ec.asl | 231 ++++++++ src/mainboard/system76/lemp9/acpi/ec_ram.asl | 188 ++++++ src/mainboard/system76/lemp9/acpi/gpe.asl | 24 + src/mainboard/system76/lemp9/acpi/hid.asl | 63 ++ src/mainboard/system76/lemp9/acpi/lid.asl | 36 ++ .../system76/lemp9/acpi/mainboard.asl | 28 + src/mainboard/system76/lemp9/acpi/s76.asl | 97 ++++ src/mainboard/system76/lemp9/acpi/sleep.asl | 24 + src/mainboard/system76/lemp9/board_info.txt | 8 + src/mainboard/system76/lemp9/bootblock.c | 23 + src/mainboard/system76/lemp9/data.vbt | Bin 0 -> 4608 bytes src/mainboard/system76/lemp9/devicetree.cb | 238 ++++++++ src/mainboard/system76/lemp9/dsdt.asl | 47 ++ src/mainboard/system76/lemp9/gpio.h | 547 ++++++++++++++++++ src/mainboard/system76/lemp9/hda_verb.c | 48 ++ src/mainboard/system76/lemp9/ramstage.c | 24 + src/mainboard/system76/lemp9/romstage.c | 97 ++++ .../lemp9/spd/samsung-K4AAG165WA-BCTD.spd.hex | 33 ++ 28 files changed, 2205 insertions(+) create mode 100644 Documentation/mainboard/system76/lemp9.md create mode 100644 configs/config.system76_lemp9 create mode 100644 src/mainboard/system76/Kconfig create mode 100644 src/mainboard/system76/Kconfig.name create mode 100644 src/mainboard/system76/lemp9/Kconfig create mode 100644 src/mainboard/system76/lemp9/Kconfig.name create mode 100644 src/mainboard/system76/lemp9/Makefile.inc create mode 100644 src/mainboard/system76/lemp9/acpi/ac.asl create mode 100644 src/mainboard/system76/lemp9/acpi/battery.asl create mode 100644 src/mainboard/system76/lemp9/acpi/buttons.asl create mode 100644 src/mainboard/system76/lemp9/acpi/ec.asl create mode 100644 src/mainboard/system76/lemp9/acpi/ec_ram.asl create mode 100644 src/mainboard/system76/lemp9/acpi/gpe.asl create mode 100644 src/mainboard/system76/lemp9/acpi/hid.asl create mode 100644 src/mainboard/system76/lemp9/acpi/lid.asl create mode 100644 src/mainboard/system76/lemp9/acpi/mainboard.asl create mode 100644 src/mainboard/system76/lemp9/acpi/s76.asl create mode 100644 src/mainboard/system76/lemp9/acpi/sleep.asl create mode 100644 src/mainboard/system76/lemp9/board_info.txt create mode 100644 src/mainboard/system76/lemp9/bootblock.c create mode 100644 src/mainboard/system76/lemp9/data.vbt create mode 100644 src/mainboard/system76/lemp9/devicetree.cb create mode 100644 src/mainboard/system76/lemp9/dsdt.asl create mode 100644 src/mainboard/system76/lemp9/gpio.h create mode 100644 src/mainboard/system76/lemp9/hda_verb.c create mode 100644 src/mainboard/system76/lemp9/ramstage.c create mode 100644 src/mainboard/system76/lemp9/romstage.c create mode 100644 src/mainboard/system76/lemp9/spd/samsung-K4AAG165WA-BCTD.spd.hex diff --git a/Documentation/mainboard/system76/lemp9.md b/Documentation/mainboard/system76/lemp9.md new file mode 100644 index 0000000000..9739484820 --- /dev/null +++ b/Documentation/mainboard/system76/lemp9.md @@ -0,0 +1,73 @@ +# System76 Lemur Pro (lemp9) + +## Specs + +- CPU + - Intel i7-10510U + - Intel i5-10210U +- EC + - ITE IT5570E running https://github.com/system76/ec + - Backlit Keyboard, with standard PS/2 keycodes and SCI hotkeys + - Battery + - Charger, using AC adapter or USB-C PD + - Suspend/resume + - Touchpad +- GPU + - Intel UHD Graphics 620 + - GOP driver is recommended, VBT is provided + - eDP 14-inch 1920x1080 LCD + - HDMI video + - USB-C DisplayPort video +- Memory + - Channel 0: 8-GB on-board DDR4 Samsung K4AAG165WA-BCTD + - Channel 1: 8-GB/16-GB/32-GB DDR4 SO-DIMM +- Networking + - M.2 PCIe/CNVi WiFi/Bluetooth +- Sound + - Realtek ALC293D + - Internal speaker + - Internal microphone + - Combined headphone/microphone 3.5-mm jack + - HDMI audio + - USB-C DisplayPort audio +- Storage + - M.2 PCIe/SATA SSD-1 + - M.2 PCIe/SATA SSD-2 + - RTS5227S MicroSD card reader +- USB + - 1280x720 CCD camera + - USB 3.1 Gen 2 Type-C (left) + - USB 3.1 Gen 2 Type-A (left) + - USB 3.1 Gen 1 Type-A (right) + +## Building coreboot + +The following commands will build a working image: + +```bash +make distclean +make defconfig KBUILD_DEFCONFIG=configs/config.system76_lemp9 +make +``` + +## Flashing coreboot + +```eval_rst ++---------------------+------------+ +| Type | Value | ++=====================+============+ +| Socketed flash | no | ++---------------------+------------+ +| Vendor | GigaDevice | ++---------------------+------------+ +| Model | GD25Q128C | ++---------------------+------------+ +| Size | 16 MiB | ++---------------------+------------+ +| Package | SOIC-8 | ++---------------------+------------+ +| Internal flashing | yes | ++---------------------+------------+ +| External flashing | yes | ++---------------------+------------+ +``` diff --git a/configs/config.system76_lemp9 b/configs/config.system76_lemp9 new file mode 100644 index 0000000000..d9d98facd7 --- /dev/null +++ b/configs/config.system76_lemp9 @@ -0,0 +1,5 @@ +CONFIG_VENDOR_SYSTEM76=y +CONFIG_BOARD_SYSTEM76_LEMP9=y +CONFIG_PAYLOAD_TIANOCORE=y +CONFIG_RUN_FSP_GOP=y +CONFIG_SMMSTORE=y diff --git a/src/mainboard/system76/Kconfig b/src/mainboard/system76/Kconfig new file mode 100644 index 0000000000..62034a4222 --- /dev/null +++ b/src/mainboard/system76/Kconfig @@ -0,0 +1,16 @@ +if VENDOR_SYSTEM76 + +choice + prompt "Mainboard model" + +source "src/mainboard/system76/*/Kconfig.name" + +endchoice + +source "src/mainboard/system76/*/Kconfig" + +config MAINBOARD_VENDOR + string + default "System76" + +endif diff --git a/src/mainboard/system76/Kconfig.name b/src/mainboard/system76/Kconfig.name new file mode 100644 index 0000000000..7155721bee --- /dev/null +++ b/src/mainboard/system76/Kconfig.name @@ -0,0 +1,2 @@ +config VENDOR_SYSTEM76 + bool "System76" diff --git a/src/mainboard/system76/lemp9/Kconfig b/src/mainboard/system76/lemp9/Kconfig new file mode 100644 index 0000000000..a612503b6a --- /dev/null +++ b/src/mainboard/system76/lemp9/Kconfig @@ -0,0 +1,103 @@ +if BOARD_SYSTEM76_LEMP9 + +config BOARD_SPECIFIC_OPTIONS + def_bool y + select ADD_FSP_BINARIES + select BOARD_ROMSIZE_KB_16384 + select EC_ACPI + select HAVE_ACPI_RESUME + select HAVE_ACPI_TABLES + select HAVE_SMI_HANDLER + select GENERIC_SPD_BIN + select INTEL_GMA_HAVE_VBT + select INTEL_LPSS_UART_FOR_CONSOLE +# Chip select 2 is not yet supported by intel fast_spi +# select MAINBOARD_HAS_SPI_TPM_CR50 +# select MAINBOARD_HAS_TPM2 + select NO_UART_ON_SUPERIO + select SOC_INTEL_COMETLAKE + select SOC_INTEL_COMMON_BLOCK_HDA + select SOC_INTEL_COMMON_BLOCK_HDA_VERB + select SPD_READ_BY_WORD + select SYSTEM_TYPE_LAPTOP + select USE_BLOBS + select USE_LEGACY_8254_TIMER # Fix failure to boot GRUB + +config MAINBOARD_DIR + string + default system76/lemp9 + +config MAINBOARD_PART_NUMBER + string + default "lemp9" + +config MAINBOARD_SMBIOS_PRODUCT_NAME + string + default "Lemur Pro" + +config MAINBOARD_VERSION + string + default "lemp9" + +config CBFS_SIZE + hex + default 0xA00000 + +config SUBSYSTEM_VENDOR_ID + hex + default 0x1558 + +config SUBSYSTEM_DEVICE_ID + hex + default 0x1401 + +config CONSOLE_POST + bool + default y + +config ONBOARD_VGA_IS_PRIMARY + bool + default y + +config UART_FOR_CONSOLE + int + default 2 + +config MAX_CPUS + int + default 8 + +config DIMM_MAX + int + default 2 + +config DIMM_SPD_SIZE + int + default 512 + +config VGA_BIOS_FILE + string + default "pci8086,9b41.rom" + +config VGA_BIOS_ID + string + default "8086,9b41" + +config FSP_M_XIP + bool + default y + +config POST_DEVICE + bool + default n + +# Chip select 2 is not yet supported by intel fast_spi +#config DRIVER_TPM_SPI_BUS +# hex +# default 0x0 +# +#config DRIVER_TPM_SPI_CHIP +# int +# default 2 + +endif diff --git a/src/mainboard/system76/lemp9/Kconfig.name b/src/mainboard/system76/lemp9/Kconfig.name new file mode 100644 index 0000000000..4a4ab68597 --- /dev/null +++ b/src/mainboard/system76/lemp9/Kconfig.name @@ -0,0 +1,2 @@ +config BOARD_SYSTEM76_LEMP9 + bool "lemp9" diff --git a/src/mainboard/system76/lemp9/Makefile.inc b/src/mainboard/system76/lemp9/Makefile.inc new file mode 100644 index 0000000000..3d742d6e13 --- /dev/null +++ b/src/mainboard/system76/lemp9/Makefile.inc @@ -0,0 +1,4 @@ +bootblock-y += bootblock.c +ramstage-y += ramstage.c +ramstage-y += hda_verb.c +SPD_SOURCES = samsung-K4AAG165WA-BCTD diff --git a/src/mainboard/system76/lemp9/acpi/ac.asl b/src/mainboard/system76/lemp9/acpi/ac.asl new file mode 100644 index 0000000000..6574c61e41 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/ac.asl @@ -0,0 +1,35 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Device (AC) +{ + Name (_HID, "ACPI0003" /* Power Source Device */) // _HID: Hardware ID + Name (_PCL, Package (0x01) // _PCL: Power Consumer List + { + _SB + }) + + Name (ACFG, One) + + Method (_PSR, 0, NotSerialized) // _PSR: Power Source + { + Return (ACFG) + } + + Method (_STA, 0, NotSerialized) // _STA: Status + { + Return (0x0F) + } +} diff --git a/src/mainboard/system76/lemp9/acpi/battery.asl b/src/mainboard/system76/lemp9/acpi/battery.asl new file mode 100644 index 0000000000..c1e6c6ce1d --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/battery.asl @@ -0,0 +1,183 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Device (BAT0) +{ + Name (_HID, EisaId ("PNP0C0A") /* Control Method Battery */) // _HID: Hardware ID + Name (_UID, Zero) // _UID: Unique ID + Name (_PCL, Package (0x01) // _PCL: Power Consumer List + { + _SB + }) + Name (BFCC, Zero) + Method (_STA, 0, NotSerialized) // _STA: Status + { + If (^^PCI0.LPCB.EC0.ECOK) + { + If (^^PCI0.LPCB.EC0.BAT0) + { + Return (0x1F) + } + Else + { + Return (0x0F) + } + } + Else + { + Return (0x0F) + } + } + + Name (PBIF, Package (0x0D) + { + One, + 0xFFFFFFFF, + 0xFFFFFFFF, + One, + 0x39D0, + Zero, + Zero, + 0x40, + 0x40, + "BAT", + "0001", + "LION", + "Notebook" + }) + Method (IVBI, 0, NotSerialized) + { + PBIF [One] = 0xFFFFFFFF + PBIF [0x02] = 0xFFFFFFFF + PBIF [0x04] = 0xFFFFFFFF + PBIF [0x09] = " " + PBIF [0x0A] = " " + PBIF [0x0B] = " " + PBIF [0x0C] = " " + BFCC = Zero + } + + Method (UPBI, 0, NotSerialized) + { + If (^^PCI0.LPCB.EC0.BAT0) + { + Local0 = (^^PCI0.LPCB.EC0.BDC0 & 0xFFFF) + PBIF [One] = Local0 + Local0 = (^^PCI0.LPCB.EC0.BFC0 & 0xFFFF) + PBIF [0x02] = Local0 + BFCC = Local0 + Local0 = (^^PCI0.LPCB.EC0.BDV0 & 0xFFFF) + PBIF [0x04] = Local0 + Local0 = (^^PCI0.LPCB.EC0.BCW0 & 0xFFFF) + PBIF [0x05] = Local0 + Local0 = (^^PCI0.LPCB.EC0.BCL0 & 0xFFFF) + PBIF [0x06] = Local0 + PBIF [0x09] = "BAT" + PBIF [0x0A] = "0001" + PBIF [0x0B] = "LION" + PBIF [0x0C] = "Notebook" + } + Else + { + IVBI () + } + } + + Method (_BIF, 0, NotSerialized) // _BIF: Battery Information + { + If (^^PCI0.LPCB.EC0.ECOK) + { + UPBI () + } + Else + { + IVBI () + } + + Return (PBIF) /* \_SB_.BAT0.PBIF */ + } + + Name (PBST, Package (0x04) + { + Zero, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0x3D90 + }) + Method (IVBS, 0, NotSerialized) + { + PBST [Zero] = Zero + PBST [One] = 0xFFFFFFFF + PBST [0x02] = 0xFFFFFFFF + PBST [0x03] = 0x2710 + } + + Method (UPBS, 0, NotSerialized) + { + If (^^PCI0.LPCB.EC0.BAT0) + { + Local0 = Zero + Local1 = Zero + If (^^AC.ACFG) + { + If (((^^PCI0.LPCB.EC0.BST0 & 0x02) == 0x02)) + { + Local0 |= 0x02 + Local1 = (^^PCI0.LPCB.EC0.BPR0 & 0xFFFF) + } + } + Else + { + Local0 |= One + Local1 = (^^PCI0.LPCB.EC0.BPR0 & 0xFFFF) + } + + Local7 = (Local1 & 0x8000) + If ((Local7 == 0x8000)) + { + Local1 ^= 0xFFFF + } + + Local2 = (^^PCI0.LPCB.EC0.BRC0 & 0xFFFF) + Local3 = (^^PCI0.LPCB.EC0.BPV0 & 0xFFFF) + PBST [Zero] = Local0 + PBST [One] = Local1 + PBST [0x02] = Local2 + PBST [0x03] = Local3 + If ((BFCC != ^^PCI0.LPCB.EC0.BFC0)) + { + Notify (BAT0, 0x81) // Information Change + } + } + Else + { + IVBS () + } + } + + Method (_BST, 0, NotSerialized) // _BST: Battery Status + { + If (^^PCI0.LPCB.EC0.ECOK) + { + UPBS () + } + Else + { + IVBS () + } + + Return (PBST) /* \_SB_.BAT0.PBST */ + } +} diff --git a/src/mainboard/system76/lemp9/acpi/buttons.asl b/src/mainboard/system76/lemp9/acpi/buttons.asl new file mode 100644 index 0000000000..62847b5c09 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/buttons.asl @@ -0,0 +1,26 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Device (PWRB) +{ + Name (_HID, EisaId ("PNP0C0C")) + Name (_PRW, Package () { 0x29 /* GPP_D9 */, 3 }) +} + +Device (SLPB) +{ + Name (_HID, EisaId ("PNP0C0E")) + Name (_PRW, Package () { 0x29 /* GPP_D9 */, 3 }) +} diff --git a/src/mainboard/system76/lemp9/acpi/ec.asl b/src/mainboard/system76/lemp9/acpi/ec.asl new file mode 100644 index 0000000000..c26670a009 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/ec.asl @@ -0,0 +1,231 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Device (EC0) +{ + Name (_HID, EisaId ("PNP0C09") /* Embedded Controller Device */) // _HID: Hardware ID + Name (_GPE, 0x50 /* GPP_E16 */) // _GPE: General Purpose Events + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + IO (Decode16, + 0x0062, // Range Minimum + 0x0062, // Range Maximum + 0x00, // Alignment + 0x01, // Length + ) + IO (Decode16, + 0x0066, // Range Minimum + 0x0066, // Range Maximum + 0x00, // Alignment + 0x01, // Length + ) + }) + + #include "acpi/ec_ram.asl" + + Name (ECOK, Zero) + Method (_REG, 2, Serialized) // _REG: Region Availability + { + Debug = Concatenate("EC: _REG", Concatenate(ToHexString(Arg0), Concatenate(" ", ToHexString(Arg1)))) + If (((Arg0 == 0x03) && (Arg1 == One))) { + // Enable hardware touchpad lock, airplane mode, and keyboard backlight keys + ECOS = 1 + + // Enable software display brightness keys + WINF = 1 + + // Set current AC state + ^^^^AC.ACFG = ADP + // Update battery information and status + ^^^^BAT0.UPBI() + ^^^^BAT0.UPBS() + + PNOT () + + // EC is now available + ECOK = Arg1 + + // Reset System76 Device + ^^^^S76D.RSET() + } + } + + Method (PTS, 1, Serialized) { + Debug = Concatenate("EC: PTS: ", ToHexString(Arg0)) + If (ECOK) { + // Clear wake cause + WFNO = Zero + } + } + + Method (WAK, 1, Serialized) { + Debug = Concatenate("EC: WAK: ", ToHexString(Arg0)) + If (ECOK) { + // Set current AC state + ^^^^AC.ACFG = ADP + + // Update battery information and status + ^^^^BAT0.UPBI() + ^^^^BAT0.UPBS() + + // Notify of changes + Notify(^^^^AC, Zero) + Notify(^^^^BAT0, Zero) + + Sleep (1000) + + // Reset System76 Device + ^^^^S76D.RSET() + } + } + + Method (_Q0A, 0, NotSerialized) // Touchpad Toggle + { + Debug = "EC: Touchpad Toggle" + } + + Method (_Q0B, 0, NotSerialized) // Screen Toggle + { + Debug = "EC: Screen Toggle" + } + + Method (_Q0C, 0, NotSerialized) // Mute + { + Debug = "EC: Mute" + } + + Method (_Q0D, 0, NotSerialized) // Keyboard Backlight + { + Debug = "EC: Keyboard Backlight" + } + + Method (_Q0E, 0, NotSerialized) // Volume Down + { + Debug = "EC: Volume Down" + } + + Method (_Q0F, 0, NotSerialized) // Volume Up + { + Debug = "EC: Volume Up" + } + + Method (_Q10, 0, NotSerialized) // Switch Video Mode + { + Debug = "EC: Switch Video Mode" + } + + Method (_Q11, 0, NotSerialized) // Brightness Down + { + Debug = "EC: Brightness Down" + ^^^^HIDD.HPEM (20) + } + + Method (_Q12, 0, NotSerialized) // Brightness Up + { + Debug = "EC: Brightness Up" + ^^^^HIDD.HPEM (19) + } + + Method (_Q13, 0, NotSerialized) // Camera Toggle + { + Debug = "EC: Camera Toggle" + } + + Method (_Q14, 0, NotSerialized) // Airplane Mode + { + Debug = "EC: Airplane Mode" + // Only send HIDD message when hardware airplane mode not in use + If (ECOS == 2) { + ^^^^HIDD.HPEM (8) + } + } + + Method (_Q15, 0, NotSerialized) // Suspend Button + { + Debug = "EC: Suspend Button" + Notify (SLPB, 0x80) + } + + Method (_Q16, 0, NotSerialized) // AC Detect + { + Debug = "EC: AC Detect" + ^^^^AC.ACFG = ADP + Notify (AC, 0x80) // Status Change + Sleep (0x01F4) + If (BAT0) + { + Notify (^^^^BAT0, 0x81) // Information Change + Sleep (0x32) + Notify (^^^^BAT0, 0x80) // Status Change + Sleep (0x32) + } + } + + Method (_Q17, 0, NotSerialized) // BAT0 Update + { + Debug = "EC: BAT0 Update (17)" + Notify (^^^^BAT0, 0x81) // Information Change + } + + Method (_Q19, 0, NotSerialized) // BAT0 Update + { + Debug = "EC: BAT0 Update (19)" + Notify (^^^^BAT0, 0x81) // Information Change + } + + Method (_Q1B, 0, NotSerialized) // Lid Close + { + Debug = "EC: Lid Close" + Notify (LID0, 0x80) + } + + Method (_Q1C, 0, NotSerialized) // Thermal Trip + { + Debug = "EC: Thermal Trip" + /* TODO + Notify (\_TZ.TZ0, 0x81) // Thermal Trip Point Change + Notify (\_TZ.TZ0, 0x80) // Thermal Status Change + */ + } + + Method (_Q1D, 0, NotSerialized) // Power Button + { + Debug = "EC: Power Button" + Notify (PWRB, 0x80) + } + + Method (_Q50, 0, NotSerialized) // Other Events + { + Local0 = OEM4 + If (Local0 == 0x8A) { + Debug = "EC: White Keyboard Backlight" + Notify (^^^^S76D, 0x80) + } ElseIf (Local0 == 0x9F) { + Debug = "EC: Color Keyboard Toggle" + Notify (^^^^S76D, 0x81) + } ElseIf (Local0 == 0x81) { + Debug = "EC: Color Keyboard Down" + Notify (^^^^S76D, 0x82) + } ElseIf (Local0 == 0x82) { + Debug = "EC: Color Keyboard Up" + Notify (^^^^S76D, 0x83) + } ElseIf (Local0 == 0x80) { + Debug = "EC: Color Keyboard Color Change" + Notify (^^^^S76D, 0x84) + } Else { + Debug = Concatenate("EC: Other: ", ToHexString(Local0)) + } + } +} diff --git a/src/mainboard/system76/lemp9/acpi/ec_ram.asl b/src/mainboard/system76/lemp9/acpi/ec_ram.asl new file mode 100644 index 0000000000..4bb452b6e3 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/ec_ram.asl @@ -0,0 +1,188 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF) +Field (ERAM, ByteAcc, Lock, Preserve) +{ + NMSG, 8, + SLED, 4, + Offset (0x02), + MODE, 1, + FAN0, 1, + TME0, 1, + TME1, 1, + FAN1, 1, + , 2, + Offset (0x03), + LSTE, 1, + LSW0, 1, + LWKE, 1, + WAKF, 1, + , 2, + PWKE, 1, + MWKE, 1, + AC0, 8, + PSV, 8, + CRT, 8, + TMP, 8, + AC1, 8, + BBST, 8, + Offset (0x0B), + Offset (0x0C), + Offset (0x0D), + Offset (0x0E), + SLPT, 8, + SWEJ, 1, + SWCH, 1, + Offset (0x10), + ADP, 1, + AFLT, 1, + BAT0, 1, + BAT1, 1, + , 3, + PWOF, 1, + WFNO, 8, + BPU0, 32, + BDC0, 32, + BFC0, 32, + BTC0, 32, + BDV0, 32, + BST0, 32, + BPR0, 32, + BRC0, 32, + BPV0, 32, + BTP0, 16, + BRS0, 16, + BCW0, 32, + BCL0, 32, + BCG0, 32, + BG20, 32, + BMO0, 64, + BIF0, 64, + BSN0, 32, + BTY0, 64, + Offset (0x67), + Offset (0x68), + ECOS, 8, + LNXD, 8, + ECPS, 8, + Offset (0x6C), + BTMP, 16, + EVTN, 8, + Offset (0x72), + PRCL, 8, + PRC0, 8, + PRC1, 8, + PRCM, 8, + PRIN, 8, + PSTE, 8, + PCAD, 8, + PEWL, 8, + PWRL, 8, + PECD, 8, + PEHI, 8, + PECI, 8, + PEPL, 8, + PEPM, 8, + PWFC, 8, + PECC, 8, + PDT0, 8, + PDT1, 8, + PDT2, 8, + PDT3, 8, + PRFC, 8, + PRS0, 8, + PRS1, 8, + PRS2, 8, + PRS3, 8, + PRS4, 8, + PRCS, 8, + PEC0, 8, + PEC1, 8, + PEC2, 8, + PEC3, 8, + CMDR, 8, + CVRT, 8, + GTVR, 8, + FANT, 8, + SKNT, 8, + AMBT, 8, + MCRT, 8, + DIM0, 8, + DIM1, 8, + PMAX, 8, + PPDT, 8, + PECH, 8, + PMDT, 8, + TSD0, 8, + TSD1, 8, + TSD2, 8, + TSD3, 8, + CPUP, 16, + MCHP, 16, + SYSP, 16, + CPAP, 16, + MCAP, 16, + SYAP, 16, + CFSP, 16, + CPUE, 16, + Offset (0xC6), + Offset (0xC7), + VGAT, 8, + OEM1, 8, + OEM2, 8, + OEM3, 16, + OEM4, 8, + Offset (0xCE), + DUT1, 8, + DUT2, 8, + RPM1, 16, + RPM2, 16, + RPM4, 16, + Offset (0xD7), + DTHL, 8, + DTBP, 8, + AIRP, 8, + WINF, 8, + RINF, 8, + Offset (0xDD), + INF2, 8, + MUTE, 1, + Offset (0xE0), + RPM3, 16, + ECKS, 8, + Offset (0xE4), + , 4, + XTUF, 1, + EP12, 1, + Offset (0xE5), + INF3, 8, + Offset (0xE7), + GFOF, 8, + Offset (0xE9), + KPCR, 1, + Offset (0xEA), + Offset (0xF0), + PL1T, 16, + PL2T, 16, + TAUT, 8, + Offset (0xF8), + FCMD, 8, + FDAT, 8, + FBUF, 8, + FBF1, 8, + FBF2, 8, + FBF3, 8 +} diff --git a/src/mainboard/system76/lemp9/acpi/gpe.asl b/src/mainboard/system76/lemp9/acpi/gpe.asl new file mode 100644 index 0000000000..e68c9cd306 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/gpe.asl @@ -0,0 +1,24 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +// GPP_D9 SCI +Method (_L29, 0, Serialized) { + Debug = Concatenate("GPE _L29: ", ToHexString(\_SB.PCI0.LPCB.EC0.WFNO)) + If (\_SB.PCI0.LPCB.EC0.ECOK) { + If (\_SB.PCI0.LPCB.EC0.WFNO == One) { + Notify(\_SB.LID0, 0x80) + } + } +} diff --git a/src/mainboard/system76/lemp9/acpi/hid.asl b/src/mainboard/system76/lemp9/acpi/hid.asl new file mode 100644 index 0000000000..1f151d5582 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/hid.asl @@ -0,0 +1,63 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Device (HIDD) +{ + Name (_HID, "INT33D5") + Name (HBSY, Zero) + Name (HIDX, Zero) + Name (HRDY, Zero) + + Method (HDEM, 0, Serialized) + { + HBSY = Zero + Return (HIDX) + } + + Method (HDMM, 0, Serialized) + { + Return (Zero) + } + + Method (HDSM, 1, Serialized) + { + HRDY = Arg0 + } + + Method (HPEM, 1, Serialized) + { + HBSY = One + HIDX = Arg0 + + Notify (HIDD, 0xC0) + Local0 = Zero + While (((Local0 < 0xFA) && HBSY)) + { + Sleep (0x04) + Local0++ + } + + If ((HBSY == One)) + { + HBSY = Zero + HIDX = Zero + Return (One) + } + Else + { + Return (Zero) + } + } +} diff --git a/src/mainboard/system76/lemp9/acpi/lid.asl b/src/mainboard/system76/lemp9/acpi/lid.asl new file mode 100644 index 0000000000..729a0d9090 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/lid.asl @@ -0,0 +1,36 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Device (LID0) +{ + Name (_HID, EisaId ("PNP0C0D")) + Name (_PRW, Package () { 0x29 /* GPP_D9 */, 3 }) + + Method (_LID, 0, NotSerialized) { + DEBUG = "LID: _LID" + If (^^PCI0.LPCB.EC0.ECOK) { + Return (^^PCI0.LPCB.EC0.LSTE) + } Else { + Return (One) + } + } + + Method (_PSW, 1, NotSerialized) { + DEBUG = Concatenate("LID: _PSW: ", ToHexString(Arg0)) + If (^^PCI0.LPCB.EC0.ECOK) { + ^^PCI0.LPCB.EC0.LWKE = Arg0 + } + } +} diff --git a/src/mainboard/system76/lemp9/acpi/mainboard.asl b/src/mainboard/system76/lemp9/acpi/mainboard.asl new file mode 100644 index 0000000000..d065ee166e --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/mainboard.asl @@ -0,0 +1,28 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +Scope (\_SB) { + #include "ac.asl" + #include "battery.asl" + #include "buttons.asl" + #include "hid.asl" + #include "lid.asl" + #include "s76.asl" + #include "sleep.asl" +} + +Scope (_GPE) { + #include "gpe.asl" +} diff --git a/src/mainboard/system76/lemp9/acpi/s76.asl b/src/mainboard/system76/lemp9/acpi/s76.asl new file mode 100644 index 0000000000..145feb0c72 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/s76.asl @@ -0,0 +1,97 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +// Notifications: +// 0x80 - hardware backlight toggle +// 0x81 - backlight toggle +// 0x82 - backlight down +// 0x83 - backlight up +// 0x84 - backlight color change +Device (S76D) { + Name (_HID, "17761776") + Name (_UID, 0) + + Method (RSET, 0, Serialized) { + Debug = "S76D: RSET" + SAPL(0) + SKBL(0) + } + + Method (INIT, 0, Serialized) { + Debug = "S76D: INIT" + RSET() + If (^^PCI0.LPCB.EC0.ECOK) { + // Set flags to use software control + ^^PCI0.LPCB.EC0.ECOS = 2 + Return (0) + } Else { + Return (1) + } + } + + Method (FINI, 0, Serialized) { + Debug = "S76D: FINI" + RSET() + If (^^PCI0.LPCB.EC0.ECOK) { + // Set flags to use hardware control + ^^PCI0.LPCB.EC0.ECOS = 1 + Return (0) + } Else { + Return (1) + } + } + + // Get Airplane LED + Method (GAPL, 0, Serialized) { + If (^^PCI0.LPCB.EC0.ECOK) { + If (^^PCI0.LPCB.EC0.AIRP & 0x40) { + Return (1) + } + } + Return (0) + } + + // Set Airplane LED + Method (SAPL, 1, Serialized) { + If (^^PCI0.LPCB.EC0.ECOK) { + If (Arg0) { + ^^PCI0.LPCB.EC0.AIRP |= 0x40 + } Else { + ^^PCI0.LPCB.EC0.AIRP &= 0xBF + } + } + } + + // Get KB LED + Method (GKBL, 0, Serialized) { + Local0 = 0 + If (^^PCI0.LPCB.EC0.ECOK) { + ^^PCI0.LPCB.EC0.FDAT = One + ^^PCI0.LPCB.EC0.FCMD = 0xCA + Local0 = ^^PCI0.LPCB.EC0.FBUF + ^^PCI0.LPCB.EC0.FCMD = Zero + } + Return (Local0) + } + + // Set KB Led + Method (SKBL, 1, Serialized) { + If (^^PCI0.LPCB.EC0.ECOK) { + ^^PCI0.LPCB.EC0.FDAT = Zero + ^^PCI0.LPCB.EC0.FBUF = Arg0 + ^^PCI0.LPCB.EC0.FCMD = 0xCA + } + } +} diff --git a/src/mainboard/system76/lemp9/acpi/sleep.asl b/src/mainboard/system76/lemp9/acpi/sleep.asl new file mode 100644 index 0000000000..9a3ecaa373 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/sleep.asl @@ -0,0 +1,24 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/* Method called from _PTS prior to enter sleep state */ +Method (MPTS, 1) { + \_SB.PCI0.LPCB.EC0.PTS (Arg0) +} + +/* Method called from _WAK prior to wakeup */ +Method (MWAK, 1) { + \_SB.PCI0.LPCB.EC0.WAK (Arg0) +} diff --git a/src/mainboard/system76/lemp9/board_info.txt b/src/mainboard/system76/lemp9/board_info.txt new file mode 100644 index 0000000000..f6784eff02 --- /dev/null +++ b/src/mainboard/system76/lemp9/board_info.txt @@ -0,0 +1,8 @@ +Vendor name: System76 +Board name: lemp9 +Category: laptop +Release year: 2020 +ROM package: SOIC-8 +ROM protocol: SPI +ROM socketed: n +Flashrom support: y diff --git a/src/mainboard/system76/lemp9/bootblock.c b/src/mainboard/system76/lemp9/bootblock.c new file mode 100644 index 0000000000..00c4588f5f --- /dev/null +++ b/src/mainboard/system76/lemp9/bootblock.c @@ -0,0 +1,23 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include +#include "gpio.h" + +void bootblock_mainboard_init(void) +{ + gpio_configure_pads(early_gpio_table, ARRAY_SIZE(early_gpio_table)); +} diff --git a/src/mainboard/system76/lemp9/data.vbt b/src/mainboard/system76/lemp9/data.vbt new file mode 100644 index 0000000000000000000000000000000000000000..f14d8073e9217b16ea178678795c290f6d2067f8 GIT binary patch literal 4608 zcmeHKU2GIp6h5=l{kuD}oeo5{E7rqLU|VRJEwExOakjg~E?wAdw=_#MX@Om^q0rhN zEe6vyX_N;g`=A63N?(ZD7xBsXhHp(wlxTuaModgle38hD0U6JoncY&FmX#<9@$8;^ z?!9y7n{&=RbMKk8y=^_1>D-%)cDAEUIndx-O#`(HsV$Mp^u?n+(Z051D%OcV!Xq$N zbL%QVP7rFPu%?9*N5}Gmq3(KuP2#Sh{R4yfP4WEb;jy7%Ove%!J#ZjDm>=0Umd|0P z_n9biOqsQf4-DpT_xO?h`H>bRAdR#!yrpUL7R2zTX8LR4t<=?8!jYD(Ps%Lb9!u>? zCz8>gL~1vtx-p)}L^GN8U2Vy|nC?z>B-#=^?Qxlv-G~hh9~&7s^!ylxV)fWe&uBD3 zO_MP;G&0%snq!?q*@OgssUH-@qk63=H-9iEML?@VeIx_EHr3YJY7PMU za}v<*a5dyJgch;Y_|PH&t*6rnEk_guI&3vxNekzxm1gg&6a|2rFViDQauPt`1mG7m zIO(l}lo*2Jq61zNw?RYIENEVYj8}n!#K(xgaWeRh_zLkg;v2+H7lUfzTH-atjl@q7 zM~OR$_Yn6H4-mV?;ilmz0IdX3L9k_wB|)izll4$IW6z(l=e@tuq7yM&`fO=VR?rxR z+YPsjF9Tp0p6%QMoe;=vA#Nje*fMEKQB2$89+Es(S$k|4-hLW7%mn%SThT;jUqJb# zGmMgd4{A?Z20Q6Z6g{m|D@|Ya02pUw5hj4u&<z|T|(Iv@lAh{IY~4*ife>no4B56=r} zWmAYyT|V09-CrJr>Zni|Ee}hb86vA+{}zac7{1BWvy6Sj@GGYNz}PPgYkcY&A8Yhs z#;4|eY{-Xi`_vD7>=Pe;>r;RBvEO`HE2$eKwpGGsCH08JUXt)VN&Q%2pGo+=q+XNQ z4GCAt>Smd3m+^qCj>~LP#&fdzsmwl?@rtbeE;G@O^?vm!KWq2nVZZu{pS|vv8&qe( zaakzT_|2loGa}Lclyyj^ye=ptoz?5$Jd$h=mY{Oo~=5M`l75M`)$uYH=^L1~}aXnyw9-TO9z| zKsRzUX~G$-2w?)df{L!(h9DH3e*xjcO%s>9g6s6`={XyOqRT|kUFR#Xq2p;?+kd`U z*DuT=xU4Ek>UCBU$%CtUXS$$H+flUFf=9Awp08v|C2=_3RGjV)*6AABYeA8$Dw>wDfBhU*S$ d(gZkBrU#>IEl26&<-W_!3%=2p&X0S%`X>cK)*k=> literal 0 HcmV?d00001 diff --git a/src/mainboard/system76/lemp9/devicetree.cb b/src/mainboard/system76/lemp9/devicetree.cb new file mode 100644 index 0000000000..7a6ba6a959 --- /dev/null +++ b/src/mainboard/system76/lemp9/devicetree.cb @@ -0,0 +1,238 @@ +chip soc/intel/cannonlake + # Lock Down + register "common_soc_config" = "{ + .chipset_lockdown = CHIPSET_LOCKDOWN_COREBOOT, + }" + + # Send an extra VR mailbox command for the PS4 exit issue + register "SendVrMbxCmd" = "2" + +# ACPI (soc/intel/cannonlake/acpi.c) + # Disable s0ix + register "s0ix_enable" = "0" + + # PM Timer Enabled + register "PmTimerDisabled" = "0" + + # Disable DPTF + register "dptf_enable" = "0" + +# CPU (soc/intel/cannonlake/cpu.c) + # Power limit + register "tdp_pl1_override" = "15" + register "tdp_pl2_override" = "25" + + # Enable "Intel Speed Shift Technology" + register "speed_shift_enable" = "1" + + # Enable Enhanced Intel SpeedStep + register "eist_enable" = "1" + +# FSP Memory (soc/intel/cannonlake/romstage/fsp_params.c) + register "SaGv" = "SaGv_Enabled" + #register "enable_c6dram" = "1" + +# FSP Silicon (soc/intel/cannonlake/fsp_params.c) + # SATA + register "SataMode" = "Sata_AHCI" + register "SataSalpSupport" = "0" + + register "SataPortsEnable[0]" = "0" + register "SataPortsEnable[1]" = "1" + register "SataPortsEnable[2]" = "1" + register "SataPortsEnable[3]" = "0" + register "SataPortsEnable[4]" = "0" + register "SataPortsEnable[5]" = "0" + register "SataPortsEnable[6]" = "0" + register "SataPortsEnable[7]" = "0" + + register "SataPortsDevSlp[0]" = "0" + register "SataPortsDevSlp[1]" = "0" + register "SataPortsDevSlp[2]" = "0" + register "SataPortsDevSlp[3]" = "0" + register "SataPortsDevSlp[4]" = "0" + register "SataPortsDevSlp[5]" = "0" + register "SataPortsDevSlp[6]" = "0" + register "SataPortsDevSlp[7]" = "0" + + # Audio + register "PchHdaDspEnable" = "0" + register "PchHdaAudioLinkHda" = "1" + register "PchHdaAudioLinkDmic0" = "1" + register "PchHdaAudioLinkDmic1" = "1" + register "PchHdaAudioLinkSsp0" = "0" + register "PchHdaAudioLinkSsp1" = "0" + register "PchHdaAudioLinkSsp2" = "0" + register "PchHdaAudioLinkSndw1" = "0" + register "PchHdaAudioLinkSndw2" = "0" + register "PchHdaAudioLinkSndw3" = "0" + register "PchHdaAudioLinkSndw4" = "0" + + # USB + register "SsicPortEnable" = "0" + + # USB2 + register "usb2_ports[0]" = "USB2_PORT_MID(OC_SKIP)" # Type-A port 1 + register "usb2_ports[1]" = "USB2_PORT_TYPE_C(OC_SKIP)" # Type-C port 2 + register "usb2_ports[2]" = "USB2_PORT_MID(OC_SKIP)" # Type-A port 3 + register "usb2_ports[3]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[4]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[5]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[6]" = "USB2_PORT_MAX(OC_SKIP)" # Camera + register "usb2_ports[7]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[8]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[9]" = "USB2_PORT_MID(OC_SKIP)" # Bluetooth + register "usb2_ports[10]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[11]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[12]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[13]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[14]" = "USB2_PORT_EMPTY" # NC + register "usb2_ports[15]" = "USB2_PORT_EMPTY" # NC + + # USB3 + register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A port 1 + register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-C port 2 + register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC_SKIP)" # Type-A port 3 + register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC_SKIP)" # NC + register "usb3_ports[4]" = "USB3_PORT_EMPTY" # NC + register "usb3_ports[5]" = "USB3_PORT_EMPTY" # HSIO used by PCIe root port #6 + register "usb3_ports[6]" = "USB3_PORT_EMPTY" # NC + register "usb3_ports[7]" = "USB3_PORT_EMPTY" # NC + register "usb3_ports[8]" = "USB3_PORT_EMPTY" # NC + register "usb3_ports[9]" = "USB3_PORT_EMPTY" # NC + + + # PCI Express root port #6 x1, Clock 3 (card reader) + register "PcieRpEnable[5]" = "1" + register "PcieRpLtrEnable[5]" = "1" + register "PcieClkSrcUsage[3]" = "5" + register "PcieClkSrcClkReq[3]" = "3" + + # PCI Express root port #8 x1, Clock 2 (WLAN) + register "PcieRpEnable[7]" = "1" + register "PcieRpLtrEnable[7]" = "1" + register "PcieClkSrcUsage[2]" = "7" + register "PcieClkSrcClkReq[2]" = "2" + + # PCI Express root port #9 x4, Clock 4 (SSD2) + register "PcieRpEnable[8]" = "1" + register "PcieRpLtrEnable[8]" = "1" + register "PcieClkSrcUsage[4]" = "8" + register "PcieClkSrcClkReq[4]" = "4" + + # PCI Express root port #13 x4, Clock 5 (SSD1) + register "PcieRpEnable[12]" = "1" + register "PcieRpLtrEnable[12]" = "1" + register "PcieClkSrcUsage[5]" = "12" + register "PcieClkSrcClkReq[5]" = "5" + + # Misc + register "Device4Enable" = "0" + register "HeciEnabled" = "0" + register "Heci3Enabled" = "0" + register "AcousticNoiseMitigation" = "1" + #register "dmipwroptimize" = "1" + #register "satapwroptimize" = "1" + + # Power + register "PchPmSlpS3MinAssert" = "3" # 50ms + register "PchPmSlpS4MinAssert" = "1" # 1s + register "PchPmSlpSusMinAssert" = "2" # 500ms + register "PchPmSlpAMinAssert" = "4" # 2s + + # Thermal + register "tcc_offset" = "12" + +# LPC (soc/intel/cannonlake/lpc.c) + # LPC configuration from lspci -s 1f.0 -xxx + # Address 0x84: Decode 0x80 - 0x8F + register "gen1_dec" = "0x000c0081" + # Address 0x88: Decode 0x68 - 0x6F + register "gen2_dec" = "0x00040069" + # Address 0x8C: Decode 0x3320 - 0x332F + register "gen3_dec" = "0x000c3321" + # Address 0x90: Disabled + register "gen4_dec" = "0x00000000" + +# PMC (soc/intel/cannonlake/pmc.c) + # Enable deep Sx states + register "deep_s3_enable_ac" = "0" + register "deep_s3_enable_dc" = "0" + register "deep_s5_enable_ac" = "1" + register "deep_s5_enable_dc" = "1" + register "deep_sx_config" = "DSX_EN_WAKE_PIN" + +# PM Util (soc/intel/cannonlake/pmutil.c) + # GPE configuration + # Note that GPE events called out in ASL code rely on this + # route. i.e. If this route changes then the affected GPE + # offset bits also need to be changed. + # sudo devmem2 0xfe001920 (pmc_bar + GPIO_GPE_CFG) + register "gpe0_dw0" = "PMC_GPP_C" + register "gpe0_dw1" = "PMC_GPP_D" + register "gpe0_dw2" = "PMC_GPP_E" + +# Actual device tree + 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 02.0 on end # Integrated Graphics Device + device pci 04.0 off end # SA Thermal device + device pci 12.0 on end # Thermal Subsystem + device pci 12.5 off end # UFS SCS + device pci 12.6 off end # GSPI #2 + device pci 13.0 off end # Integrated Sensor Hub + device pci 14.0 on end # USB xHCI + device pci 14.1 off end # USB xDCI (OTG) + #chip drivers/intel/wifi + # register "wake" = "PME_B0_EN_BIT" + device pci 14.3 on end # CNVi wifi + #end + device pci 14.5 off end # SDCard + 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 off end # Management Engine Interface 1 + device pci 16.1 off end # Management Engine Interface 2 + device pci 16.2 off end # Management Engine IDE-R + device pci 16.3 off end # Management Engine KT Redirection + device pci 16.4 off end # Management Engine Interface 3 + device pci 16.5 off end # Management Engine Interface 4 + device pci 17.0 on end # SATA + device pci 19.0 off end # I2C #4 + device pci 19.1 off end # I2C #5 + device pci 19.2 on end # UART #2 + device pci 1a.0 off end # eMMC + device pci 1c.0 on end # PCI Express Port 1 + device pci 1c.1 off end # PCI Express Port 2 + device pci 1c.2 off end # PCI Express Port 3 + device pci 1c.3 off end # PCI Express Port 4 + device pci 1c.4 off end # PCI Express Port 5 + device pci 1c.5 on end # PCI Express Port 6 + device pci 1c.6 off end # PCI Express Port 7 + device pci 1c.7 on end # PCI Express Port 8 + device pci 1d.0 on end # PCI Express Port 9 + device pci 1d.1 off end # PCI Express Port 10 + device pci 1d.2 off end # PCI Express Port 11 + device pci 1d.3 off end # PCI Express Port 12 + device pci 1d.4 on end # PCI Express Port 13 + device pci 1d.5 off end # PCI Express Port 14 + device pci 1d.6 off end # PCI Express Port 15 + device pci 1d.7 off end # PCI Express Port 16 + 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 end # LPC Interface + device pci 1f.1 off end # P2SB + device pci 1f.2 off end # Power Management Controller + device pci 1f.3 on end # Intel HDA + device pci 1f.4 on end # SMBus + device pci 1f.5 on end # PCH SPI + device pci 1f.6 off end # GbE + end +end diff --git a/src/mainboard/system76/lemp9/dsdt.asl b/src/mainboard/system76/lemp9/dsdt.asl new file mode 100644 index 0000000000..75a98885ed --- /dev/null +++ b/src/mainboard/system76/lemp9/dsdt.asl @@ -0,0 +1,47 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2007-2009 coresystems GmbH + * Copyright (C) 2015 Google Inc. + * Copyright (C) 2015 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +DefinitionBlock( + "dsdt.aml", + "DSDT", + 0x02, // DSDT revision: ACPI v2.0 and up + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20110725 // OEM revision +) +{ + #include + #include + #include + + Device (\_SB.PCI0) + { + #include + #include + } + + #include + + Scope (\_SB.PCI0.LPCB) + { + #include + #include "acpi/ec.asl" + } + + #include "acpi/mainboard.asl" +} diff --git a/src/mainboard/system76/lemp9/gpio.h b/src/mainboard/system76/lemp9/gpio.h new file mode 100644 index 0000000000..0d8737ad20 --- /dev/null +++ b/src/mainboard/system76/lemp9/gpio.h @@ -0,0 +1,547 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the + * GNU General Public License for more details. + */ + +#ifndef MAINBOARD_GPIO_H +#define MAINBOARD_GPIO_H + +#include +#include + +#ifndef __ACPI__ + +#define PAD_CFG_NC(pad) PAD_NC(pad, NONE) + +/* Early pad configuration in romstage. */ +static const struct pad_config early_gpio_table[] = { + // UART2 + // UART2_RXD + PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), + // UART2_TXD + PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), + // NC + PAD_CFG_NC(GPP_C22), + // NC + PAD_CFG_NC(GPP_C23), +}; + +/* Pad configuration in ramstage. */ +static const struct pad_config gpio_table[] = { +// GPD + // Power Management + // PM_BATLOW# + PAD_CFG_NC(GPD0), + // AC_PRESENT + PAD_CFG_NF(GPD1, NATIVE, DEEP, NF1), + // NC + PAD_CFG_NC(GPD2), + // PWR_BTN# + PAD_CFG_NF(GPD3, UP_20K, DEEP, NF1), + // SUSB#_PCH + PAD_CFG_NF(GPD4, NONE, DEEP, NF1), + // SUSC#_PCH + PAD_CFG_NF(GPD5, NONE, DEEP, NF1), + // SLP_A# + PAD_CFG_NF(GPD6, NONE, DEEP, NF1), + + // GPIO + // NC + PAD_CFG_NC(GPD7), + + // Clock Signals + // SUS_CLK + PAD_CFG_NF(GPD8, NONE, DEEP, NF1), + + // Power Management + // GPD9_RTD3 + PAD_CFG_NC(GPD9), + // NC + PAD_CFG_NF(GPD10, NONE, DEEP, NF1), + // NC + PAD_CFG_NC(GPD11), + +// GPP_A + // LPC + // SB_KBCRST# + PAD_CFG_NF(GPP_A0, NONE, DEEP, NF1), + // LPC_AD0 + PAD_CFG_NF(GPP_A1, NATIVE, DEEP, NF1), + // LPC_AD1 + PAD_CFG_NF(GPP_A2, NATIVE, DEEP, NF1), + // LPC_AD2 + PAD_CFG_NF(GPP_A3, NATIVE, DEEP, NF1), + // LPC_AD3 + PAD_CFG_NF(GPP_A4, NATIVE, DEEP, NF1), + // LPC_FRAME# + PAD_CFG_NF(GPP_A5, NONE, DEEP, NF1), + // SERIRQ with pull up + PAD_CFG_NF(GPP_A6, NONE, DEEP, NF1), + + // GSPI0 + // TODO - TPM_PIRQ# + PAD_CFG_NC(GPP_A7), + + // LPC + // PM_CLKRUN# with pull-up + PAD_CFG_NF(GPP_A8, NONE, DEEP, NF1), + // PCLK_KBC + PAD_CFG_NF(GPP_A9, DN_20K, DEEP, NF1), + // NC + PAD_CFG_NF(GPP_A10, DN_20K, DEEP, NF1), + + // GSPI1 + // INTP_OUT + _PAD_CFG_STRUCT(GPP_A11, 0x80100100, 0x0000), + + // ISH_GP + // PCH_GPP_A12 + PAD_CFG_NC(GPP_A12), + + // Power Management + // SUSWARN# + PAD_CFG_NF(GPP_A13, NONE, DEEP, NF1), + + // LPC + // NC + PAD_CFG_NF(GPP_A14, NONE, DEEP, NF1), + + // Power Management + // SUS_PWR_ACK + PAD_CFG_NF(GPP_A15, UP_20K, DEEP, NF1), + + // SD + // NC + PAD_CFG_NC(GPP_A16), + // LIGHT_KB_DET# + PAD_CFG_NC(GPP_A17), + + // ISH_GP + // NC + PAD_CFG_NC(GPP_A18), + // SATA_PWR_EN + PAD_CFG_GPO(GPP_A19, 1, DEEP), + // TEST_R + PAD_CFG_TERM_GPO(GPP_A20, 0, NONE, DEEP), + // NC + PAD_CFG_NC(GPP_A21), + // NC + PAD_CFG_NC(GPP_A22), + // NC + PAD_CFG_NC(GPP_A23), + +// GPP_B + // Power + // CORE_VID0 + PAD_CFG_NC(GPP_B0), + // CORE_VID1 + PAD_CFG_NC(GPP_B1), + + // Power Management + // CNVI_WAKE# + PAD_CFG_NC(GPP_B2), + + // CPU Misc + // GPP_B3 + _PAD_CFG_STRUCT(GPP_B3, 0x80100100, 0x0000), + // NC + PAD_CFG_NC(GPP_B4), + + // Clock Signals + // NC + PAD_CFG_NC(GPP_B5), + // NC + PAD_CFG_NC(GPP_B6), + // WLAN_CLKREQ# + PAD_CFG_NF(GPP_B7, NONE, DEEP, NF1), + // LAN_CLKREQ# + PAD_CFG_NF(GPP_B8, NONE, DEEP, NF1), + // TBT_CLKREQ# + PAD_CFG_NF(GPP_B9, NONE, DEEP, NF1), + // SSD_CLKREQ# + PAD_CFG_NF(GPP_B10, NONE, DEEP, NF1), + + // Power Management + // EXT_PWR_GATE# + PAD_CFG_NC(GPP_B11), + // SLP_S0# + PAD_CFG_NF(GPP_B12, NONE, DEEP, NF1), + // PLT_RST# + PAD_CFG_NF(GPP_B13, NONE, DEEP, NF1), + + // SPKR + // PCH_SPKR + PAD_CFG_NF(GPP_B14, NONE, DEEP, NF1), + + // GSPI0 + // NC + PAD_CFG_NC(GPP_B15), + // PCH_GPP_B16 + PAD_CFG_NC(GPP_B16), + // PCH_GPP_B17 + PAD_CFG_NC(GPP_B17), + // PCH_GPP_B18 - strap for disabling no reboot mode + PAD_CFG_NC(GPP_B18), + + // GSPI1 + // NC + PAD_CFG_NC(GPP_B19), + // NC + PAD_CFG_NC(GPP_B20), + // NC + PAD_CFG_NC(GPP_B21), + // PCH_GPP_B22 + PAD_CFG_NC(GPP_B22), + + // SMBUS + // NC + PAD_CFG_NC(GPP_B23), + +// GPP_C + // SMBUS + // SMB_CLK_DDR + PAD_CFG_NF(GPP_C0, NONE, DEEP, NF1), + // SMB_DAT_DDR + PAD_CFG_NF(GPP_C1, NONE, DEEP, NF1), + // PCH_GPP_C2 with pull-up + PAD_CFG_NC(GPP_C2), + // NC + PAD_CFG_NC(GPP_C3), + // NC + PAD_CFG_NC(GPP_C4), + // NC + PAD_CFG_NC(GPP_C5), + // LAN_WAKEUP# + PAD_CFG_NC(GPP_C6), + // NC + PAD_CFG_NC(GPP_C7), + + // UART0 + // NC + PAD_CFG_NC(GPP_C8), + // NC + PAD_CFG_NC(GPP_C9), + // TBT_FRC_PWR + PAD_CFG_TERM_GPO(GPP_C10, 0, NONE, PLTRST), + // NC + PAD_CFG_NC(GPP_C11), + + // UART1 + // GPP_C12_RTD3 + PAD_CFG_TERM_GPO(GPP_C12, 1, NONE, PLTRST), + // SSD_PWR_DN# + PAD_CFG_TERM_GPO(GPP_C13, 1, NONE, PLTRST), + // TBTA_HRESET + PAD_CFG_TERM_GPO(GPP_C14, 0, NONE, PLTRST), + // NC + PAD_CFG_NC(GPP_C15), + + // I2C + // T_SDA + PAD_CFG_NF(GPP_C16, NONE, DEEP, NF1), + // T_SCL + PAD_CFG_NF(GPP_C17, NONE, DEEP, NF1), + // NC + PAD_CFG_NC(GPP_C18), + // SWI + PAD_CFG_NC(GPP_C19), + + // UART2 + // UART2_RXD + PAD_CFG_NF(GPP_C20, NONE, DEEP, NF1), + // UART2_TXD + PAD_CFG_NF(GPP_C21, NONE, DEEP, NF1), + // NC + PAD_CFG_NC(GPP_C22), + // NC + PAD_CFG_NC(GPP_C23), + +// GPP_D + // SPI1 + // NC + PAD_CFG_NC(GPP_D0), + // NC + PAD_CFG_NC(GPP_D1), + // NC + PAD_CFG_NC(GPP_D2), + // NC + PAD_CFG_NC(GPP_D3), + + // IMGCLKOUT + // NC + PAD_CFG_NC(GPP_D4), + + // I2C + // NC + PAD_CFG_NC(GPP_D5), + // NC + PAD_CFG_NC(GPP_D6), + // NC + PAD_CFG_NC(GPP_D7), + // SB_BLON + PAD_CFG_TERM_GPO(GPP_D8, 1, NONE, DEEP), + + // GSPI2 + // SWI# + _PAD_CFG_STRUCT(GPP_D9, 0x40880100, 0x0000), + // NC + PAD_CFG_NC(GPP_D10), + // BOARD_ID + PAD_CFG_NC(GPP_D11), + // PCH_GPP_D12 + PAD_CFG_NC(GPP_D12), + + // UART0 + // GPP_D13_RTD3 + PAD_CFG_TERM_GPO(GPP_D13, 1, NONE, PLTRST), + // SSD2_PWR_DN# + PAD_CFG_TERM_GPO(GPP_D14, 1, NONE, PLTRST), + // NC + PAD_CFG_NC(GPP_D15), + // RTD3_3G_PW R_EN + PAD_CFG_TERM_GPO(GPP_D16, 1, NONE, PWROK), + + // DMIC + // NC + PAD_CFG_NC(GPP_D17), + // NC + PAD_CFG_NC(GPP_D18), + // GPPC_DMIC_CLK + PAD_CFG_NF(GPP_D19, NONE, DEEP, NF1), + // GPPC_DMIC_DATA + PAD_CFG_NF(GPP_D20, NONE, DEEP, NF1), + + // SPI1 + // TPM_DET# + PAD_CFG_NC(GPP_D21), + // TPM_TCM_Detect + PAD_CFG_NC(GPP_D22), + + // I2S + // NC + PAD_CFG_NC(GPP_D23), + +// GPP_E + // SATA + // PCH_GPP_E0 with pull-up + PAD_CFG_NC(GPP_E0), + // SATAGP1 + PAD_CFG_NF(GPP_E1, UP_20K, DEEP, NF1), + // SATAGP2 + PAD_CFG_NF(GPP_E2, UP_20K, DEEP, NF1), + + // CPU Misc + // NC + PAD_CFG_NC(GPP_E3), + + // DEVSLP + // NC + PAD_CFG_NC(GPP_E4), + // DEVSLP1 + PAD_CFG_NF(GPP_E5, NONE, DEEP, NF1), + // DEVSLP2 + PAD_CFG_NF(GPP_E6, NONE, DEEP, NF1), + + // CPU Misc + // NC + PAD_CFG_NC(GPP_E7), + + // SATA + // PCH_SATAHDD_LED# + PAD_CFG_NF(GPP_E8, NONE, DEEP, NF1), + + // USB2 + // GP_BSSB_CLK + PAD_CFG_NC(GPP_E9), + // GPP_E10 + PAD_CFG_NC(GPP_E10), + // GPP_E11 + PAD_CFG_NC(GPP_E11), + // USB_OC#78 + PAD_CFG_NC(GPP_E12), + + // Display Signals + // MUX_HPD + PAD_CFG_NF(GPP_E13, NONE, DEEP, NF1), + // HDMI_HPD + PAD_CFG_NF(GPP_E14, NONE, DEEP, NF1), + // SMI# + _PAD_CFG_STRUCT(GPP_E15, 0x42840100, 0x0), + // SCI# + _PAD_CFG_STRUCT(GPP_E16, 0x80880100, 0x0000), + // EDP_HPD + PAD_CFG_NF(GPP_E17, NONE, DEEP, NF1), + // MDP_CTRLCLK + PAD_CFG_NF(GPP_E18, NONE, DEEP, NF1), + // MDP_CTRLDATA + PAD_CFG_NF(GPP_E19, NONE, DEEP, NF1), + // HDMI_CTRLCLK + PAD_CFG_NF(GPP_E20, NONE, DEEP, NF1), + // HDMI_CTRLDATA + PAD_CFG_NF(GPP_E21, NONE, DEEP, NF1), + // NC + PAD_CFG_NC(GPP_E22), + // NC + PAD_CFG_NC(GPP_E23), + +// GPP_F + // CNVI + // CNVI_GNSS_PA_BLANKING + PAD_CFG_NF(GPP_F0, NONE, DEEP, NF1), + + // GPIO + // NC + PAD_CFG_NC(GPP_F1), + // NC + PAD_CFG_NC(GPP_F2), + // NC + PAD_CFG_NC(GPP_F3), + + // CNVI + // CNVI_BRI_DT + PAD_CFG_NF(GPP_F4, NONE, DEEP, NF1), + // CNVI_BRI_RSP + PAD_CFG_NF(GPP_F5, UP_20K, DEEP, NF1), + // CNVI_RGI_DT + PAD_CFG_NF(GPP_F6, NONE, DEEP, NF1), + // CNVI_RGI_RSP + PAD_CFG_NF(GPP_F7, UP_20K, DEEP, NF1), + // CNVI_MFUART2_RXD + PAD_CFG_NF(GPP_F8, NONE, DEEP, NF1), + // CNVI_MFUART2_TXD + PAD_CFG_NF(GPP_F9, NONE, DEEP, NF1), + + // GPIO + // NC + PAD_CFG_NC(GPP_F10), + + // EMMC + // NC + PAD_CFG_NC(GPP_F11), + // NC + PAD_CFG_NC(GPP_F12), + // NC + PAD_CFG_NC(GPP_F13), + // NC + PAD_CFG_NC(GPP_F14), + // NC + PAD_CFG_NC(GPP_F15), + // NC + PAD_CFG_NC(GPP_F16), + // NC + PAD_CFG_NC(GPP_F17), + // NC + PAD_CFG_NC(GPP_F18), + // NC + PAD_CFG_NC(GPP_F19), + // NC + PAD_CFG_NC(GPP_F20), + // NC + PAD_CFG_NC(GPP_F21), + // NC + PAD_CFG_NC(GPP_F22), + + // A4WP + // A4WP_PRESENT + PAD_CFG_GPI(GPP_F23, DN_20K, DEEP), + +// GPP_G + // SD + // EDP_DET + PAD_CFG_NC(GPP_G0), + // NC + PAD_CFG_NC(GPP_G1), + // NC + PAD_CFG_NC(GPP_G2), + // ASM1543_I_SEL0 + PAD_CFG_NC(GPP_G3), + // ASM1543_I_SEL1 + PAD_CFG_NC(GPP_G4), + // BOARD_ID + PAD_CFG_NC(GPP_G5), + // NC + PAD_CFG_NC(GPP_G6), + // TBT_Detect + PAD_CFG_NC(GPP_G7), + +// GPP_H + // CNVI + // NC + PAD_CFG_NC(GPP_H0), + // CNVI_RST# + PAD_CFG_NF(GPP_H1, NONE, DEEP, NF3), + // CNVI_CLKREQ + PAD_CFG_NF(GPP_H2, NONE, DEEP, NF3), + // NC + PAD_CFG_NC(GPP_H3), + + // I2C + // SMD_7411 + PAD_CFG_NF(GPP_H4, NONE, DEEP, NF1), + // SMC_7411 + PAD_CFG_NF(GPP_H5, NONE, DEEP, NF1), + // NC + PAD_CFG_NC(GPP_H6), + // NC + PAD_CFG_NC(GPP_H7), + // NC + PAD_CFG_NC(GPP_H8), + // NC + PAD_CFG_NC(GPP_H9), + + // I2C + // NC + PAD_CFG_NC(GPP_H10), + // NC + PAD_CFG_NC(GPP_H11), + + // PCIE + // NC + PAD_CFG_NC(GPP_H12), + // NC + PAD_CFG_NC(GPP_H13), + // G_INT1 + PAD_CFG_NC(GPP_H14), + // NC + PAD_CFG_NC(GPP_H15), + + // Display Signals + // NC + PAD_CFG_NC(GPP_H16), + // NC + PAD_CFG_NC(GPP_H17), + + // CPU Power + // CPU_C10_GATE# + PAD_CFG_NF(GPP_H18, NONE, DEEP, NF1), + + // TIMESYNC + // NC + PAD_CFG_NC(GPP_H19), + + // IMGCLKOUT + // NC + PAD_CFG_NC(GPP_H20), + + // GPIO + // GPPC_H21 + PAD_CFG_NC(GPP_H21), + // TBT_RTD3_PWR_EN_R + PAD_NC(GPP_H22, NONE), + // NC, WIGIG_PEWAKE + PAD_CFG_NC(GPP_H23), +}; + +#endif + +#endif diff --git a/src/mainboard/system76/lemp9/hda_verb.c b/src/mainboard/system76/lemp9/hda_verb.c new file mode 100644 index 0000000000..0539e89831 --- /dev/null +++ b/src/mainboard/system76/lemp9/hda_verb.c @@ -0,0 +1,48 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the + * GNU General Public License for more details. + */ + +#include + +const u32 cim_verb_data[] = { + /* Realtek ALC293 */ + 0x10ec0293, /* Vendor ID */ + 0x15581401, /* Subsystem ID */ + 12, /* Number of entries */ + AZALIA_SUBVENDOR(0, 0x15581401), + AZALIA_PIN_CFG(0, 0x12, 0x90a60130), + AZALIA_PIN_CFG(0, 0x13, 0x40000000), + AZALIA_PIN_CFG(0, 0x14, 0x90170110), + AZALIA_PIN_CFG(0, 0x15, 0x02211020), + AZALIA_PIN_CFG(0, 0x16, 0x411111f0), + AZALIA_PIN_CFG(0, 0x18, 0x411111f0), + AZALIA_PIN_CFG(0, 0x19, 0x411111f0), + AZALIA_PIN_CFG(0, 0x1a, 0x411111f0), + AZALIA_PIN_CFG(0, 0x1b, 0x411111f0), + AZALIA_PIN_CFG(0, 0x1d, 0x41748245), + AZALIA_PIN_CFG(0, 0x1e, 0x411111f0), + + /* Intel GPU HDMI */ + 0x8086280b, /* Vendor ID */ + 0x80860101, /* Subsystem ID */ + 4, /* Number of entries */ + AZALIA_SUBVENDOR(2, 0x80860101), + AZALIA_PIN_CFG(2, 0x05, 0x18560010), + AZALIA_PIN_CFG(2, 0x06, 0x18560010), + AZALIA_PIN_CFG(2, 0x07, 0x18560010), +}; + +const u32 pc_beep_verbs[] = {}; + +AZALIA_ARRAY_SIZES; diff --git a/src/mainboard/system76/lemp9/ramstage.c b/src/mainboard/system76/lemp9/ramstage.c new file mode 100644 index 0000000000..97d3dff10f --- /dev/null +++ b/src/mainboard/system76/lemp9/ramstage.c @@ -0,0 +1,24 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include "gpio.h" + +void mainboard_silicon_init_params(FSP_S_CONFIG *params) +{ + /* Configure pads prior to SiliconInit() in case there's any + * dependencies during hardware initialization. */ + cnl_configure_pads(gpio_table, ARRAY_SIZE(gpio_table)); +} diff --git a/src/mainboard/system76/lemp9/romstage.c b/src/mainboard/system76/lemp9/romstage.c new file mode 100644 index 0000000000..6b9b02eb92 --- /dev/null +++ b/src/mainboard/system76/lemp9/romstage.c @@ -0,0 +1,97 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2019 System76 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include +#include + +static const struct cnl_mb_cfg memcfg = { + /* Parameters required to access SPD for CH0D0/CH0D1/CH1D0/CH1D1. */ + .spd[0] = { + .read_type = READ_SPD_CBFS, + .spd_spec = {.spd_index = 0}, + }, + .spd[1] = {.read_type = NOT_EXISTING}, + .spd[2] = { + .read_type = READ_SMBUS, + .spd_spec = {.spd_smbus_address = 0xa4}, + }, + .spd[3] = {.read_type = NOT_EXISTING}, + + /* + * For each channel, there are 3 sets of DQ byte mappings, + * where each set has a package 0 and a package 1 value (package 0 + * represents the first 64-bit lpddr4 chip combination, and package 1 + * represents the second 64-bit lpddr4 chip combination). + * The first three sets are for CLK, CMD, and CTL. + * The fsp package actually expects 6 sets, but the last 3 sets are + * not used in CNL, so we only define the three sets that are used + * and let the meminit_lpddr4() routine take care of clearing the + * unused fields for the caller. + */ + .dq_map[DDR_CH0] = { + {0x0F, 0xF0}, {0x00, 0xF0}, {0x0F, 0xF0}, + //{0x0F, 0x00}, {0xFF, 0x00}, {0xFF, 0x00} + }, + .dq_map[DDR_CH1] = { + {0x33, 0xCC}, {0x00, 0xCC}, {0x33, 0xCC}, + //{0x33, 0x00}, {0xFF, 0x00}, {0xFF, 0x00} + }, + + /* + * DQS CPU<>DRAM map Ch0 and Ch1. Each array entry represents a + * mapping of a dq bit on the CPU to the bit it's connected to on + * the memory part. The array index represents the dqs bit number + * on the memory part, and the values in the array represent which + * pin on the CPU that DRAM pin connects to. + */ + .dqs_map[DDR_CH0] = {0, 1, 2, 3, 4, 5, 6, 7}, + .dqs_map[DDR_CH1] = {1, 0, 2, 3, 4, 5, 6, 7}, + + /* + * Rcomp resistor values. These values represent the resistance in + * ohms of the three rcomp resistors attached to the DDR_COMP_0, + * DDR_COMP_1, and DDR_COMP_2 pins on the DRAM. + */ + .rcomp_resistor = { 121, 81, 100 }, + + /* + * Rcomp target values. These will typically be the following + * values for Cannon Lake : { 80, 40, 40, 40, 30 } + */ + .rcomp_targets = { 100, 40, 20, 20, 26 }, + + /* + * Indicates whether memory is interleaved. + * Set to 1 for an interleaved design, + * set to 0 for non-interleaved design. + */ + .dq_pins_interleaved = 1, + + /* + * VREF_CA configuration. + * Set to 0 VREF_CA goes to both CH_A and CH_B, + * set to 1 VREF_CA goes to CH_A and VREF_DQ_A goes to CH_B, + * set to 2 VREF_CA goes to CH_A and VREF_DQ_B goes to CH_B. + */ + .vref_ca_config = 2, + + /* Early Command Training */ + .ect = 0, +}; + +void mainboard_memory_init_params(FSPM_UPD *memupd) +{ + cannonlake_memcfg_init(&memupd->FspmConfig, &memcfg); +} diff --git a/src/mainboard/system76/lemp9/spd/samsung-K4AAG165WA-BCTD.spd.hex b/src/mainboard/system76/lemp9/spd/samsung-K4AAG165WA-BCTD.spd.hex new file mode 100644 index 0000000000..f747f7c34e --- /dev/null +++ b/src/mainboard/system76/lemp9/spd/samsung-K4AAG165WA-BCTD.spd.hex @@ -0,0 +1,33 @@ +# Samsung K4AAG165WA-BCTD +23 11 0C 03 46 29 00 08 00 60 00 03 02 03 00 00 +00 00 06 0D F8 3F 00 00 6E 6E 6E 11 00 6E F0 0A +20 08 00 05 00 F0 2B 34 28 00 78 00 14 3C 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 16 36 0B 35 +16 36 0B 35 00 00 16 36 0B 35 16 36 0B 35 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 9C B5 00 00 00 00 E7 00 F7 4B +0F 11 02 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 DB 08 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +80 CE 00 00 00 00 00 00 00 4B 34 41 41 47 31 36 +35 57 41 2D 42 43 54 44 20 20 20 20 20 00 80 CE +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 From f74b6e351c921f2505691f5ece834b280e500395 Mon Sep 17 00:00:00 2001 From: Eric Lai Date: Thu, 23 Jan 2020 14:43:08 +0800 Subject: [PATCH 39/46] ec/google/wilco: add ec command set cpu id Add new mailbox command support. Set CPU ID and cores to EC. EC will according to different CPU to set different power table. BUG=b:148126144 Signed-off-by: Eric Lai Change-Id: I135d2421d2106934be996a1780786f6bb0bf6b34 Reviewed-on: https://review.coreboot.org/c/coreboot/+/38526 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie Reviewed-by: Mathew King --- src/ec/google/wilco/commands.c | 26 ++++++++++++++++++++++++++ src/ec/google/wilco/commands.h | 16 ++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/ec/google/wilco/commands.c b/src/ec/google/wilco/commands.c index 626f9ddc2c..791141e814 100644 --- a/src/ec/google/wilco/commands.c +++ b/src/ec/google/wilco/commands.c @@ -224,3 +224,29 @@ void die_notify(void) wilco_ec_mailbox(WILCO_EC_MSG_DEFAULT, KB_ERR_CODE, &err_code, 1, NULL, 0); } + +/* + * EC CPU ID data struct + * MBOX[2] = 0xFF + * MBOX[3] = CPUID_Low + * MBOX[4] = CPUID_Mid + * MBOX[5] = CPUID_High + * MBOX[6] = CPU_Core + * MBOX[7] = GPU_Core + * MBOX[8] = Reserved + */ +int wilco_ec_set_cpuid(uint32_t cpuid, uint8_t cpu_cores, uint8_t gpu_cores) +{ + uint8_t cpu_id[7] = {0}, i; + + cpu_id[0] = 0xff; + for (i = 1; i < 4; i++) { + cpu_id[i] = cpuid & 0xff; + cpuid = cpuid >> 8; + } + cpu_id[4] = cpu_cores; + cpu_id[5] = gpu_cores; + + return wilco_ec_mailbox(WILCO_EC_MSG_DEFAULT, KB_CPU_ID, cpu_id, + ARRAY_SIZE(cpu_id), NULL, 0); +} diff --git a/src/ec/google/wilco/commands.h b/src/ec/google/wilco/commands.h index 9a185805af..3d2ae46fae 100644 --- a/src/ec/google/wilco/commands.h +++ b/src/ec/google/wilco/commands.h @@ -52,6 +52,8 @@ enum { KB_BIOS_PROGRESS = 0xc2, /* Inform the EC that a fatal error occurred */ KB_ERR_CODE = 0x7b, + /* Set CPU ID */ + KB_CPU_ID = 0xbf, }; enum ec_ram_addr { @@ -337,4 +339,18 @@ int wilco_ec_signed_fw(void); */ void wilco_ec_save_post_code(uint8_t post_code); +/** + * wilco_ec_set_cpuid + * + * Set CPU ID to EC. + * + * @cpuid: read CPU ID from cpu_eax(1) + * @cpu_cores: cores of CPU + * @gpu_cores: cores of GPU + * + * Returns 0 if EC command was successful + * Returns -1 if EC command failed + */ +int wilco_ec_set_cpuid(uint32_t cpuid, uint8_t cpu_cores, uint8_t gpu_cores); + #endif /* EC_GOOGLE_WILCO_COMMANDS_H */ From dd80b5c7a15ed5d4dd3ca88d4e0a4dbe5221249c Mon Sep 17 00:00:00 2001 From: Sam McNally Date: Fri, 24 Jan 2020 13:53:17 +1100 Subject: [PATCH 40/46] mainboard/google/hatch: Set GPP_C7 as the wake pin for the NIC on Puff BUG=b:148252157 BRANCH=none TEST=Put a puff in s0ix, send a WoL magic packet. Change-Id: I4a08a2f5505d00909c9301315fcf72f687141f91 Signed-off-by: Sam McNally Reviewed-on: https://review.coreboot.org/c/coreboot/+/38553 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan --- src/mainboard/google/hatch/variants/puff/overridetree.cb | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mainboard/google/hatch/variants/puff/overridetree.cb b/src/mainboard/google/hatch/variants/puff/overridetree.cb index 456e6661a1..45d05d0928 100644 --- a/src/mainboard/google/hatch/variants/puff/overridetree.cb +++ b/src/mainboard/google/hatch/variants/puff/overridetree.cb @@ -270,6 +270,7 @@ chip soc/intel/cannonlake device pci 1c.0 on chip drivers/net register "customized_leds" = "0x05af" + register "wake" = "GPE0_DW1_07" # GPP_C7 device pci 00.0 on end end end # FSP requires func0 be enabled. From a3a1a1c39bd530fe8bf64ef77fc4b34bbfe8b253 Mon Sep 17 00:00:00 2001 From: Bill XIE Date: Fri, 24 Jan 2020 23:20:57 +0800 Subject: [PATCH 41/46] mb/gigabyte/ga-b75m-d3h: add ACPI definitions for legacy PCI slots All variants of ga-b75m-d3h lack ACPI definitions for legacy PCI slots, which causes IRQ issue if it gets legacy PCI card installed. The missing definitions (mainly Interrupt Routing Table) are added to fix that. NOTE: The added definitions are actually for ga-b75-d3v, but since they form superset of definitions needed by ga-b75m-d3{h,v}, they can be applied to all three existing variants with suitable preprocessor instructions. Change-Id: Id79c759a5fadb38c2873edc07293cbb14401ac9a Signed-off-by: Bill XIE Reviewed-on: https://review.coreboot.org/c/coreboot/+/38557 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- .../gigabyte/ga-b75m-d3h/acpi/pci.asl | 53 +++++++++++++++++++ src/mainboard/gigabyte/ga-b75m-d3h/dsdt.asl | 1 + 2 files changed, 54 insertions(+) create mode 100644 src/mainboard/gigabyte/ga-b75m-d3h/acpi/pci.asl diff --git a/src/mainboard/gigabyte/ga-b75m-d3h/acpi/pci.asl b/src/mainboard/gigabyte/ga-b75m-d3h/acpi/pci.asl new file mode 100644 index 0000000000..e98c0a2286 --- /dev/null +++ b/src/mainboard/gigabyte/ga-b75m-d3h/acpi/pci.asl @@ -0,0 +1,53 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2020 Bill Xie + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; version 2 of + * the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +// Intel PCI to PCI bridge 0:1e.0 + +Device (PCIB) +{ + Name (_ADR, 0x001E0000) // _ADR: Address + Name (_PRW, Package(){ 13, 4 }) // Power Resources for Wake + + Method (_PRT) // _PRT: PCI Interrupt Routing Table + { + If (PICM) { + Return (Package() { + Package() { 0x0001ffff, 0, 0, 0x13 }, + Package() { 0x0001ffff, 1, 0, 0x12 }, + Package() { 0x0001ffff, 2, 0, 0x10 }, + Package() { 0x0001ffff, 3, 0, 0x14 }, +#if CONFIG(BOARD_GIGABYTE_GA_B75_D3V) + Package() { 0x0002ffff, 0, 0, 0x12 }, + Package() { 0x0002ffff, 1, 0, 0x10 }, + Package() { 0x0002ffff, 2, 0, 0x14 }, + Package() { 0x0002ffff, 3, 0, 0x13 }, +#endif + }) + } + Return (Package() { + Package() { 0x0001ffff, 0, \_SB.PCI0.LPCB.LNKD, 0 }, + Package() { 0x0001ffff, 1, \_SB.PCI0.LPCB.LNKC, 0 }, + Package() { 0x0001ffff, 2, \_SB.PCI0.LPCB.LNKA, 0 }, + Package() { 0x0001ffff, 3, \_SB.PCI0.LPCB.LNKE, 0 }, +#if CONFIG(BOARD_GIGABYTE_GA_B75_D3V) + Package() { 0x0002ffff, 0, \_SB.PCI0.LPCB.LNKC, 0 }, + Package() { 0x0002ffff, 1, \_SB.PCI0.LPCB.LNKA, 0 }, + Package() { 0x0002ffff, 2, \_SB.PCI0.LPCB.LNKE, 0 }, + Package() { 0x0001ffff, 3, \_SB.PCI0.LPCB.LNKD, 0 }, +#endif + }) + } +} diff --git a/src/mainboard/gigabyte/ga-b75m-d3h/dsdt.asl b/src/mainboard/gigabyte/ga-b75m-d3h/dsdt.asl index 47b2725cd7..91ed5511d4 100644 --- a/src/mainboard/gigabyte/ga-b75m-d3h/dsdt.asl +++ b/src/mainboard/gigabyte/ga-b75m-d3h/dsdt.asl @@ -37,6 +37,7 @@ DefinitionBlock( #include #include #include + #include "acpi/pci.asl" } } } From 6f6afe514f508dd1062cc707d259b898eb7d37e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Sun, 26 Jan 2020 10:08:39 +0200 Subject: [PATCH 42/46] configs/asus/p2b: Add build-test for DEBUG_RAM_SETUP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie1d0a2ed9aa5c0645fa8400ec9af17be592d3dea Signed-off-by: Kyösti Mälkki Reviewed-on: https://review.coreboot.org/c/coreboot/+/38581 Tested-by: build bot (Jenkins) Reviewed-by: Keith Hui Reviewed-by: Angel Pons --- configs/config.asus_p2b_ramdebug | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 configs/config.asus_p2b_ramdebug diff --git a/configs/config.asus_p2b_ramdebug b/configs/config.asus_p2b_ramdebug new file mode 100644 index 0000000000..690000205f --- /dev/null +++ b/configs/config.asus_p2b_ramdebug @@ -0,0 +1,3 @@ +CONFIG_VENDOR_ASUS=y +CONFIG_BOARD_ASUS_P2B=y +CONFIG_DEBUG_RAM_SETUP=y From 3f3b4d5d74c4c9d4f01c7035c8626032cb9a6b56 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Wed, 22 Jan 2020 13:59:23 -0800 Subject: [PATCH 43/46] google/octopus: Disable bootblock console The GLK bootblock seems(?) to be hard limited to 32KB and some Octopus variants are so close to that that they only have 0.5KB left. This is blocking development of new core features, so let's disable the bootblock console to gain a couple of KB back (like we already did on RK3288). There are probably other opporunities for code size reduction here (e.g. it seems that almost half(!) of that whole bootblock size is taken up by devicetree.cb structures), but I'm not familiar enough with the platform to dig into them. Change-Id: I05b4ecf5abef7307e3d0a81db04a745ff3da0c42 Signed-off-by: Julius Werner Reviewed-on: https://review.coreboot.org/c/coreboot/+/38521 Reviewed-by: Furquan Shaikh Reviewed-by: Aaron Durbin Tested-by: build bot (Jenkins) --- src/mainboard/google/octopus/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mainboard/google/octopus/Kconfig b/src/mainboard/google/octopus/Kconfig index 3139716808..a4e49824fc 100644 --- a/src/mainboard/google/octopus/Kconfig +++ b/src/mainboard/google/octopus/Kconfig @@ -22,6 +22,7 @@ config BOARD_GOOGLE_BASEBOARD_OCTOPUS select MAINBOARD_HAS_SPI_TPM_CR50 select MAINBOARD_HAS_TPM2 select GOOGLE_SMBIOS_MAINBOARD_VERSION + select NO_BOOTBLOCK_CONSOLE select NO_FMAP_CACHE if BOARD_GOOGLE_BASEBOARD_OCTOPUS From 87ddea26cf1e8fce25e33c4f2db2533e0f612ac7 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Sun, 26 Jan 2020 04:55:27 +0100 Subject: [PATCH 44/46] nb/intel/sandybridge: replace NORTHBRIDGE with HOST_BRIDGE define The two defines are identical, so deduplicate this. Timeless build for lenovo/x230 results in identical binary. Change-Id: I32e0eee88d72eb6f8dc71b0324d62f46079120a9 Signed-off-by: Felix Held Reviewed-on: https://review.coreboot.org/c/coreboot/+/38579 Tested-by: build bot (Jenkins) Reviewed-by: HAOUAS Elyes Reviewed-by: Angel Pons Reviewed-by: Patrick Rudolph --- src/northbridge/intel/sandybridge/raminit_common.c | 3 +-- src/northbridge/intel/sandybridge/raminit_common.h | 5 +++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/northbridge/intel/sandybridge/raminit_common.c b/src/northbridge/intel/sandybridge/raminit_common.c index c69c827136..7136cd42d2 100644 --- a/src/northbridge/intel/sandybridge/raminit_common.c +++ b/src/northbridge/intel/sandybridge/raminit_common.c @@ -497,7 +497,6 @@ void dram_zones(ramctr_timing *ctrl, int training) } } -#define HOST_BRIDGE PCI_DEV(0, 0, 0) #define DEFAULT_TCK TCK_800MHZ unsigned int get_mem_min_tck(void) @@ -595,7 +594,7 @@ void dram_memorymap(ramctr_timing *ctrl, int me_uma_size) mmiosize = get_mmio_size(); - ggc = pci_read_config16(NORTHBRIDGE, GGC); + ggc = pci_read_config16(HOST_BRIDGE, GGC); if (!(ggc & 2)) { gfxstolen = ((ggc >> 3) & 0x1f) * 32; gttsize = ((ggc >> 8) & 0x3); diff --git a/src/northbridge/intel/sandybridge/raminit_common.h b/src/northbridge/intel/sandybridge/raminit_common.h index 194e6db673..6d3af877b5 100644 --- a/src/northbridge/intel/sandybridge/raminit_common.h +++ b/src/northbridge/intel/sandybridge/raminit_common.h @@ -136,8 +136,9 @@ typedef struct ramctr_timing_st { dimm_info info; } ramctr_timing; -#define SOUTHBRIDGE PCI_DEV(0, 0x1f, 0) -#define NORTHBRIDGE PCI_DEV(0, 0x0, 0) +#define HOST_BRIDGE PCI_DEV(0, 0, 0) +#define SOUTHBRIDGE PCI_DEV(0, 0x1f, 0) + #define FOR_ALL_LANES for (lane = 0; lane < NUM_LANES; lane++) #define FOR_ALL_CHANNELS for (channel = 0; channel < NUM_CHANNELS; channel++) #define FOR_ALL_POPULATED_RANKS for (slotrank = 0; slotrank < NUM_SLOTRANKS; slotrank++) if (ctrl->rankmap[channel] & (1 << slotrank)) From 380c6b2c62f2e0d1a2df2f27abe5d5a1cb8a27d5 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Sun, 26 Jan 2020 05:06:38 +0100 Subject: [PATCH 45/46] nb/intel/sandybridge/raminit_common.h: add missing stdint.h include Types from stdint.h are used in that header file without stdint.h being included. Change-Id: I71449dd26162dc8420c206285896ac9a8e4e04d4 Signed-off-by: Felix Held Reviewed-on: https://review.coreboot.org/c/coreboot/+/38580 Tested-by: build bot (Jenkins) Reviewed-by: HAOUAS Elyes Reviewed-by: Angel Pons --- src/northbridge/intel/sandybridge/raminit_common.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/northbridge/intel/sandybridge/raminit_common.h b/src/northbridge/intel/sandybridge/raminit_common.h index 6d3af877b5..8aa3068df2 100644 --- a/src/northbridge/intel/sandybridge/raminit_common.h +++ b/src/northbridge/intel/sandybridge/raminit_common.h @@ -18,6 +18,8 @@ #ifndef RAMINIT_COMMON_H #define RAMINIT_COMMON_H +#include + #define BASEFREQ 133 #define tDLLK 512 From e4d6c033fe91cf777a95531669622f7829e6b44d Mon Sep 17 00:00:00 2001 From: Bill XIE Date: Sun, 26 Jan 2020 23:02:03 +0800 Subject: [PATCH 46/46] Doc/mb/lenovo: Shrink picture for x301 Fix a non-standard larger picture not handled in time before merging. Change-Id: Ia494484cd0eff6b19408b065264911d0093ceeb0 Signed-off-by: Bill XIE Reviewed-on: https://review.coreboot.org/c/coreboot/+/38582 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons Reviewed-by: Idwer Vollering --- .../mainboard/lenovo/x301_kb_removed.jpg | Bin 320344 -> 178307 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Documentation/mainboard/lenovo/x301_kb_removed.jpg b/Documentation/mainboard/lenovo/x301_kb_removed.jpg index 1225dd73393aeb4d9c3fa6ddac3da1779609ff61..8319750390380a341c8d9114fc36b0d998b65dc9 100644 GIT binary patch literal 178307 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 JFU5Yz|Jg_*fW`m- literal 320344 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 O#Hy8?Y;Vf^lzOpoSx~wuHtNfs&{cZ8 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%0D;QIHIs2(*Af7EF<^*?=5n0D%Up32 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 c8iCD(H+2VSv4)`Y{{Z*@0PFt%