Commit Graph

48630 Commits

Author SHA1 Message Date
Subrata Banik d643165c64 soc/intel/cmn/fast_spi: Add API to set SPI controller VCL
This patch creates a helper function to set SPI controller VCL bit as
recommended by Intel Flash Security Specification.

BUG=b:211954778
TEST=Able to build google/brya and verified that SPI flash controller
MMIO register 0xC4 bit 30 is set.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: Ie9a12db1bab81779fd8e7db90221d08da3c65011
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63626
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2022-04-19 05:46:38 +00:00
Subrata Banik d5e7c63a85 soc/intel/cmn/fast_spi: Add API to clear outstanding SPI status
This patch creates a helper function to clear HSFSTS_CTL (offset 0x04)
register Bits 0 to 4.

As per Intel PCH BIOS spec section 3.6 Flash Security Recommendation,
it's important to clear all SPI outstanding status before setting SPI
lock bits.

BUG=b:211954778
TEST=Able to build google/brya with this patch and clear SPI controller
HSFSTS_CTL register Bits 0 to 4.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: I62adba0d0cef1d4c53b24800f90b4fe76a9d78b7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63625
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2022-04-19 05:46:11 +00:00
Subrata Banik a26bb7878b soc/intel/cmn/fast_spi: Add API to check if SPI Cycle In Progress
This patch creates a helper function to check if any SPI transaction
is pending.

As per Intel PCH BIOS spec section 3.6 Flash Security Recommendation,
it's important to ensure there is no pending SPI transaction before
setting SPI lock bits.

BUG=b:211954778
TEST=Able to build google/brya with this patch and no error msg seen
due to `SPI transaction is pending`.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: Ibd3f67ae60bfcb3610cd0950b057da97ff74b5b9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63624
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2022-04-19 05:45:43 +00:00
Subrata Banik 6b888adcff soc/intel/cmn/lpc: Fix typo from FAST_SPIBAR to LPC
BUG=b:211954778
TEST=None

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: Ib8cc4b8d13b61e3935f2050d25ce0278162c91c4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63629
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2022-04-19 05:45:07 +00:00
Subrata Banik e0b7423d67 soc/intel/cmn/fast_spi: Use tab instead space
This patch converts whitespace into tabs to maintain the uniformity
across the fast_spi_def.h file.

BUG=b:211954778
TEST=Able to build google/brya.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: I56bcd263c6a5c0036e459926a25538e3448fbce6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63623
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
2022-04-19 05:44:58 +00:00
Rob Barnes 0e4ca759f4 mb/google/guybrush: Remove EC_ENABLE_LID_SWITCH
Remove EC_ENABLE_LID_SWITCH since this causes a duplicate SW_LID
entries. The other SW_LID entry is generated by MKBP.

BUG=b:228907256
BRANCH=guybrush
TEST=Lid open close triggers events on Nipperkin

Change-Id: I5c1cf7aeac8405bce7bfc77110eceaf3e5383fe7
Signed-off-by: Rob Barnes <robbarnes@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63658
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Robert Zieba <robertzieba@google.com>
Reviewed-by: Jon Murphy <jpmurphy@google.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
2022-04-18 23:03:59 +00:00
Kevin Chiu 4d4c0a5f27 mb/google/guybrush/var/nipperkin: turn off WLAN ASPM L1ss
BUG=b:227296841
BRANCH=guybrush
TEST=emerge-guybrush coreboot chromeos-bootimage
     pass PLT criteria: S0 > 600ms, s0i3 > 14 days

Change-Id: I9c61e1d0f3db8b9885040255d6de266616768b68
Signed-off-by: Kevin Chiu <kevin.chiu.17802@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63537
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Rob Barnes <robbarnes@google.com>
Reviewed-by: Jon Murphy <jpmurphy@google.com>
2022-04-18 23:03:44 +00:00
Damien Zammit e0ff2735f3 mb/hp/z220_series: Add Z220 CMT Workstation variant
This is based on previous work done by a good friend of mine.

The notable differences between this board and the SFF variant is that:
 - CMT has 4 more PCI/PCIe ports than SFF.
 - CMT has 2 more SATA ports than SFF.

TESTED on Z220 CMT Workstation (boots to payload)

