From 83565dea8638841e522b64e74a4240002bba789d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20=C5=BBygowski?= Date: Wed, 27 Mar 2019 11:35:48 +0100 Subject: [PATCH] mb/protectli/vault: Add FW2B and FW4B Braswell based boards support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Żygowski Change-Id: I553fd3a89299314a855f055014ca7645100e12e7 Reviewed-on: https://review.coreboot.org/c/coreboot/+/32076 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Frans Hendriks --- Documentation/mainboard/index.md | 4 + Documentation/mainboard/protectli/fw2b.jpg | Bin 0 -> 52579 bytes .../mainboard/protectli/fw2b_fw4b.md | 128 ++++++++++ Documentation/mainboard/protectli/fw4b.jpg | Bin 0 -> 59322 bytes src/mainboard/protectli/Kconfig | 16 ++ src/mainboard/protectli/Kconfig.name | 2 + src/mainboard/protectli/vault_bsw/Kconfig | 78 ++++++ .../protectli/vault_bsw/Kconfig.name | 5 + .../protectli/vault_bsw/Makefile.inc | 9 + src/mainboard/protectli/vault_bsw/acpi/ec.asl | 0 .../protectli/vault_bsw/acpi/mainboard.asl | 19 ++ .../protectli/vault_bsw/acpi/superio.asl | 27 ++ .../protectli/vault_bsw/acpi_tables.c | 30 +++ .../protectli/vault_bsw/board_info.txt | 6 + src/mainboard/protectli/vault_bsw/com_init.c | 16 ++ .../protectli/vault_bsw/devicetree.cb | 141 +++++++++++ src/mainboard/protectli/vault_bsw/dsdt.asl | 36 +++ src/mainboard/protectli/vault_bsw/fadt.c | 35 +++ src/mainboard/protectli/vault_bsw/gpio.c | 238 ++++++++++++++++++ src/mainboard/protectli/vault_bsw/irqroute.c | 6 + src/mainboard/protectli/vault_bsw/irqroute.h | 27 ++ src/mainboard/protectli/vault_bsw/mainboard.c | 21 ++ src/mainboard/protectli/vault_bsw/onboard.h | 34 +++ src/mainboard/protectli/vault_bsw/ramstage.c | 9 + src/mainboard/protectli/vault_bsw/romstage.c | 34 +++ src/mainboard/protectli/vault_bsw/spi_vscc.c | 18 ++ .../vault_bsw/variants/fw2b/overridetree.cb | 6 + .../vault_bsw/variants/fw4b/overridetree.cb | 6 + 28 files changed, 951 insertions(+) create mode 100644 Documentation/mainboard/protectli/fw2b.jpg create mode 100644 Documentation/mainboard/protectli/fw2b_fw4b.md create mode 100644 Documentation/mainboard/protectli/fw4b.jpg create mode 100644 src/mainboard/protectli/Kconfig create mode 100644 src/mainboard/protectli/Kconfig.name create mode 100644 src/mainboard/protectli/vault_bsw/Kconfig create mode 100644 src/mainboard/protectli/vault_bsw/Kconfig.name create mode 100644 src/mainboard/protectli/vault_bsw/Makefile.inc create mode 100644 src/mainboard/protectli/vault_bsw/acpi/ec.asl create mode 100644 src/mainboard/protectli/vault_bsw/acpi/mainboard.asl create mode 100644 src/mainboard/protectli/vault_bsw/acpi/superio.asl create mode 100644 src/mainboard/protectli/vault_bsw/acpi_tables.c create mode 100644 src/mainboard/protectli/vault_bsw/board_info.txt create mode 100644 src/mainboard/protectli/vault_bsw/com_init.c create mode 100644 src/mainboard/protectli/vault_bsw/devicetree.cb create mode 100644 src/mainboard/protectli/vault_bsw/dsdt.asl create mode 100644 src/mainboard/protectli/vault_bsw/fadt.c create mode 100644 src/mainboard/protectli/vault_bsw/gpio.c create mode 100644 src/mainboard/protectli/vault_bsw/irqroute.c create mode 100644 src/mainboard/protectli/vault_bsw/irqroute.h create mode 100644 src/mainboard/protectli/vault_bsw/mainboard.c create mode 100644 src/mainboard/protectli/vault_bsw/onboard.h create mode 100644 src/mainboard/protectli/vault_bsw/ramstage.c create mode 100644 src/mainboard/protectli/vault_bsw/romstage.c create mode 100644 src/mainboard/protectli/vault_bsw/spi_vscc.c create mode 100644 src/mainboard/protectli/vault_bsw/variants/fw2b/overridetree.cb create mode 100644 src/mainboard/protectli/vault_bsw/variants/fw4b/overridetree.cb diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md index e46e0f37af..c509c960f0 100644 --- a/Documentation/mainboard/index.md +++ b/Documentation/mainboard/index.md @@ -117,6 +117,10 @@ The boards in this section are not real mainboards, but emulators. - [PQ7-M107](portwell/pq7-m107.md) +## Protectli + +- [FW2B / FW4B](protectli/fw2b_fw4b.md) + ## Roda - [RK9 Flash Header](roda/rk9/flash_header.md) diff --git a/Documentation/mainboard/protectli/fw2b.jpg b/Documentation/mainboard/protectli/fw2b.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d6f41059bdedc4c048a9567c57501fb7bf5ec215 GIT binary patch literal 52579 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 z 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 +#include +#include + +void acpi_create_gnvs(global_nvs_t *gnvs) +{ + memset(gnvs, 0, sizeof(*gnvs)); + + acpi_init_gnvs(gnvs); + + /* Enable USB ports in S3 */ + gnvs->s3u0 = 1; + gnvs->s3u1 = 1; +} + +unsigned long acpi_fill_madt(unsigned long current) +{ + /* Local APICs */ + current = acpi_create_madt_lapics(current); + + /* IOAPIC */ + current += acpi_create_madt_ioapic((acpi_madt_ioapic_t *) current, 2, IO_APIC_ADDR, 0); + + current = acpi_madt_irq_overrides(current); + + return current; +} diff --git a/src/mainboard/protectli/vault_bsw/board_info.txt b/src/mainboard/protectli/vault_bsw/board_info.txt new file mode 100644 index 0000000000..74144e8af2 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/board_info.txt @@ -0,0 +1,6 @@ +Vendor name: Protectli +Board name: FW2B / FW4B +Category: sbc +ROM protocol: SPI +ROM socketed: n +Flashrom support: y diff --git a/src/mainboard/protectli/vault_bsw/com_init.c b/src/mainboard/protectli/vault_bsw/com_init.c new file mode 100644 index 0000000000..c599039c02 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/com_init.c @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include +#include +#include + +#define SERIAL1_DEV PNP_DEV(0x2e, IT8613E_SP1) +#define GPIO_DEV PNP_DEV(0x2e, IT8613E_GPIO) + +void bootblock_mainboard_early_init(void) +{ + ite_reg_write(GPIO_DEV, 0x2c, 0x41); /* disable K8 power seq */ + ite_reg_write(GPIO_DEV, 0x2d, 0x02); /* PCICLK 25MHz */ + ite_enable_serial(SERIAL1_DEV, CONFIG_TTYS0_BASE); +} diff --git a/src/mainboard/protectli/vault_bsw/devicetree.cb b/src/mainboard/protectli/vault_bsw/devicetree.cb new file mode 100644 index 0000000000..94c083d13a --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/devicetree.cb @@ -0,0 +1,141 @@ +chip soc/intel/braswell + + ############################################################ + # Set the parameters for MemoryInit + ############################################################ + + register "PcdMrcInitTsegSize" = "8" # SMM Region size in MiB + + register "PcdMrcInitMmioSize" = "0x0800" + register "PcdMrcInitSpdAddr1" = "0xa0" + register "PcdMrcInitSpdAddr2" = "0xa2" + register "PcdIgdDvmt50PreAlloc" = "IGD_MEMSIZE_32MB" + register "PcdApertureSize" = "2" + register "PcdGttSize" = "1" + register "PcdDvfsEnable" = "0" + register "PcdCaMirrorEn" = "1" + + ############################################################ + # Set the parameters for SiliconInit + ############################################################ + + register "PcdSdcardMode" = "PCH_DISABLED" + register "PcdEnableHsuart0" = "0" + register "PcdEnableHsuart1" = "0" + register "PcdEnableAzalia" = "1" + register "PcdEnableXhci" = "1" + register "PcdEnableLpe" = "0" + register "PcdEnableDma0" = "0" + register "PcdEnableDma1" = "0" + register "PcdEnableI2C0" = "0" + register "PcdEnableI2C1" = "0" + register "PcdEnableI2C2" = "0" + register "PcdEnableI2C3" = "0" + register "PcdEnableI2C4" = "0" + register "PcdEnableI2C5" = "0" + register "PcdEnableI2C6" = "0" + register "PunitPwrConfigDisable" = "1" # Disable SVID + register "ChvSvidConfig" = "SVID_PMIC_CONFIG" + register "PcdEmmcMode" = "PCH_DISABLED" + register "PcdUsb3ClkSsc" = "1" + register "PcdDispClkSsc" = "1" + register "PcdSataClkSsc" = "1" + register "PcdEnableSata" = "1" + register "Usb2Port0PerPortPeTxiSet" = "7" + register "Usb2Port0PerPortTxiSet" = "6" + register "Usb2Port0IUsbTxEmphasisEn" = "3" + register "Usb2Port0PerPortTxPeHalf" = "1" + register "Usb2Port1PerPortPeTxiSet" = "7" + register "Usb2Port1PerPortTxiSet" = "6" + register "Usb2Port1IUsbTxEmphasisEn" = "3" + register "Usb2Port1PerPortTxPeHalf" = "1" + register "Usb2Port2PerPortPeTxiSet" = "7" + register "Usb2Port2PerPortTxiSet" = "6" + register "Usb2Port2IUsbTxEmphasisEn" = "3" + register "Usb2Port2PerPortTxPeHalf" = "1" + register "Usb2Port3PerPortPeTxiSet" = "7" + register "Usb2Port3PerPortTxiSet" = "6" + register "Usb2Port3IUsbTxEmphasisEn" = "3" + register "Usb2Port3PerPortTxPeHalf" = "1" + register "Usb2Port4PerPortPeTxiSet" = "7" + register "Usb2Port4PerPortTxiSet" = "6" + register "Usb2Port4IUsbTxEmphasisEn" = "3" + register "Usb2Port4PerPortTxPeHalf" = "1" + register "Usb3Lane0Ow2tapgen2deemph3p5" = "0x3a" + register "Usb3Lane1Ow2tapgen2deemph3p5" = "0x64" + register "Usb3Lane2Ow2tapgen2deemph3p5" = "0x64" + register "Usb3Lane3Ow2tapgen2deemph3p5" = "0x3a" + register "PcdSataInterfaceSpeed" = "3" + register "PcdPchSsicEnable" = "1" + register "PcdRtcLock" = "0" # Disable RTC access locking to NVRAM + register "PMIC_I2CBus" = "0" + register "ISPEnable" = "0" # Disable IUNIT + register "ISPPciDevConfig" = "3" + register "PcdSdDetectChk" = "0" # Disable SD card detect + register "DptfDisable" = "1" + + # Enable devices in PCI mode + register "lpss_acpi_mode" = "0" + register "emmc_acpi_mode" = "0" + register "sd_acpi_mode" = "0" + register "lpe_acpi_mode" = "0" + + # Disable SLP_X stretching after SUS power well fail. + register "disable_slp_x_stretch_sus_fail" = "1" + + # Allow PCIe devices to wake system from suspend + register "pcie_wake_enable" = "1" + + # Enable SERIRQ continuous + register "serirq_mode" = "SERIRQ_CONTINUOUS" + + device cpu_cluster 0 on + device lapic 0 on end + end + device domain 0 on + device pci 00.0 on end # 8086 2280 - SoC transaction router + device pci 02.0 on end # 8086 22b0/22b1 - B1/C0 stepping GFX + device pci 03.0 off end # 8086 22b8 - Camera and Image Processor + device pci 0b.0 off end # 8086 22dc - PUNIT/DPTF + device pci 10.0 off end # 8086 2294 - MMC Port + device pci 12.0 off end # 8086 2296 - SD Port + device pci 13.0 on end # 8086 22a3 - Sata controller + device pci 14.0 on end # 8086 22b5 - USB XHCI + device pci 18.0 off end # 8086 22c0 - SIO - DMA + device pci 18.1 off end # 8086 22c1 - I2C Port 1 + device pci 18.2 off end # 8086 22c2 - I2C Port 2 + device pci 18.3 off end # 8086 22c3 - I2C Port 3 + device pci 18.4 off end # 8086 22c4 - I2C Port 4 + device pci 18.5 off end # 8086 22c5 - I2C Port 5 + device pci 18.6 off end # 8086 22c6 - I2C Port 6 + device pci 18.7 off end # 8086 22c7 - I2C Port 7 + device pci 1a.0 on end # 8086 2298 - Trusted Execution Engine + device pci 1b.0 on end # 8086 2284 - HD Audio + device pci 1c.0 on end # 8086 22c8 - PCIe Root Port 1 + device pci 1c.1 on end # 8086 22ca - PCIe Root Port 2 + device pci 1c.2 on end # 8086 22cc - PCIe Root Port 3 + device pci 1c.3 on # 8086 22ce - PCIe Root Port 4 + smbios_slot_desc + "SlotTypePciExpressMini52pinWithoutBSKO" + "SlotLengthShort" "WIFI" "SlotDataBusWidth1X" + end + device pci 1e.0 off end # 8086 2286 - SIO - DMA + device pci 1e.3 off end # 8086 228a - HSUART 1 + device pci 1e.4 off end # 8086 228c - HSUART 2 + device pci 1f.0 on # 8086 229c - LPC bridge + chip superio/ite/it8613e + device pnp 2e.0 off end + device pnp 2e.1 on # COM 1 + io 0x60 = 0x3f8 + irq 0x70 = 4 + end + device pnp 2e.4 off end # Environment Controller + device pnp 2e.5 off end # Keyboard + device pnp 2e.6 off end # Mouse + device pnp 2e.7 off end # GPIO + device pnp 2e.a off end # CIR + end + end + device pci 1f.3 on end # 8086 2292 - SMBus 0 + end +end diff --git a/src/mainboard/protectli/vault_bsw/dsdt.asl b/src/mainboard/protectli/vault_bsw/dsdt.asl new file mode 100644 index 0000000000..34f93fa229 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/dsdt.asl @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include +DefinitionBlock( + "dsdt.aml", + "DSDT", + 0x02, /* DSDT revision: ACPI v2.0 and up */ + OEM_ID, + ACPI_TABLE_CREATOR, + 0x00010001 /* OEM revision */ +) +{ + #include "onboard.h" + + #include + + /* global NVS and variables */ + #include + #include + + Device (\_SB.PCI0) + { + #include + + Device (RP03) + { + Name (_ADR, 0x001C0002) // _ADR: Address + OperationRegion(RPXX, PCI_Config, 0x00, 0x10) + } + } + + #include + + #include "acpi/mainboard.asl" +} diff --git a/src/mainboard/protectli/vault_bsw/fadt.c b/src/mainboard/protectli/vault_bsw/fadt.c new file mode 100644 index 0000000000..a84e063648 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/fadt.c @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include +#include +#include + +void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt) +{ + acpi_header_t *header = &(fadt->header); + + memset((void *) fadt, 0, sizeof(acpi_fadt_t)); + memcpy(header->signature, "FACP", 4); + header->length = sizeof(acpi_fadt_t); + header->revision = get_acpi_table_revision(FADT); + memcpy(header->oem_id, OEM_ID, 6); + memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8); + memcpy(header->asl_compiler_id, ASLC, 4); + header->asl_compiler_revision = asl_revision; + + fadt->firmware_ctrl = (unsigned long)facs; + fadt->dsdt = (unsigned long) dsdt; + fadt->preferred_pm_profile = PM_MOBILE; + + fadt->x_firmware_ctl_l = (unsigned long)facs; + fadt->x_firmware_ctl_h = 0; + fadt->x_dsdt_l = (unsigned long)dsdt; + fadt->x_dsdt_h = 0; + + acpi_fill_in_fadt(fadt); + + fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES; + + header->checksum = acpi_checksum((void *)fadt, header->length); +} diff --git a/src/mainboard/protectli/vault_bsw/gpio.c b/src/mainboard/protectli/vault_bsw/gpio.c new file mode 100644 index 0000000000..741d51e33b --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/gpio.c @@ -0,0 +1,238 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include + +/* South East Community */ +static const struct soc_gpio_map gpse_gpio_map[] = { + GPIO_NC, /* 00 MF_PLT_CLK0 */ + GPIO_NC, /* 01 PWM1 */ + GPIO_NC, /* 02 MF_PLT_CLK1 */ + GPIO_NC, /* 03 MF_PLT_CLK4 */ + GPIO_NC, /* 04 MF_PLT_CLK3 */ + GPIO_NC, /* 05 PWM0*/ + GPIO_NC, /* 06 MF_PLT_CLK5 */ + GPIO_NC, /* 07 MF_PLT_CLK2 */ + GPIO_NC, /* 15 SDMMC2_D3_CD_B */ + GPIO_NC, /* 16 SDMMC1_CLK */ + GPIO_NC, /* 17 SDMMC1_D0 */ + GPIO_NC, /* 18 SDMMC2_D1 */ + GPIO_NC, /* 19 SDMMC2_CLK */ + GPIO_NC, /* 20 SDMMC1_D2 */ + GPIO_NC, /* 21 SDMMC2_D2 */ + GPIO_NC, /* 22 SDMMC2_CMD */ + GPIO_NC, /* 23 SDMMC1_CMD */ + GPIO_NC, /* 24 SDMMC1_D1 */ + GPIO_NC, /* 25 SDMMC2_D0 */ + GPIO_NC, /* 26 SDMMC1_D3_CD_B */ + GPIO_NC, /* 30 SDMMC3_D1 */ + GPIO_NC, /* 31 SDMMC3_CLK */ + GPIO_NC, /* 32 SDMMC3_D3 */ + GPIO_NC, /* 33 SDMMC3_D2 */ + GPIO_NC, /* 34 SDMMC3_CMD */ + GPIO_NC, /* 35 SDMMC3_D0 */ + NATIVE_PU20K(1), /* 45 MF_LPC_AD2 */ + NATIVE_PU20K(1), /* 46 LPC_CLKRUNB */ + NATIVE_PU20K(1), /* 47 MF_LPC_AD0 */ + Native_M1, /* 48 LPC_FRAMEB */ + Native_M1, /* 49 MF_LPC_CLKOUT1 */ + NATIVE_PU20K(1), /* 50 MF_LPC_AD3 */ + Native_M1, /* 51 MF_LPC_CLKOUT0 */ + NATIVE_PU20K(1), /* 52 MF_LPC_AD1 */ + GPIO_NC, /* 60 SPI1_MISO */ + GPIO_NC, /* 61 SPI1_CS0_B */ + GPIO_NC, /* 62 SPI1_CLK */ + GPIO_NC, /* 63 MMC1_D6 */ + GPIO_NC, /* 64 SPI1_MOSI */ + GPIO_NC, /* 65 MMC1_D5 */ + GPIO_NC, /* 66 SPI1_CS1_B */ + GPIO_NC, /* 67 MMC1_D4_SD_WE */ + GPIO_NC, /* 68 MMC1_D7 */ + GPIO_NC, /* 69 MMC1_RCLK */ + Native_M1, /* 75 USB_OC1_B */ + Native_M1, /* 76 PMU_RESETBUTTON_B */ + GPI(trig_edge_both, L0, NA, non_maskable, en_edge_detect, NA, NA), + /* 77 GPIO_ALERT */ + GPIO_NC, /* 78 SDMMC3_PWR_EN_B */ + NATIVE_PU20K(1), /* 79 ILB_SERIRQ */ + NATIVE_PU20K(1), /* 80 USB_OC0_B */ + GPIO_NC, /* 81 SDMMC3_CD_B */ + Native_M1, /* 82 SPKR */ + Native_M1, /* 83 SUSPWRDNACK */ + SPARE_PIN, /* 84 SDMMC1_RCLK */ + GPIO_NC, /* 85 SDMMC3_1P8_EN */ + GPIO_END +}; + +/* South West Community */ +static const struct soc_gpio_map gpsw_gpio_map[] = { + NATIVE_PU20K(1), /* 00 FST_SPI_D2 */ + NATIVE_PU20K(1), /* 01 FST_SPI_D0 */ + NATIVE_PU20K(1), /* 02 FST_SPI_CLK */ + NATIVE_PU20K(1), /* 03 FST_SPI_D3 */ + GPO_FUNC(P_20K_H, 1), /* 04 FST_SPI_CS1_B */ + NATIVE_PU20K(1), /* 05 FST_SPI_D1 */ + NATIVE_PU20K(1), /* 06 FST_SPI_CS0_B */ + GPO_FUNC(P_20K_H, 1), /* 07 FST_SPI_CS2_B */ + GPIO_NC, /* 15 UART1_RTS_B */ + GPIO_NC, /* 16 UART1_RXD */ + GPIO_NC, /* 17 UART2_RXD */ + GPIO_NC, /* 18 UART1_CTS_B */ + GPIO_NC, /* 19 UART2_RTS_B */ + GPIO_NC, /* 20 UART1_TXD */ + GPIO_NC, /* 21 UART2_TXD */ + GPIO_NC, /* 22 UART2_CTS_B */ + NATIVE_PD20K(2), /* 30 MF_HDA_CLK */ + NATIVE_PD20K(2), /* 31 GPIO_SW31/MF_HDA_RSTB */ + NATIVE_PD20K(2), /* 32 GPIO_SW32/MF_HDA_SDI0 */ + NATIVE_PD20K(2), /* 33 MF_HDA_SDO */ + GPO_FUNC(P_20K_L, 1), /* 34 MF_HDA_DOCKRSTB */ + NATIVE_PD20K(2), /* 35 MF_HDA_SYNC */ + NATIVE_PD20K(2), /* 36 GPIO_SW36/MF_HDA_SDI1 */ + GPIO_INPUT_PD_20K, /* 37 MF_HDA_DOCKENB */ + GPIO_NC, /* 45 I2C5_SDA */ + GPIO_NC, /* 46 I2C4_SDA */ + GPIO_NC, /* 47 I2C6_SDA */ + GPIO_NC, /* 48 I2C5_SCL */ + GPIO_NC, /* 49 I2C_NFC_SDA */ + GPIO_NC, /* 50 I2C4_SCL */ + GPIO_NC, /* 51 I2C6_SCL */ + GPIO_NC, /* 52 I2C_NFC_SCL */ + GPIO_NC, /* 60 I2C1_SDA */ + GPIO_NC, /* 61 I2C0_SDA */ + GPIO_NC, /* 62 I2C2_SDA */ + GPIO_NC, /* 63 I2C1_SCL */ + GPIO_NC, /* 64 I2C3_SDA */ + GPIO_NC, /* 65 I2C0_SCL */ + GPIO_NC, /* 66 I2C2_SCL */ + GPIO_NC, /* 67 I2C3_SCL */ + GPIO_NC, /* 75 SATA_GP0 */ + GPIO_NC, /* 76 SATA_GP1 */ + Native_M1, /* 77 SATA_LEDN */ + GPIO_NC, /* 78 SATA_GP2 */ + NATIVE_PU20K(1), /* 79 MF_SMB_ALERTB */ + GPIO_NC, /* 80 SATA_GP3 */ + NATIVE_PU20K(1), /* 81 MF_SMB_CLK */ + NATIVE_PU20K(1), /* 82 MF_SMB_DATA */ + GPIO_NC, /* 90 PCIE_CLKREQ0B */ + GPIO_NC, /* 91 PCIE_CLKREQ1B */ + GPIO_NC, /* 92 GP_SSP_2_CLK */ + GPIO_NC, /* 93 PCIE_CLKREQ2B */ + GPIO_NC, /* 94 GP_SSP_2_RXD */ + GPIO_NC, /* 95 PCIE_CLKREQ3B */ + GPIO_NC, /* 96 GP_SSP_2_FS */ + GPIO_NC, /* 97 GP_SSP_2_TXD */ + GPIO_END +}; + +/* North Community */ +static const struct soc_gpio_map gpn_gpio_map[] = { + GPIO_NC, /* 00 GPIO_DFX0 */ + GPIO_NC, /* 01 GPIO_DFX3 */ + GPIO_NC, /* 02 GPIO_DFX7 */ + GPIO_NC, /* 03 GPIO_DFX1 */ + GPIO_NC, /* 04 GPIO_DFX5 */ + GPIO_NC, /* 05 GPIO_DFX4 */ + GPIO_NC, /* 06 GPIO_DFX8 */ + GPIO_NC, /* 07 GPIO_DFX2 */ + GPIO_NC, /* 08 GPIO_DFX6 */ + GPI(trig_edge_low, L8, P_20K_L, non_maskable, en_edge_rx_data, + UNMASK_WAKE, SCI), /* 15 GPIO_SUS0 */ + GPO_FUNC(P_20K_L, 1), /* 16 SEC_GPIO_SUS10 */ + NATIVE_PD20K(1), /* 17 GPIO_SUS3 */ + GPI(trig_edge_low, L15, P_20K_H, non_maskable, en_edge_rx_data, NA, + SMI), /* 18 GPIO_SUS7 */ + NATIVE_PD20K(1), /* 19 GPIO_SUS1 */ + GPIO_INPUT_PU_20K, /* 20 GPIO_SUS5 */ + GPI(trig_edge_high, L2, P_20K_L, non_maskable, en_edge_rx_data, NA, + NA), /* 21 SEC_GPIO_SUS11 */ + NATIVE_PU20K(1), /* 22 GPIO_SUS4 */ + GPI(trig_level_high, L3, P_20K_H, non_maskable, en_rx_data, NA, NA), + /* 23 SEC_GPIO_SUS8 */ + NATIVE_PU20K(1), /* 24 GPIO_SUS2 */ + GPI(trig_edge_low, L14, P_20K_H, non_maskable, en_edge_rx_data, NA, + SCI), /* 25 GPIO_SUS6 */ + Native_M1, /* 26 CX_PREQ_B */ + GPIO_INPUT_PD_20K, /* 27 SEC_GPIO_SUS9 */ + Native_M1, /* 30 TRST_B */ + Native_M1, /* 31 TCK */ + GPIO_SKIP, /* 32 PROCHOT_B */ + GPIO_SKIP, /* 33 SVID0_DATA */ + Native_M1, /* 34 TMS */ + GPIO_NC, /* 35 CX_PRDY_B_2 */ + GPIO_NC, /* 36 TDO_2 */ + Native_M1, /* 37 CX_PRDY_B */ + GPIO_SKIP, /* 38 SVID0_ALERT_B */ + Native_M1, /* 39 TDO */ + GPIO_SKIP, /* 40 SVID0_CLK */ + Native_M1, /* 41 TDI */ + GPIO_NC, /* 45 GP_CAMERASB05 */ + GPIO_NC, /* 46 GP_CAMERASB02 */ + GPIO_NC, /* 47 GP_CAMERASB08 */ + GPIO_NC, /* 48 GP_CAMERASB00 */ + GPIO_NC, /* 49 GP_CAMERASBO6 */ + GPIO_NC, /* 50 GP_CAMERASB10 */ + GPIO_NC, /* 51 GP_CAMERASB03 */ + GPIO_NC, /* 52 GP_CAMERASB09 */ + GPIO_NC, /* 53 GP_CAMERASB01 */ + GPIO_NC, /* 54 GP_CAMERASB07 */ + GPIO_NC, /* 55 GP_CAMERASB11 */ + GPIO_NC, /* 56 GP_CAMERASB04 */ + GPIO_NC, /* 60 PANEL0_BKLTEN */ + NATIVE_TX_RX_EN, /* 61 HV_DDI0_HPD */ + NATIVE_PU1K_M1, /* 62 HV_DDI2_DDC_SDA */ + GPIO_NC, /* 63 PANEL1_BKLTCTL */ + GPIO_NC, /* 64 HV_DDI1_HPD */ + GPIO_NC, /* 65 PANEL0_BKLTCTL */ + NATIVE_PU1K_M1, /* 66 HV_DDI0_DDC_SDA */ + NATIVE_PU1K_M1, /* 67 HV_DDI2_DDC_SCL */ + NATIVE_TX_RX_EN, /* 68 HV_DDI2_HPD */ + GPIO_NC, /* 69 PANEL1_VDDEN */ + GPIO_NC, /* 70 PANEL1_BKLTEN */ + NATIVE_PU1K_M1, /* 71 HV_DDI0_DDC_SCL */ + GPIO_NC, /* 72 PANEL0_VDDEN */ + GPIO_END +}; + +/* East Community */ +static const struct soc_gpio_map gpe_gpio_map[] = { + NATIVE_PU20K(1), /* 00 PMU_SLP_S3_B */ + NATIVE_PU20K(1), /* 01 PMU_BATLOW_B */ + NATIVE_PU20K(1), /* 02 SUS_STAT_B */ + NATIVE_PU20K(1), /* 03 PMU_SLP_S0IX_B */ + NATIVE_PD20K(1), /* 04 PMU_AC_PRESENT */ + NATIVE_PU20K(1), /* 05 PMU_PLTRST_B */ + NATIVE_PD20K(1), /* 06 PMU_SUSCLK */ + NATIVE_PU20K(1), /* 07 PMU_SLP_LAN_B */ + NATIVE_PU20K(1), /* 08 PMU_PWRBTN_B */ + NATIVE_PU20K(1), /* 09 PMU_SLP_S4_B */ + NATIVE_FUNC_TX_RX(en_rx_data << 2, 1, P_1K_H, NA), /* 10 PMU_WAKE_B */ + GPIO_NC, /* 11 PMU_WAKE_LAN_B */ + GPIO_NC, /* 15 MF_GPIO_3 */ + GPIO_NC, /* 16 MF_GPIO_7 */ + GPIO_NC, /* 17 MF_I2C1_SCL */ + GPIO_NC, /* 18 MF_GPIO_1 */ + GPIO_NC, /* 19 MF_GPIO_5 */ + GPIO_NC, /* 20 MF_GPIO_9 */ + GPIO_NC, /* 21 MF_GPIO_0 */ + GPIO_NC, /* 22 MF_GPIO_4 */ + GPIO_NC, /* 23 MF_GPIO_8 */ + GPIO_NC, /* 24 MF_GPIO_2 */ + GPIO_NC, /* 25 MF_GPIO_6 */ + GPIO_NC, /* 26 MF_I2C1_SDA */ + GPIO_END +}; + +static struct soc_gpio_config gpio_config = { + /* BSW */ + .north = gpn_gpio_map, + .southeast = gpse_gpio_map, + .southwest = gpsw_gpio_map, + .east = gpe_gpio_map +}; + +struct soc_gpio_config *mainboard_get_gpios(void) +{ + + return &gpio_config; +} diff --git a/src/mainboard/protectli/vault_bsw/irqroute.c b/src/mainboard/protectli/vault_bsw/irqroute.c new file mode 100644 index 0000000000..79bce75378 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/irqroute.c @@ -0,0 +1,6 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include "irqroute.h" + +DEFINE_IRQ_ROUTES; diff --git a/src/mainboard/protectli/vault_bsw/irqroute.h b/src/mainboard/protectli/vault_bsw/irqroute.h new file mode 100644 index 0000000000..5c2e34dcd5 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/irqroute.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include +#include +#include + +#define PCI_DEV_PIRQ_ROUTES \ + PCI_DEV_PIRQ_ROUTE(GFX_DEV, A, A, A, A), \ + PCI_DEV_PIRQ_ROUTE(SATA_DEV, D, A, A, A), \ + PCI_DEV_PIRQ_ROUTE(XHCI_DEV, E, A, A, A), \ + PCI_DEV_PIRQ_ROUTE(SIO1_DEV, B, A, D, C), \ + PCI_DEV_PIRQ_ROUTE(TXE_DEV, F, A, A, A), \ + PCI_DEV_PIRQ_ROUTE(HDA_DEV, G, A, A, A), \ + PCI_DEV_PIRQ_ROUTE(PCIE_DEV, A, B, C, D), \ + PCI_DEV_PIRQ_ROUTE(SIO2_DEV, D, B, C, A), \ + PCI_DEV_PIRQ_ROUTE(PCU_DEV, A, C, A, A) + +#define PIRQ_PIC_ROUTES \ + PIRQ_PIC(A, 11), \ + PIRQ_PIC(B, 5), \ + PIRQ_PIC(C, 5), \ + PIRQ_PIC(D, 11), \ + PIRQ_PIC(E, 11), \ + PIRQ_PIC(F, 5), \ + PIRQ_PIC(G, 11), \ + PIRQ_PIC(H, 11) diff --git a/src/mainboard/protectli/vault_bsw/mainboard.c b/src/mainboard/protectli/vault_bsw/mainboard.c new file mode 100644 index 0000000000..1fd891918b --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/mainboard.c @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include +#include +#include + +#define BIOS_CONTROL_REG 0xFC +#define BIOS_CONTROL_WPD (1 << 0) + +static void mainboard_enable(struct device *dev) +{ + volatile void *addr = (void *)(SPI_BASE_ADDRESS + BIOS_CONTROL_REG); + + /* Set Bios Write Protect Disable bit to allow saving MRC cache */ + write8(addr, read8(addr) | BIOS_CONTROL_WPD); +} + +struct chip_operations mainboard_ops = { + .enable_dev = mainboard_enable, +}; diff --git a/src/mainboard/protectli/vault_bsw/onboard.h b/src/mainboard/protectli/vault_bsw/onboard.h new file mode 100644 index 0000000000..fcdb3a70b8 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/onboard.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#ifndef ONBOARD_H +#define ONBOARD_H + +/* + * Calculation of gpio based irq. + * Gpio banks ordering : GPSW, GPNC, GPEC, GPSE + * Max direct irq (MAX_DIRECT_IRQ) is 114. + * Size of gpio banks are + * GPSW_SIZE = 98 + * GPNC_SIZE = 73 + * GPEC_SIZE = 27 + * GPSE_SIZE = 86 + */ + + +/* Audio: Gpio index in SW bank */ +#define JACK_DETECT_GPIO_INDEX 77 + +/* SCI: Gpio index in N bank */ +#define BOARD_SCI_GPIO_INDEX 15 + +#define SDCARD_CD 81 + +#define AUDIO_CODEC_HID "10EC5670" +#define AUDIO_CODEC_CID "10EC5670" +#define AUDIO_CODEC_DDN "RTEK Codec Controller " +#define AUDIO_CODEC_I2C_ADDR 0x1C + +#define BCRD2_PMIC_I2C_BUS 0x01 + +#endif diff --git a/src/mainboard/protectli/vault_bsw/ramstage.c b/src/mainboard/protectli/vault_bsw/ramstage.c new file mode 100644 index 0000000000..6320ca7a67 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/ramstage.c @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include + +void mainboard_silicon_init_params(SILICON_INIT_UPD *params) +{ + params->PcdTurboMode = 1; +} diff --git a/src/mainboard/protectli/vault_bsw/romstage.c b/src/mainboard/protectli/vault_bsw/romstage.c new file mode 100644 index 0000000000..37a75dc56c --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/romstage.c @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include +#include +#include +#include +#include +#include + +#define SERIAL1_DEV PNP_DEV(0x2e, IT8613E_SP1) + +void mainboard_after_memory_init(void) +{ + /* + * FSP enables internal UART. Disable it and reenable Super I/O UART to + * prevent loss of debug information on serial. + */ + pci_write_config32(PCI_DEV(0, LPC_DEV, 0), UART_CONT, (u32) 0); + ite_enable_serial(SERIAL1_DEV, CONFIG_TTYS0_BASE); +} + +void mainboard_memory_init_params(struct romstage_params *params, + MEMORY_INIT_UPD *memory_params) +{ + /* + * Set SPD and memory configuration: + * Memory type: 0=DimmInstalled, + * 1=SolderDownMemory, + * 2=DimmDisabled + */ + memory_params->PcdMemChannel0Config = 0; + memory_params->PcdMemChannel1Config = 2; +} diff --git a/src/mainboard/protectli/vault_bsw/spi_vscc.c b/src/mainboard/protectli/vault_bsw/spi_vscc.c new file mode 100644 index 0000000000..529a78eb22 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/spi_vscc.c @@ -0,0 +1,18 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* This file is part of the coreboot project. */ + +#include +#include + +#define SPI_VSCC (WG_64_BYTE | EO(0x20) | BES_4_KB) + +static const struct vscc_config spi_config = { + .lvscc = SPI_VSCC, + .uvscc = SPI_VSCC, +}; + +int mainboard_get_spi_vscc_config(struct vscc_config *cfg) +{ + memcpy(cfg, &spi_config, sizeof(*cfg)); + return 0; +} diff --git a/src/mainboard/protectli/vault_bsw/variants/fw2b/overridetree.cb b/src/mainboard/protectli/vault_bsw/variants/fw2b/overridetree.cb new file mode 100644 index 0000000000..2cccd8589f --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/variants/fw2b/overridetree.cb @@ -0,0 +1,6 @@ +chip soc/intel/braswell + + device domain 0 on + device pci 1c.2 off end # 8086 22cc - PCIe Root Port 3 + end +end diff --git a/src/mainboard/protectli/vault_bsw/variants/fw4b/overridetree.cb b/src/mainboard/protectli/vault_bsw/variants/fw4b/overridetree.cb new file mode 100644 index 0000000000..a9c0199511 --- /dev/null +++ b/src/mainboard/protectli/vault_bsw/variants/fw4b/overridetree.cb @@ -0,0 +1,6 @@ +chip soc/intel/braswell + + device domain 0 on + device pci 1c.2 on end # 8086 22cc - PCIe Root Port 3 + end +end