Ravi kumar has uploaded a new patch set (#21) to the change originally created by mturney mturney. ( https://review.coreboot.org/c/coreboot/+/35499 )
Change subject: sc7180: Add QUPv3 FW load & config
......................................................................
sc7180: Add QUPv3 FW load & config
UART driver requires firmware loading
Developer/Reviewer, be aware of this patch from Napali:
https://review.coreboot.org/c/coreboot/+/25372/78https://review.coreboot.org/c/coreboot/+/27483/58
Change-Id: I4d91dd10488931247f81a87b0bdcc598f4bceb31
Signed-off-by: Roja Rani Yarubandi <rojay(a)codeaurora.org>
---
M src/soc/qualcomm/sc7180/Makefile.inc
M src/soc/qualcomm/sc7180/bootblock.c
M src/soc/qualcomm/sc7180/include/soc/addressmap.h
A src/soc/qualcomm/sc7180/include/soc/qcom_qup_se.h
A src/soc/qualcomm/sc7180/include/soc/qupv3_config.h
A src/soc/qualcomm/sc7180/include/soc/qupv3_fw_config.h
A src/soc/qualcomm/sc7180/qcom_qup_se.c
A src/soc/qualcomm/sc7180/qupv3_config.c
A src/soc/qualcomm/sc7180/qupv3_fw_config.c
9 files changed, 1,064 insertions(+), 6 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/99/35499/21
--
To view, visit https://review.coreboot.org/c/coreboot/+/35499
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I4d91dd10488931247f81a87b0bdcc598f4bceb31
Gerrit-Change-Number: 35499
Gerrit-PatchSet: 21
Gerrit-Owner: mturney mturney <mturney(a)codeaurora.org>
Gerrit-Reviewer: Douglas Anderson <dianders(a)chromium.org>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-Reviewer: Ravi kumar <rbokka(a)codeaurora.org>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Reviewer: mturney mturney <mturney(a)codeaurora.org>
Gerrit-CC: Julius Werner <jwerner(a)chromium.org>
Gerrit-CC: Patrick Rudolph <siro(a)das-labor.org>
Gerrit-CC: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-CC: Roja Rani Yarubandi <c_rojay(a)qualcomm.corp-partner.google.com>
Gerrit-CC: Stephen Boyd <swboyd(a)chromium.org>
Gerrit-MessageType: newpatchset
Michał Żygowski has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/37331 )
Change subject: amd/agesa/family14: implement C bootblock
......................................................................
amd/agesa/family14: implement C bootblock
TEST=boot PC Engines apu1 with C bootblock patch and launch
Debian with Linux kernel 4.14.50
Signed-off-by: Michał Żygowski <michal.zygowski(a)3mdeb.com>
Change-Id: Ibcaedba030d80a230eecfda6244ca54f7635d0b4
---
M src/cpu/amd/agesa/Kconfig
M src/cpu/amd/agesa/family14/Kconfig
M src/northbridge/amd/agesa/Kconfig
M src/northbridge/amd/agesa/family14/Makefile.inc
A src/northbridge/amd/agesa/family14/bootblock.c
A src/northbridge/amd/agesa/family14/nb_util.c
M src/northbridge/amd/agesa/family15tn/Kconfig
M src/northbridge/amd/agesa/family16kb/Kconfig
8 files changed, 104 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/31/37331/1
diff --git a/src/cpu/amd/agesa/Kconfig b/src/cpu/amd/agesa/Kconfig
index 9956579..7e180df 100644
--- a/src/cpu/amd/agesa/Kconfig
+++ b/src/cpu/amd/agesa/Kconfig
@@ -59,7 +59,7 @@
config S3_DATA_POS
hex
- default 0xFFFF0000
+ default 0xFFFE0000
config S3_DATA_SIZE
int
diff --git a/src/cpu/amd/agesa/family14/Kconfig b/src/cpu/amd/agesa/family14/Kconfig
index 518235b..6957b13 100644
--- a/src/cpu/amd/agesa/family14/Kconfig
+++ b/src/cpu/amd/agesa/family14/Kconfig
@@ -21,4 +21,16 @@
int
default 36
+config AGESA_CAR_HEAP_BASE
+ hex
+ default 0x400000
+
+config AGESA_HEAP_SIZE
+ hex
+ default 0x10000
+
+config DCACHE_BSP_STACK_SIZE
+ hex
+ default 0x4000
+
endif
diff --git a/src/northbridge/amd/agesa/Kconfig b/src/northbridge/amd/agesa/Kconfig
index 50dba25..e1e129a 100644
--- a/src/northbridge/amd/agesa/Kconfig
+++ b/src/northbridge/amd/agesa/Kconfig
@@ -17,7 +17,6 @@
bool
default CPU_AMD_AGESA
select CBMEM_TOP_BACKUP
- select ROMCC_BOOTBLOCK
if NORTHBRIDGE_AMD_AGESA
diff --git a/src/northbridge/amd/agesa/family14/Makefile.inc b/src/northbridge/amd/agesa/family14/Makefile.inc
index ad39325..ca6439f 100644
--- a/src/northbridge/amd/agesa/family14/Makefile.inc
+++ b/src/northbridge/amd/agesa/family14/Makefile.inc
@@ -13,6 +13,13 @@
# GNU General Public License for more details.
#
+ifneq ($(CONFIG_ROMCC_BOOTBLOCK),y)
+bootblock-y += bootblock.c
+endif
+
+bootblock-y += nb_util.c
+romstage-y += nb_util.c
+
romstage-y += dimmSpd.c
ramstage-y += northbridge.c
diff --git a/src/northbridge/amd/agesa/family14/bootblock.c b/src/northbridge/amd/agesa/family14/bootblock.c
new file mode 100644
index 0000000..8ab789f
--- /dev/null
+++ b/src/northbridge/amd/agesa/family14/bootblock.c
@@ -0,0 +1,55 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <cpu/x86/mtrr.h>
+#include <cpu/amd/msr.h>
+#include <device/pci_ops.h>
+#include <northbridge/amd/agesa/agesa_helper.h>
+
+/* Define AMD Ontario APPU SSID/SVID */
+#define AMD_APU_SVID 0x1022
+#define AMD_APU_SSID 0x1234
+
+#define AGESA_EARLY_VMTRR_FLASH 1
+#define AGESA_EARLY_VMTRR_CAR_HEAP 2
+
+void amd_initmmio(void)
+{
+ msr_t msr;
+ msr_t mtrr_cap = rdmsr(MTRR_CAP_MSR);
+ int mtrr;
+ pci_devfn_t dev;
+
+ msr.hi = 0;
+ msr.lo = CONFIG_MMCONF_BASE_ADDRESS | MMIO_RANGE_EN
+ | fms(CONFIG_MMCONF_BUS_NUMBER) << MMIO_BUS_RANGE_SHIFT;
+ wrmsr(MMIO_CONF_BASE, msr);
+
+ /* Set Ontario Link Data */
+ dev = PCI_DEV(0, 0, 0);
+ pci_write_config32(dev, 0xE0, 0x01308002);
+ pci_write_config32(dev, 0xE4, (AMD_APU_SSID << 0x10) | AMD_APU_SVID);
+
+ mtrr = (mtrr_cap.lo & MTRR_CAP_VCNT) - AGESA_EARLY_VMTRR_FLASH;
+ set_var_mtrr(mtrr, OPTIMAL_CACHE_ROM_BASE, OPTIMAL_CACHE_ROM_SIZE,
+ MTRR_TYPE_WRPROT);
+
+ mtrr = (mtrr_cap.lo & MTRR_CAP_VCNT) - AGESA_EARLY_VMTRR_CAR_HEAP;
+ set_var_mtrr(mtrr, CONFIG_AGESA_CAR_HEAP_BASE,
+ CONFIG_AGESA_HEAP_SIZE, MTRR_TYPE_WRBACK);
+
+ /* Set P-state 0 (1600 MHz) early to save a few ms of boot time */
+ msr.lo = 0;
+ msr.hi = 0;
+ wrmsr(PS_CTL_REG, msr);
+}
diff --git a/src/northbridge/amd/agesa/family14/nb_util.c b/src/northbridge/amd/agesa/family14/nb_util.c
new file mode 100644
index 0000000..cfb9afc
--- /dev/null
+++ b/src/northbridge/amd/agesa/family14/nb_util.c
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <amdblocks/acpimmio.h>
+#include <northbridge/amd/agesa/agesa_helper.h>
+
+#define BIOSRAM_AP_ENTRY 0xec /* 4 bytes */
+
+void *get_ap_entry_ptr(void)
+{
+ return (void *)biosram_read32(BIOSRAM_AP_ENTRY);
+}
+
+void set_ap_entry_ptr(void *entry)
+{
+ biosram_write32(BIOSRAM_AP_ENTRY, (uintptr_t)entry);
+}
diff --git a/src/northbridge/amd/agesa/family15tn/Kconfig b/src/northbridge/amd/agesa/family15tn/Kconfig
index a0841eb..32530f4 100644
--- a/src/northbridge/amd/agesa/family15tn/Kconfig
+++ b/src/northbridge/amd/agesa/family15tn/Kconfig
@@ -14,6 +14,7 @@
##
config NORTHBRIDGE_AMD_AGESA_FAMILY15_TN
bool
+ select ROMCC_BOOTBLOCK
if NORTHBRIDGE_AMD_AGESA_FAMILY15_TN
diff --git a/src/northbridge/amd/agesa/family16kb/Kconfig b/src/northbridge/amd/agesa/family16kb/Kconfig
index 2be2fd3..c7e01ed 100644
--- a/src/northbridge/amd/agesa/family16kb/Kconfig
+++ b/src/northbridge/amd/agesa/family16kb/Kconfig
@@ -15,6 +15,7 @@
##
config NORTHBRIDGE_AMD_AGESA_FAMILY16_KB
bool
+ select ROMCC_BOOTBLOCK
if NORTHBRIDGE_AMD_AGESA_FAMILY16_KB
--
To view, visit https://review.coreboot.org/c/coreboot/+/37331
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ibcaedba030d80a230eecfda6244ca54f7635d0b4
Gerrit-Change-Number: 37331
Gerrit-PatchSet: 1
Gerrit-Owner: Michał Żygowski <michal.zygowski(a)3mdeb.com>
Gerrit-Reviewer: Martin Roth <martinroth(a)google.com>
Gerrit-Reviewer: Michał Żygowski <michal.zygowski(a)3mdeb.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi(a)google.com>
Gerrit-MessageType: newchange
Hello Hung-Te Lin, Nico Huber,
I'd like you to do a code review. Please visit
https://review.coreboot.org/c/coreboot/+/37433
to review the following change.
Change subject: Change all clrsetbits_leXX() to clrsetbitsXX()
......................................................................
Change all clrsetbits_leXX() to clrsetbitsXX()
This patch changes all existing instances of clrsetbits_leXX() to the
new endian-independent clrsetbitsXX(), after double-checking that
they're all in SoC-specific code operating on CPU registers and not
actually trying to make an endian conversion.
This patch was created by running
sed -i -e 's/\([cs][le][rt]bits\)_le\([136][624]\)/\1\2/g'
across the codebase and cleaning up formatting a bit.
Change-Id: I7fc3e736e5fe927da8960fdcd2aae607b62b5ff4
Signed-off-by: Julius Werner <jwerner(a)chromium.org>
---
M payloads/libpayload/drivers/udc/chipidea.c
M src/cpu/ti/am335x/gpio.c
M src/include/device/mmio.h
M src/mainboard/google/kahlee/mainboard.c
M src/mainboard/google/nyan/mainboard.c
M src/mainboard/google/nyan_big/mainboard.c
M src/mainboard/google/nyan_blaze/mainboard.c
M src/mainboard/google/oak/bootblock.c
M src/mainboard/google/storm/cdp.c
M src/mainboard/google/veyron/bootblock.c
M src/mainboard/google/veyron_mickey/bootblock.c
M src/mainboard/google/veyron_rialto/bootblock.c
M src/soc/cavium/cn81xx/timer.c
M src/soc/mediatek/common/ddp.c
M src/soc/mediatek/common/dsi.c
M src/soc/mediatek/common/gpio.c
M src/soc/mediatek/common/mtcmos.c
M src/soc/mediatek/common/spi.c
M src/soc/mediatek/common/timer.c
M src/soc/mediatek/common/usb.c
M src/soc/mediatek/common/wdt.c
M src/soc/mediatek/mt8173/ddp.c
M src/soc/mediatek/mt8173/dramc_pi_basic_api.c
M src/soc/mediatek/mt8173/dramc_pi_calibration_api.c
M src/soc/mediatek/mt8173/dsi.c
M src/soc/mediatek/mt8173/emi.c
M src/soc/mediatek/mt8173/gpio_init.c
M src/soc/mediatek/mt8173/pll.c
M src/soc/mediatek/mt8173/pmic_wrap.c
M src/soc/mediatek/mt8173/spi.c
M src/soc/mediatek/mt8183/auxadc.c
M src/soc/mediatek/mt8183/ddp.c
M src/soc/mediatek/mt8183/dramc_init_setting.c
M src/soc/mediatek/mt8183/dramc_pi_basic_api.c
M src/soc/mediatek/mt8183/dramc_pi_calibration_api.c
M src/soc/mediatek/mt8183/dsi.c
M src/soc/mediatek/mt8183/emi.c
M src/soc/mediatek/mt8183/gpio.c
M src/soc/mediatek/mt8183/md_ctrl.c
M src/soc/mediatek/mt8183/pll.c
M src/soc/mediatek/mt8183/spi.c
M src/soc/mediatek/mt8183/spm.c
M src/soc/nvidia/tegra/usb.c
M src/soc/nvidia/tegra124/clock.c
M src/soc/nvidia/tegra124/dma.c
M src/soc/nvidia/tegra124/include/soc/clock.h
M src/soc/nvidia/tegra124/power.c
M src/soc/nvidia/tegra124/sdram.c
M src/soc/nvidia/tegra124/spi.c
M src/soc/nvidia/tegra210/addressmap.c
M src/soc/nvidia/tegra210/clock.c
M src/soc/nvidia/tegra210/cpu.c
M src/soc/nvidia/tegra210/dma.c
M src/soc/nvidia/tegra210/include/soc/clock.h
M src/soc/nvidia/tegra210/sdram.c
M src/soc/nvidia/tegra210/spi.c
M src/soc/qualcomm/ipq40xx/blsp.c
M src/soc/qualcomm/ipq40xx/clock.c
M src/soc/qualcomm/ipq40xx/include/soc/iomap.h
M src/soc/qualcomm/ipq40xx/spi.c
M src/soc/qualcomm/ipq806x/clock.c
M src/soc/qualcomm/ipq806x/include/soc/iomap.h
M src/soc/qualcomm/ipq806x/spi.c
M src/soc/qualcomm/ipq806x/usb.c
M src/soc/qualcomm/qcs405/blsp.c
M src/soc/qualcomm/qcs405/clock.c
M src/soc/qualcomm/qcs405/gpio.c
M src/soc/qualcomm/qcs405/include/soc/iomap.h
M src/soc/qualcomm/qcs405/spi.c
M src/soc/qualcomm/qcs405/usb.c
M src/soc/qualcomm/sc7180/gpio.c
M src/soc/qualcomm/sdm845/clock.c
M src/soc/qualcomm/sdm845/usb.c
M src/soc/rockchip/common/edp.c
M src/soc/rockchip/common/gpio.c
M src/soc/rockchip/common/pwm.c
M src/soc/rockchip/common/spi.c
M src/soc/rockchip/common/vop.c
M src/soc/rockchip/rk3288/hdmi.c
M src/soc/rockchip/rk3288/sdram.c
M src/soc/rockchip/rk3288/software_i2c.c
M src/soc/rockchip/rk3288/tsadc.c
M src/soc/rockchip/rk3399/clock.c
M src/soc/rockchip/rk3399/saradc.c
M src/soc/rockchip/rk3399/sdram.c
M src/soc/rockchip/rk3399/tsadc.c
M src/soc/rockchip/rk3399/usb.c
M src/soc/samsung/exynos5250/clock.c
M src/soc/samsung/exynos5250/clock_init.c
M src/soc/samsung/exynos5250/dp-reg.c
M src/soc/samsung/exynos5250/fb.c
M src/soc/samsung/exynos5250/power.c
M src/soc/samsung/exynos5250/spi.c
M src/soc/samsung/exynos5250/usb.c
M src/soc/samsung/exynos5420/clock.c
M src/soc/samsung/exynos5420/clock_init.c
M src/soc/samsung/exynos5420/dmc_init_ddr3.c
M src/soc/samsung/exynos5420/power.c
M src/soc/samsung/exynos5420/spi.c
M src/soc/samsung/exynos5420/usb.c
M src/soc/sifive/fu540/clock.c
101 files changed, 2,013 insertions(+), 2,014 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/33/37433/1
--
To view, visit https://review.coreboot.org/c/coreboot/+/37433
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I7fc3e736e5fe927da8960fdcd2aae607b62b5ff4
Gerrit-Change-Number: 37433
Gerrit-PatchSet: 1
Gerrit-Owner: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: Hung-Te Lin <hungte(a)chromium.org>
Gerrit-Reviewer: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Philipp Hug <philipp(a)hug.cx>
Gerrit-Reviewer: ron minnich <rminnich(a)gmail.com>
Gerrit-MessageType: newchange
Hash.Hung has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/37247 )
Change subject: Create Lick variant
......................................................................
Create Lick variant
Change-Id: If732d94194defb9f5ee9c847ee93dd58aef01174
---
M src/mainboard/google/octopus/Kconfig
M src/mainboard/google/octopus/Kconfig.name
A src/mainboard/google/octopus/variants/lick/Makefile.inc
A src/mainboard/google/octopus/variants/lick/gpio.c
A src/mainboard/google/octopus/variants/lick/include/variant/acpi/dptf.asl
A src/mainboard/google/octopus/variants/lick/include/variant/ec.h
A src/mainboard/google/octopus/variants/lick/include/variant/gpio.h
A src/mainboard/google/octopus/variants/lick/mainboard.c
A src/mainboard/google/octopus/variants/lick/overridetree.cb
A src/mainboard/google/octopus/variants/lick/variant.c
10 files changed, 407 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/47/37247/1
diff --git a/src/mainboard/google/octopus/Kconfig b/src/mainboard/google/octopus/Kconfig
index 65a641b..a1c28fa 100644
--- a/src/mainboard/google/octopus/Kconfig
+++ b/src/mainboard/google/octopus/Kconfig
@@ -63,6 +63,7 @@
default "octopus" if BOARD_GOOGLE_OCTOPUS
default "garg" if BOARD_GOOGLE_GARG
default "dood" if BOARD_GOOGLE_DOOD
+ default "lick" if BOARD_GOOGLE_LICK
config DEVICETREE
string
@@ -85,6 +86,7 @@
default "Octopus" if BOARD_GOOGLE_OCTOPUS
default "Garg" if BOARD_GOOGLE_GARG
default "Dood" if BOARD_GOOGLE_DOOD
+ default "Lick" if BOARD_GOOGLE_LICK
config MAINBOARD_FAMILY
string
@@ -119,6 +121,7 @@
default y if BOARD_GOOGLE_OCTOPUS
default y if BOARD_GOOGLE_PHASER
default y if BOARD_GOOGLE_YORP
+ default y if BOARD_GOOGLE_LICK
config DRAM_PART_IN_CBI_BOARD_ID_MIN
int
@@ -129,5 +132,6 @@
default 3 if BOARD_GOOGLE_BOBBA
default 1 if BOARD_GOOGLE_MEEP
default 255 if BOARD_GOOGLE_OCTOPUS
+ default 255 if BOARD_GOOGLE_LICK
endif # BOARD_GOOGLE_OCTOPUS
diff --git a/src/mainboard/google/octopus/Kconfig.name b/src/mainboard/google/octopus/Kconfig.name
index 8a8d339..c837365 100644
--- a/src/mainboard/google/octopus/Kconfig.name
+++ b/src/mainboard/google/octopus/Kconfig.name
@@ -17,6 +17,12 @@
select BOARD_GOOGLE_BASEBOARD_OCTOPUS
select NHLT_DA7219 if INCLUDE_NHLT_BLOBS
+config BOARD_GOOGLE_LICK
+ bool "-> Lick"
+ select BASEBOARD_OCTOPUS_LAPTOP
+ select BOARD_GOOGLE_BASEBOARD_OCTOPUS
+ select NHLT_DA7219 if INCLUDE_NHLT_BLOBS
+
config BOARD_GOOGLE_FLEEX
bool "-> Fleex"
select BASEBOARD_OCTOPUS_LAPTOP
diff --git a/src/mainboard/google/octopus/variants/lick/Makefile.inc b/src/mainboard/google/octopus/variants/lick/Makefile.inc
new file mode 100644
index 0000000..37270eb
--- /dev/null
+++ b/src/mainboard/google/octopus/variants/lick/Makefile.inc
@@ -0,0 +1,5 @@
+bootblock-y += gpio.c
+
+ramstage-y += variant.c
+ramstage-y += gpio.c
+ramstage-y += mainboard.c
diff --git a/src/mainboard/google/octopus/variants/lick/gpio.c b/src/mainboard/google/octopus/variants/lick/gpio.c
new file mode 100644
index 0000000..281bde0
--- /dev/null
+++ b/src/mainboard/google/octopus/variants/lick/gpio.c
@@ -0,0 +1,90 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2018 Google LLC
+ *
+ * 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 <baseboard/gpio.h>
+#include <baseboard/variants.h>
+#include <boardid.h>
+#include <gpio.h>
+#include <soc/gpio.h>
+#include <ec/google/chromeec/ec.h>
+
+#define SKU_UNKNOWN 0xFFFFFFFF
+
+static const struct pad_config default_override_table[] = {
+ PAD_NC(GPIO_52, UP_20K),
+ PAD_NC(GPIO_53, UP_20K),
+ PAD_NC(GPIO_67, UP_20K),
+ PAD_NC(GPIO_117, UP_20K),
+ PAD_NC(GPIO_143, UP_20K),
+
+ /* EN_PP3300_TOUCHSCREEN */
+ PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_146, 0, DEEP, NONE, Tx0RxDCRx0,
+ DISPUPD),
+
+ PAD_NC(GPIO_161, DN_20K),
+
+ PAD_NC(GPIO_213, DN_20K),
+ PAD_NC(GPIO_214, DN_20K),
+};
+
+static const struct pad_config sku1_default_override_table[] = {
+ /* disable I2C7 SCL and SDA */
+ PAD_NC(GPIO_114, UP_20K), /* LPSS_I2C7_SDA */
+ PAD_NC(GPIO_115, UP_20K), /* LPSS_I2C7_SCL */
+
+ PAD_NC(GPIO_52, UP_20K),
+ PAD_NC(GPIO_53, UP_20K),
+ PAD_NC(GPIO_67, UP_20K),
+ PAD_NC(GPIO_117, UP_20K),
+ PAD_NC(GPIO_143, UP_20K),
+
+ /* EN_PP3300_TOUCHSCREEN */
+ PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_146, 0, DEEP, NONE, Tx0RxDCRx0,
+ DISPUPD),
+
+ PAD_NC(GPIO_161, DN_20K),
+
+ /* EN_PP3300_WLAN_L */
+ PAD_CFG_GPO_IOSSTATE_IOSTERM(GPIO_178, 0, DEEP, NONE, Tx0RxDCRx0,
+ DISPUPD),
+
+ PAD_NC(GPIO_213, DN_20K),
+ PAD_NC(GPIO_214, DN_20K),
+};
+
+bool no_touchscreen_sku(uint32_t sku_id)
+{
+ if ((sku_id == 1) || (sku_id == 6))
+ return true;
+ else
+ return false;
+}
+
+const struct pad_config *variant_override_gpio_table(size_t *num)
+{
+ const struct pad_config *c;
+ uint32_t sku_id = SKU_UNKNOWN;
+
+ google_chromeec_cbi_get_sku_id(&sku_id);
+ if (no_touchscreen_sku(sku_id)) {
+ c = sku1_default_override_table;
+ *num = ARRAY_SIZE(sku1_default_override_table);
+ } else {
+ c = default_override_table;
+ *num = ARRAY_SIZE(default_override_table);
+ }
+
+ return c;
+}
diff --git a/src/mainboard/google/octopus/variants/lick/include/variant/acpi/dptf.asl b/src/mainboard/google/octopus/variants/lick/include/variant/acpi/dptf.asl
new file mode 100644
index 0000000..cc17d56
--- /dev/null
+++ b/src/mainboard/google/octopus/variants/lick/include/variant/acpi/dptf.asl
@@ -0,0 +1,16 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2018 Google LLC
+ *
+ * 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 <baseboard/acpi/dptf.asl>
diff --git a/src/mainboard/google/octopus/variants/lick/include/variant/ec.h b/src/mainboard/google/octopus/variants/lick/include/variant/ec.h
new file mode 100644
index 0000000..16f931b
--- /dev/null
+++ b/src/mainboard/google/octopus/variants/lick/include/variant/ec.h
@@ -0,0 +1,21 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2018 Google LLC
+ *
+ * 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_EC_H
+#define MAINBOARD_EC_H
+
+#include <baseboard/ec.h>
+
+#endif
diff --git a/src/mainboard/google/octopus/variants/lick/include/variant/gpio.h b/src/mainboard/google/octopus/variants/lick/include/variant/gpio.h
new file mode 100644
index 0000000..1fd1e11
--- /dev/null
+++ b/src/mainboard/google/octopus/variants/lick/include/variant/gpio.h
@@ -0,0 +1,21 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2018 Google LLC
+ *
+ * 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 <baseboard/gpio.h>
+
+#endif /* MAINBOARD_GPIO_H */
diff --git a/src/mainboard/google/octopus/variants/lick/mainboard.c b/src/mainboard/google/octopus/variants/lick/mainboard.c
new file mode 100644
index 0000000..2d44830
--- /dev/null
+++ b/src/mainboard/google/octopus/variants/lick/mainboard.c
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2018 Google LLC
+ *
+ * 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 <boardid.h>
+#include <ec/google/chromeec/ec.h>
+#include <sar.h>
+
+const char *get_wifi_sar_cbfs_filename(void)
+{
+ const char *filename = NULL;
+ uint32_t sku_id;
+
+ if (google_chromeec_cbi_get_sku_id(&sku_id))
+ return NULL;
+
+ if (sku_id == 5)
+ filename = "wifi_sar-laser.hex";
+
+ return filename;
+}
diff --git a/src/mainboard/google/octopus/variants/lick/overridetree.cb b/src/mainboard/google/octopus/variants/lick/overridetree.cb
new file mode 100644
index 0000000..625c2a6
--- /dev/null
+++ b/src/mainboard/google/octopus/variants/lick/overridetree.cb
@@ -0,0 +1,176 @@
+chip soc/intel/apollolake
+
+ # EMMC Tx CMD Delay
+ # Refer to EDS-Vol2-16.32.
+ # [14:8] steps of delay for DDR mode, each 125ps.
+ # [6:0] steps of delay for SDR mode, each 125ps.
+ register "emmc_tx_cmd_cntl" = "0x505"
+
+ # EMMC TX DATA Delay 1
+ # Refer to EDS-Vol2-16.33.
+ # [14:8] steps of delay for HS400, each 125ps.
+ # [6:0] steps of delay for SDR104/HS200, each 125ps.
+ register "emmc_tx_data_cntl1" = "0x0b0c"
+
+ # EMMC TX DATA Delay 2
+ # Refer to EDS-Vol2-16.34.
+ # [30:24] steps of delay for SDR50, each 125ps.
+ # [22:16] steps of delay for DDR50, each 125ps.
+ # [14:8] steps of delay for SDR25/HS50, each 125ps.
+ # [6:0] steps of delay for SDR12, each 125ps.
+ register "emmc_tx_data_cntl2" = "0x1c282929"
+
+ # EMMC RX CMD/DATA Delay 1
+ # Refer to EDS-Vol2-16.35.
+ # [30:24] steps of delay for SDR50, each 125ps.
+ # [22:16] steps of delay for DDR50, each 125ps.
+ # [14:8] steps of delay for SDR25/HS50, each 125ps.
+ # [6:0] steps of delay for SDR12, each 125ps.
+ register "emmc_rx_cmd_data_cntl1" = "0x00181b1b"
+
+ # EMMC RX CMD/DATA Delay 2
+ # Refer to EDS-Vol2-16.37.
+ # [17:16] stands for Rx Clock before Output Buffer
+ # [14:8] steps of delay for Auto Tuning Mode, each 125ps.
+ # [6:0] steps of delay for HS200, each 125ps.
+ register "emmc_rx_cmd_data_cntl2" = "0x10028"
+
+ # EMMC Rx Strobe Delay
+ # Refer to EDS-Vol2-16.36.
+ # [14:8] Rx Strobe Delay DLL 1(HS400 Mode), each 125ps.
+ # [6:0] Rx Strobe Delay DLL 2(HS400 Mode), each 125ps.
+ register "emmc_rx_strobe_cntl" = "0x0b0b"
+
+ # Intel Common SoC Config
+ #+-------------------+---------------------------+
+ #| Field | Value |
+ #+-------------------+---------------------------+
+ #| GSPI0 | cr50 TPM. Early init is |
+ #| | required to set up a BAR |
+ #| | for TPM communication |
+ #| | before memory is up |
+ #| I2C0 | Digitizer |
+ #| I2C5 | Audio |
+ #| I2C6 | Trackpad |
+ #| I2C7 | Touchscreen |
+ #+-------------------+---------------------------+
+ register "common_soc_config" = "{
+ .gspi[0] = {
+ .speed_mhz = 1,
+ .early_init = 1,
+ },
+ .i2c[0] = {
+ .speed = I2C_SPEED_FAST,
+ .rise_time_ns = 66,
+ .fall_time_ns = 90,
+ },
+ .i2c[5] = {
+ .speed = I2C_SPEED_FAST,
+ .rise_time_ns = 104,
+ .fall_time_ns = 52,
+ },
+ .i2c[6] = {
+ .speed = I2C_SPEED_FAST,
+ .rise_time_ns = 66,
+ .fall_time_ns = 90,
+ .data_hold_time_ns = 350,
+ },
+ .i2c[7] = {
+ .speed = I2C_SPEED_FAST,
+ .rise_time_ns = 76,
+ .fall_time_ns = 164,
+ },
+ }"
+
+ device domain 0 on
+ device pci 16.0 on
+ chip drivers/i2c/hid
+ register "generic.hid" = ""WCOM50C1""
+ register "generic.desc" = ""WCOM Digitizer""
+ register "generic.irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_139_IRQ)"
+ register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_140)"
+ register "generic.reset_delay_ms" = "20"
+ register "generic.has_power_resource" = "1"
+ register "hid_desc_reg_offset" = "0x1"
+ device i2c 0x9 on end
+ end
+ end # - I2C 0
+ device pci 17.1 on
+ chip drivers/i2c/da7219
+ register "irq" = "ACPI_IRQ_LEVEL_LOW(GPIO_137_IRQ)"
+ register "btn_cfg" = "50"
+ register "mic_det_thr" = "500"
+ register "jack_ins_deb" = "20"
+ register "jack_det_rate" = ""32ms_64ms""
+ register "jack_rem_deb" = "1"
+ register "a_d_btn_thr" = "0xa"
+ register "d_b_btn_thr" = "0x16"
+ register "b_c_btn_thr" = "0x21"
+ register "c_mic_btn_thr" = "0x3e"
+ register "btn_avg" = "4"
+ register "adc_1bit_rpt" = "1"
+ register "micbias_lvl" = "2600"
+ register "mic_amp_in_sel" = ""diff""
+ device i2c 1a on end
+ end
+ end # - I2C 5
+ device pci 17.2 on
+ chip drivers/i2c/generic
+ register "hid" = ""ELAN0000""
+ register "desc" = ""ELAN Touchpad""
+ register "irq" = "ACPI_IRQ_WAKE_EDGE_LOW(GPIO_135_IRQ)"
+ register "wake" = "GPE0_DW3_27"
+ register "probed" = "1"
+ device i2c 15 on end
+ end
+ chip drivers/i2c/hid
+ register "generic.hid" = ""PNP0C50""
+ register "generic.desc" = ""Synaptics Touchpad""
+ register "generic.irq" = "ACPI_IRQ_WAKE_EDGE_LOW(GPIO_135_IRQ)"
+ register "generic.wake" = "GPE0_DW3_27"
+ register "generic.probed" = "1"
+ register "hid_desc_reg_offset" = "0x20"
+ device i2c 0x2c on end
+ end
+ end # - I2C 6
+ device pci 17.3 on
+ chip drivers/i2c/generic
+ register "hid" = ""ELAN0001""
+ register "desc" = ""ELAN Touchscreen""
+ register "irq" = "ACPI_IRQ_EDGE_LOW(GPIO_212_IRQ)"
+ register "probed" = "1"
+ register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
+ register "reset_delay_ms" = "20"
+ register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
+ register "enable_delay_ms" = "1"
+ register "has_power_resource" = "1"
+ device i2c 10 on end
+ end
+ chip drivers/i2c/hid
+ register "generic.hid" = ""SYTS7817""
+ register "generic.desc" = ""Synaptics Touchscreen""
+ register "generic.irq" = "ACPI_IRQ_EDGE_LOW(GPIO_212_IRQ)"
+ register "generic.probed" = "1"
+ register "generic.reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
+ register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
+ register "generic.reset_delay_ms" = "45"
+ register "generic.has_power_resource" = "1"
+ register "generic.disable_gpio_export_in_crs" = "1"
+ register "hid_desc_reg_offset" = "0x20"
+ device i2c 20 on end
+ end
+ chip drivers/i2c/generic
+ register "hid" = ""RAYD0001""
+ register "desc" = ""Raydium Touchscreen""
+ register "irq" = "ACPI_IRQ_EDGE_LOW(GPIO_212_IRQ)"
+ register "probed" = "1"
+ register "reset_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_105)"
+ register "reset_delay_ms" = "1"
+ register "enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPIO_146)"
+ register "enable_delay_ms" = "50"
+ register "has_power_resource" = "1"
+ device i2c 39 on end
+ end
+ end # - I2C 7
+ end
+end
diff --git a/src/mainboard/google/octopus/variants/lick/variant.c b/src/mainboard/google/octopus/variants/lick/variant.c
new file mode 100644
index 0000000..aeefda5
--- /dev/null
+++ b/src/mainboard/google/octopus/variants/lick/variant.c
@@ -0,0 +1,36 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright 2018 Google LLC
+ *
+ * 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 <baseboard/variants.h>
+#include <soc/pci_devs.h>
+#include <ec/google/chromeec/ec.h>
+
+#define SKU_UNKNOWN 0xFFFFFFFF
+
+void variant_update_devtree(struct device *dev)
+{
+ uint32_t sku_id = SKU_UNKNOWN;
+ struct device *touchscreen_i2c_host;
+
+ touchscreen_i2c_host = pcidev_path_on_root(PCH_DEVFN_I2C7);
+
+ if (touchscreen_i2c_host == NULL)
+ return;
+
+ /* SKU ID 1, 6 does not have a touchscreen device, hence disable it. */
+ google_chromeec_cbi_get_sku_id(&sku_id);
+ if (no_touchscreen_sku(sku_id))
+ touchscreen_i2c_host->enabled = 0;
+}
--
To view, visit https://review.coreboot.org/c/coreboot/+/37247
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: If732d94194defb9f5ee9c847ee93dd58aef01174
Gerrit-Change-Number: 37247
Gerrit-PatchSet: 1
Gerrit-Owner: Hash.Hung <hash1.hung(a)lcfc.corp-partner.google.com>
Gerrit-MessageType: newchange