Change-Id: I2b298921e6f509440ec7b049e086c0878f708bd3
Signed-off-by: Damien Zammit <damien@zamaudio.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62809
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2022-04-18 01:01:02 +00:00
Felix Singer 598ff42f12 mb/lenovo/t440p/Kconfig: Reorder selects alphabetically
Built lenovo/t440p with BUILD_TIMELESS=1 and coreboot.rom remains the
same.

Change-Id: I7bac7ad5236346a3c2a8928ecdfadde6564ff232
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63429
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2022-04-16 17:58:13 +00:00
Felix Singer d22fc77704 mb/lenovo/t440p/dsdt.asl: Remove redundant comment
Change-Id: Ie772701192a3589b51642df446f0b2527fb7d630
Signed-off-by: Felix Singer <felixsinger@posteo.net>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63428
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
2022-04-16 17:58:05 +00:00
Tim Van Patten e229c6005f mb/google/guybrush: Set BT USB to use GPIO for status
Set the BT USB device to use GPIO for the power status. This causes an
ACPI `_STA()` function to be generated that returns the power status of
the BT USB device, rather than always returning `0x1`. This `_STA()`
function can be used during boot to skip enabling the device (and
performing the associated sleep) if the device is already powered on.

BRANCH=None
BUG=b:225022810
TEST=Dump SSDT table for guybrush

Signed-off-by: Tim Van Patten <timvp@google.com>
Change-Id: I72f6b28671efddfbef53f328d904a05f73f39efa
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63559
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
2022-04-14 22:31:11 +00:00
Tim Van Patten 3d4665cc71 src/acpi/device: Early return in _ON if device already enabled
If the device has enabled `use_gpio_for_status`, then call the `_STA`
method in `_ON` to determine if the device is already enabled. If it is
already enabled, return early to skip re-enabling the device and
performing the associated sleep.

This change is necessary since the Linux kernel does not call `_STA`
before calling `_ON`.

BRANCH=None
BUG=b:225022810
TEST=Dump SSDT table for guybrush

Signed-off-by: Tim Van Patten <timvp@google.com>
Change-Id: I13aa41766555953b86eded4c72e3b317fe6db5c8
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63613
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-04-14 22:30:05 +00:00
Tim Van Patten e9667f4df1 drivers/usb/acpi: acpi_power_res_params: Add use_gpio_for_status
Add the member `use_gpio_for_status` to the structure
`drivers_usb_acpi_config`, so the `devicetree.cb` can specify it.

This field is then used to initialize the corresponding field in the
structure `acpi_power_res_params` in `usb_acpi_fill_ssdt_generator()`.

The member `acpi_power_res_params::use_gpio_for_status()` is already
being used by `acpi_device_add_power_res()` to determine which version
of the `_STA()` method to output.

BRANCH=None
BUG=b:225022810
TEST=Dump SSDT table for guybrush

Signed-off-by: Tim Van Patten <timvp@google.com>
Change-Id: I69eb5f1ad79f3b2980f43dcf4a36585fca198ec9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63558
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
2022-04-14 22:29:10 +00:00
Jianjun Wang b2537bdad5 coreboot_tables: Replace 'struct lb_uint64' with lb_uint64_t
Replace 'struct lb_uint64' with 'typedef __aligned(4) uint64_t
lb_uint64_t', and remove unpack_lb64/pack_lb64 functions since it's no
longer needed.

Also replace 'struct cbuint64' with 'cb_uint64_t' and remove
'cb_unpack64' in libpayload for compatible with lb_uint64_t.

Signed-off-by: Jianjun Wang <jianjun.wang@mediatek.com>
Change-Id: If6b037e4403a8000625f4a5fb8d20311fe76200a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63494
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2022-04-14 22:27:50 +00:00
Karthikeyan Ramasubramanian 6f023ece08 mb/google/skyrim: Inject SPDs into APCB
Update the build scripts to inject variant specific SPDs into APCB.

BUG=None
TEST=Build and boot to OS in Skyrim boards with all the concerned memory
parts.

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Change-Id: I3b3f6f248d54681c6f55c00660d1f2988ae906ba
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63600
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-04-14 22:25:51 +00:00
Karthikeyan Ramasubramanian 44e449b15c mb/google/skyrim/var/skyrim: Add supported memory parts
Add supported memory parts and generate the associated DRAM part ID.
Also for MT62F2G32D8DR-031 WT:B memory part, add a custom SPD that
configures the DRAM speed at 5500 MHz. Use this custom SPD until that
part can operate at full speed (i.e. 6400 MHz).

BUG=None
TEST=Build Skyrim.

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Change-Id: Id87e79f5d6187d57d74487841c09aa309f1450b4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63599
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Robert Zieba <robertzieba@google.com>
Reviewed-by: Jon Murphy <jpmurphy@google.com>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
2022-04-14 22:25:05 +00:00
Karthikeyan Ramasubramanian 4bdc2320a4 util/apcb/apcb_v3_edit.py: Edit APCB based on different SPD magic
APCB edit tool edits APCBs with LP4 specific SPDs. Introduce an option
to support different SPD magic so that the tool can be used to edit
APCBs with LP5 specific SPDs.

BUG=None
TEST=Build Skyrim board with LP5 specific SPDs. Build Guybrush board
with LP4 specific SPDs.

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Change-Id: I8e96c89e4e5ce8e0567a17bf7685b69080fa1708
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63598
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Rob Barnes <robbarnes@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-04-14 22:24:09 +00:00
Karthikeyan Ramasubramanian 58d75f80b4 util/spd_tools/part_id_gen: Support Sabrina SoC
Add support to generate DRAM part ID for boards using Sabrina SoC.

BUG=None
TEST=Generate DRAM part ID for Skyrim mainboard.

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Change-Id: Ica57b12239019831f7bf93982be3c93b7f8b6986
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63597
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Robert Zieba <robertzieba@google.com>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
2022-04-14 22:23:51 +00:00
David Wu 7dd92959a3 mb/google/brya/var/kano: Configure Acoustic noise mitigation
Setup the following acoustic noise mitigation features:
1) Slew rate for both IA and GT domains to 1/8
2) Disable Fast package C ramp

BUG=b:229046516
TEST=build and verified by power team

Signed-off-by: David Wu <david_wu@quanta.corp-partner.google.com>
Change-Id: Ifb5700391e33818878994f205acae7ee3b1b96d9
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63610
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
2022-04-14 18:02:24 +00:00
Lean Sheng Tan bb92a7f6a7 mb/prodrive/atlas: Update Kconfig
Update Kconfig per Atlas usages:
1. Set EC I/O mapped UART as default UART output
2. Add EC IFD region & ACPI support

Signed-off-by: Lean Sheng Tan <sheng.tan@9elements.com>
Change-Id: I970de724237bcb08899aed7a4b87a23c5cdb0b48
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63464
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Christian Walter <christian.walter@9elements.com>
2022-04-14 17:15:30 +00:00
Karthikeyan Ramasubramanian 8ee9429e75 soc/amd/sabrina: Allow to specify custom SPL File
PSP needs SPL file to boot. Introduce the support to add SPL file.
Currently Sabrina does not have a specific SPL file. Use Cezanne SPL
file as a placeholder.

BUG=b:224618411
TEST=Build and boot to OS in Skyrim after adding Sabrina specific SPL
file.

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Change-Id: I222bb81b2babddc778b2cff858ef7979f85ac0e6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63313
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-04-14 17:15:02 +00:00
Rob Barnes 76fddd9639 mb/google/nipperkin: Disable PSPP for WLAN
Disable PSPP parameters for WLAN card on Nipperkin. This feature
is causing S0ix resume hangs.

BUG=b:227296841,b:228830362
BRANCH=guybrush
TEST=Suspend stress test passes on Nipperkin

Signed-off-by: Rob Barnes <robbarnes@google.com>
Change-Id: I38f05b92ace4aba61163194a6a638915882b8871
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63593
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-04-14 16:29:12 +00:00
Werner Zeh eaf11c9445 x86/mtrr: Print address ranges inclusive to be more consistent
The printed address ranges in the tree (resource allocator and even
some MTRR code) usually shows the range inclusive (meaning from start
address to the real end address of the range). Though there is still
some code in the MTRR context which prints the ranges with an exclusive
end. This patch aligns the printing of ranges in the MTRR code to be
consistent among the tree so that the shown end addresses are now
inclusive.

Change-Id: I0ca292f9cf272564cb5ef1c4ea38f5c483605c94
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63541
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Christian Walter <christian.walter@9elements.com>
2022-04-14 15:43:27 +00:00
Tim Wawrzynczak a46056fa9a mb/google/brya: Add variant_init and variant_finalize callbacks
Some brya variants may need to initialize and finalize some
variant-specific devices during ramstage, therefore add the
commonly-used hooks and callbacks to support this.

Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Change-Id: Iede6dc5a5b9a7385fedd59d4eeaaba118eff0e20
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62382
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2022-04-14 15:42:56 +00:00
Eric Lai daed4ea1d0 soc/intel/common/gpio: Add PAD_CFG_GPI_SCI_LOW/HIGH_LOCK macro
Add PAD_CFG_GPI_SCI_LOW_LOCK and PAD_CFG_GPI_SCI_HIGH_LOCK macro
to support mainboard to lock NC and GPI_SCI pins as applicable.

BUG=b:216583542
TEST=build passed

Signed-off-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Change-Id: I5060777cc09af6cb3144ad799154e77167521de3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63569
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2022-04-14 15:42:32 +00:00
Subrata Banik 32e1022611 soc/intel/cmn/{block, pch}: Rename configs from `DMI` to `GPMR`
This patch renames all required IA common code blocks and PCH configs
from DMI to GPMR.

TEST=Able to build and boot google/redrix.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: Ic6e576dd7f207eb16d90c5cc2892d919980d91c4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63608
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
2022-04-14 15:41:45 +00:00
Subrata Banik e7089e12a1 soc/intel/cmn/gpmr: Enhance GPMR driver
This patch enhances the GPMR driver to add public APIs for other IA
common code drivers and/or SoC code to utilize.

Also, migrated all PCR GPMR register definitions into the common
`pcr_gpmr.h` header file.

TEST=Able to build and boot google/redrix.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: I87dca55a068366cb9a26a5218589166c1723da7f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63607
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
2022-04-14 15:41:12 +00:00
Wonkyu Kim bb1ecc5662 intel/common/block: rename dmi folder to gpmr as starting gpmr migration
As a start of GPMR(General Purpose Memory Range) driver migration,
1. rename dmi folder to gpmr folder
2. rename dmi.c to gpmr.c

TEST=build
Signed-off-by: Wonkyu Kim <wonkyu.kim@intel.com>
Change-Id: I4d57f4b8bd06e0cf6c9afa4baf4a7bed64ecb56b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63170
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
2022-04-14 15:40:46 +00:00
Karthikeyan Ramasubramanian 176b563897 soc/amd/sabrina: Maintain a single copy of PSP Level2 entries
If verified boot uses 2 RW FW slots, configure amdfwtool to maintain
single copy of PSP Level2 entries.

BUG=None
TEST=Build and boot to OS in Skyrim.

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Change-Id: I94eea693139b714c321b4be89380342ec7a21222
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63510
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
2022-04-14 15:39:42 +00:00
Karthikeyan Ramasubramanian ad06bae7b1 util/amdfwtool: Maintain one copy of PSP Level2 entries
AMDFWtool maintains 2 copies of PSP Level2 entries - one in primary slot
A (Type 0x48) and another in backup slot B (Type 0x4A). On boards which
use VBOOT with 2 RW firmware slots, maintaining 2 copies of PSP Level2
entries in each FW slot is redundant and space-consuming. Introduce
option to maintain only one copy of PSP Level2 entries and point to it
from both slots A & B.

BUG=None
TEST=Build and boot to OS in Skyrim. Ensure that only one copy is added
to each FW slot. This achieved a space saving of 1.5 MB in each FW slot.
Before:
apu/amdfw                      0x415fc0   raw           3043328 none
After:
apu/amdfw                      0x415fc0   raw           1556480 none

Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com>
Change-Id: I06eef8e14b9c14db1d02b621c2f7207188d86326
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63509
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2022-04-14 15:39:15 +00:00
Shelley Chen 420ba8b708 soc/qualcomm/common: Make clock_configure() check for exact matches
Previously, clock_configure() will configure the clocks to round up to
the next highest frequency bin.  This seems non-intuitive.  Changing
the logic to find an exact frequency match and will halt booting if no
match is found.  Recently fixed a bug in CB:63311, where the clock was
being set incorrectly for emmc and was able to find it because of this
stricter check.

BUG=b:198627043
BRANCH=None
TEST=build herobrine image and try to set SPI frequency to number not
     supported.  Ensure device doesn't boot.

Change-Id: I9cfad7236241f4d03ff1a56683654649658b68fc
Signed-off-by: Shelley Chen <shchen@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63289
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Georgi <patrick@coreboot.org>
2022-04-14 14:05:04 +00:00
Zheng Bao c3007f3877 amdfwtool: Add a flag to record the second gen instead of romsig
This is for future feature combo, which gets the soc id from fw.cfg in
a loop instead of the command line, and the romsig is not set until
fw.cfg is processed.

Change-Id: Id50311034b46aa1791dcc10b107de4af6c86b927
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63344
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
2022-04-13 23:25:00 +00:00
Subrata Banik e3a4a13607 soc/intel/cmn/xhci: Add function to reset the XHCI controller
This patch adds `xhci_host_reset()` to reset XHCI controller and the
scope of this function is with SMM hence, compiling xhci.c for SMM as
well.

Also, refactored `xhci.c` code to keep PCI enumeration within the scope
of `ramstage` alone hence, guarded with `ENV_RAMSTAGE` env_variable.

BUG=b:227289581
TEST=Able to perform a call from `xhci_host_reset` from S5 smi handler.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: Ie0dc0a64044f291893931726d26c08c8b964a3cc
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63551
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-04-13 21:28:59 +00:00
Subrata Banik 3e4e4abb61 cpu/x86/mtrr: Use `need_restore_mtrr` to set put_back_original_solution
This patch calls into need_restore_mtrr() from the mtrr_use_temp_range
function to set `put_back_original_solution` to discard any temporary
MTRR range prior to boot to payload.

BUG=b:225766934
TEST=Able to build and boot google/brya to verify that
`remove_temp_solution()` is able to discard any temporary MTRR range
before booting to payload.

Signed-off-by: Subrata Banik <subratabanik@google.com>
Change-Id: I2e00ec593847e1eb173d5ac77b15b50342860f89
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63491
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2022-04-13 21:28:31 +00:00
Kane Chen 00aaffaf47 cpu/x86: Add function to set `put_back_original_solution` variable
`put_back_original_solution` variable in mtrr.c is static, but there is
a need to set put_back_original_solution outside of mtrr.c in order to
let `remove_temp_solution` to drop any temporary MTRRs being set
outside `mtrr_use_temp_range()`, for example: `set_var_mtrr()` function
is used to set MTRRs for the ROM caching.

BUG=b:225766934
TEST=Able to build and boot google/redrix.

Change-Id: Ic6b5683b2aa7398a5e141f710394ab772e9775e7
Signed-off-by: Kane Chen <kane.chen@intel.corp-partner.google.com>
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63485
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
2022-04-13 21:28:10 +00:00
Kevin Chiu 985faa873c mb/google/guybrush/var/nipperkin: probe privacy screen device by fw_config
BUG=b:228448327
BRANCH=guybrush
TEST=emerge-guybrush coreboot chromeos-bootimage
     check ACPI device "LCD" in SSDT

Signed-off-by: Kevin Chiu <kevin.chiu.17802@gmail.com>
Change-Id: I42c5abdbe3bfab72016d56399278a7aff9e33377
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63575
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Rob Barnes <robbarnes@google.com>
2022-04-13 21:27:23 +00:00
Ravi Kumar Bokka 4f9cb426be soc/qualcomm/common: Fix mem_chip_info bugs in QcLib glue
This patch fixes an issue introduced by CB:59195 when QcLib
doesn't return a mem_chip_info structure to coreboot, and
solves some other minor leftover issues from that patch.

BUG=b:182963902,b:177917361
TEST=Validated on qualcomm sc7280 development board

Signed-off-by: Ravi Kumar Bokka <rbokka@codeaurora.org>
Change-Id: I0d59669adaf287d0eb7b58ccb0fe3f98e3d23281
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63026
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2022-04-13 20:43:44 +00:00
Yu-Hsuan Hsu b3a042f619 mb/google/guybrush: Disable EN_SPKR on init on Nipperkin and Dewatt
We don't want to enable the speaker on init. It will be enabled while
using GPIO AMP codec in depthcharge.

BUG=b:223289882
TEST=boot Nipperkin and Dewatt and then verify the devbeep and gpio
values in kernel

Signed-off-by: Yu-Hsuan Hsu <yuhsuan@google.com>
Change-Id: Id874421d7464b15be6e521576696bb97e6b22d6a
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63540
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
2022-04-13 15:14:48 +00:00
Meera Ravindranath d8ea360d3e soc/intel/alderlake: Add support for UFS controller
UFS(Universal Flash Storage) is the next generation storage standard and
a SCSI storage technology. It is also a successor of eMMC.

Following changes are needed to add support for UFS -
1) Add UFS controller to chipset.cb and keep it off by default
2) Hook up FSP enable UPD for UFS #1 to the device from chipset.cb

Signed-off-by: Meera Ravindranath <meera.ravindranath@intel.com>
Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com>
Change-Id: I92f024ded64e1eaef41a7807133361d74b5009d4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62856
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
Reviewed-by: Kangheui Won <khwon@chromium.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
2022-04-13 15:13:01 +00:00
Sridhar Siricilla 37c33052e5 soc/intel/alderlake: Allow mainboard to configure USB2 Phy power gating
The patch adds mechanism in the Alder Lake SoC code to control PCH
USB2 Phy power gating from brya board variant's devicetree. Please refer
Intel doc#723158 for more information.

BUG=b:221461379
TEST=Build and boot Gimble board

Signed-off-by: Sridhar Siricilla <sridhar.siricilla@intel.com>
Change-Id: I3d80a3e36c6f8a3c0f174f955b11457752809f4d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63293
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
2022-04-13 15:12:23 +00:00
Reka Norman 4bc2ca522d drivers/i2c/designware/dw_i2c: Remove unnecessary tabs in debug log
Before:
[DEBUG]  dw_i2c: SoC 400/3000 ns Bus: 400/1000000 ns
[DEBUG]                 dw_i2c: period 334 rise 13 fall 2 tlow 174 thigh 80 spk 7
[DEBUG]  dw_i2c: hcnt = 104 lcnt = 202 sda hold = 7

After:
[DEBUG]  dw_i2c: SoC 400/3000 ns Bus: 400/1000000 ns
[DEBUG]  dw_i2c: period 334 rise 13 fall 2 tlow 174 thigh 80 spk 7
[DEBUG]  dw_i2c: hcnt = 104 lcnt = 202 sda hold = 7

BUG=None
TEST=Check that the formatting looks correct, as above.

Change-Id: I6703a5d6512cee7848edae27afcfd82eb89bcacb
Signed-off-by: Reka Norman <rekanorman@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63563
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kangheui Won <khwon@chromium.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
2022-04-13 15:10:51 +00:00
Reka Norman 46694d8a46 mb/google/brya/baseboard/nissa: Configure I2C lcnt and hcnt
Configure lcnt and hcnt directly to give the required frequency, tHIGH
and tLOW, instead of using rise and fall times. Aim for a frequency of
390 kHz to make sure it doesn't exceed 400 kHz on different boards.

BUG=b:227517802
TEST=Probe the clock line and check that it meets the requirements for
frequency, tHIGH and tLOW.

Change-Id: I4d4f877c1f0cd9aacd3fa152890b7ef82e059f78
Signed-off-by: Reka Norman <rekanorman@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63562
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kangheui Won <khwon@chromium.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
2022-04-13 15:10:33 +00:00
Tyler Wang f478b1f464 mb/google/brya: Create craask variant
Create the craask variant of the brya0 reference board by copying
the template files to a new directory named for the variant.

(Auto-Generated by create_coreboot_variant.sh version 4.5.0.)

BUG=b:None
BRANCH=None
TEST=util/abuild/abuild -p none -t google/brya -x -a
make sure the build includes GOOGLE_CRAASK

Signed-off-by: Tyler Wang <tyler.wang@quanta.corp-partner.google.com>
Change-Id: Icf03e3f18468d7dd207ab200fa2dcf96afd02f8b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63256
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
2022-04-13 15:10:04 +00:00
Reka Norman 581cd6762f mb/google/brya: Add missing parameter name to variant_generate_s0ix_hook
Fixes the following build error:

src/mainboard/google/brya/mainboard.c: In function 'variant_generate_s0ix_hook':
src/mainboard/google/brya/mainboard.c:157:40: error: parameter name omitted
 void __weak variant_generate_s0ix_hook(enum s0ix_entry)
                                        ^~~~~~~~~~~~~~~

BUG=None
TEST=`abuild -a -x -c max -p none -t google/brya` now succeeds

Change-Id: Id578766e2a3b7647e920740dde3e356a7db39d4d
Signed-off-by: Reka Norman <rekanorman@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63564
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
2022-04-13 15:09:41 +00:00
Reka Norman b5994be2e8 mb/google/brya/var/nereid: Enable OZ711LV2LN SD card controller
Select the Bayhub LV2 driver, and implement power sequencing as per the
datasheet.

BUG=b:223304542
TEST=Check that connecting an SD card works as expected in the OS. Probe
the EN and RST signals and check the timing requirements are met.

Change-Id: Id1cca2024e06e5b2c7cefd22aa0b735bc542dc3b
Signed-off-by: Reka Norman <rekanorman@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63434
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Kangheui Won <khwon@chromium.org>
2022-04-13 15:09:17 +00:00
Amanda Huang e7a14cf9af mb/google/brya/var/brya0: Change MAX98360 AMP interface to I2S1
Based on the latest schematic, change MAX98360 AMP interface from I2S2
to I2S1 due to Intel BT offload concern.

BUG=b:202671753
BRANCH=firmware-brya-14505.B
TEST=dmidecode -t 11

Signed-off-by: Amanda Huang <amanda_hwang@compal.corp-partner.google.com>
Change-Id: I9ee45dbceabdedd39a9befffb8002b8bc3d4bfb4
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63495
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Frank Wu <frank_wu@compal.corp-partner.google.com>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
2022-04-13 15:08:59 +00:00
Usha P 300946a5a1 mb/intel/adlrvp: Disable PM Timer for ADL-N
Keeping the PM timer enabled will disqualify an ADL system from entering
S0i3, and will also cause an increase in power during suspend states.
The PM timer is not required for ADL-N boards, therefore disabling it.

BRANCH=NONE
TEST=Build and boot ADL-N RVP. Verify system is entering S0i3 state.
localhost ~ # cat /sys/kernel/debug/pmc_core/substate_residencies
Substate   Residency
S0i2.0     0
S0i3.0     13196801

Signed-off-by: Usha P <usha.p@intel.com>
Change-Id: I44651bf55df8e71a0a5a9a33ecbb8322ecd18575
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62915
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Reka Norman <rekanorman@chromium.org>
2022-04-13 15:08:45 +00:00
Arthur Heymans c73440844d payloads/LinuxBoot: Fix u-root branch
It looks like the u-root 'master' branch was renamed to 'main'.

Change-Id: I384ba66289a49bf226b505615bd16bdf85612c1a
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/62590
Reviewed-by: Christian Walter <christian.walter@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-04-13 14:30:37 +00:00
Ravi Kumar Bokka 094510d964 commonlib/bsd: Add mem_chip_info_size() function
Add a helper function mem_chip_info_size() as the size of
mem_chip_info structure is used in multiple places.

BUG=b:182963902,b:177917361
TEST=Validated on qualcomm sc7280 development board

Signed-off-by: Ravi Kumar Bokka <rbokka@codeaurora.org>
Change-Id: Iaada45d63b82c28495166024a9655d871ba65b20
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63407
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2022-04-13 02:55:05 +00:00
Michał Żygowski 79e61603dc soc/intel/alderlake/include/soc/iomap.h: Add ADL PCH-S reserved spaces
PCH-S maps certain MMIO BARs differently than low power PCHs. The
reserved ranges taken from Intel DOC #630603.

Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Change-Id: Ifefedc629def207ecd6f7be792f6e12fb6016cc3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/63459
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
2022-04-12 20:45:52 +00:00